ArduinoでフルカラーLEDを光らせる
こんにちは、細川です。
Arduinoを使ってフルカラーLEDを光らせました!
注意!
この記事を書いた人は電子工作の素人です。
実際に手を動かしてできたことを正直に書いていますが、
専門家の視点で見ると正しくないことがあるかもしれません。
ご了承ください。
この記事を書いた人は電子工作の素人です。
実際に手を動かしてできたことを正直に書いていますが、
専門家の視点で見ると正しくないことがあるかもしれません。
ご了承ください。
Arduinoとは
Arduinoとはイタリアで生まれた小さなコンピュータです。
弊社地下室にあるビリヤードの玉と同じぐらいのサイズでした
名前の由来はArduino開発者行きつけのパブ「Bar di Re Arduino」にちなんでいます。
小さくて、安くてマイコンとしては普及している商品のため簡単に手に入れることができます。
専用の開発環境と初心者向けに設計されたプログラミング言語が用意されているので、
すぐに開発を始められます。
すぐに開発を始められます。
ハードウェア寄りの開発を手軽に始めるのにとても便利です。
フルカラーLEDを手に入れる
マイコン工作を始めたとき、 最初にLEDを光らせました。Lチカです。
そしてLEDには、フルカラーLEDというのがあるようです。
ただのLチカよりもきれいになりそうなのでArduinoを使ってフルカラーLEDを光らせることにします。
秋葉原にある「秋月電子通商」に行って、フルカラーLEDを買ってきました。
ただのLチカよりもきれいになりそうなのでArduinoを使ってフルカラーLEDを光らせることにします。
秋葉原にある「秋月電子通商」に行って、フルカラーLEDを買ってきました。
早速、配線をして光らせてみます。
無事に光りました!
配線材を手に入れる
無事動くことが確認できましたが、
一つだけ光っていても寂しいです。
一つだけ光っていても寂しいです。
たくさん光らせることにします。
たくさんのLEDを光らせる場所として、ブレットボードの上は狭いです。
外で動かすには、ブレットボードを使わないで電気を流す方法を考える必要があります。
外で動かすには、ブレットボードを使わないで電気を流す方法を考える必要があります。
こういうことのノウハウはないのですが、とりあえず電気の通る線が必要だと思い、
近所のホームセンターで電気が流れそうな見た目のケーブルを買ってきました。
1mが50円ほどでした。3色を3mずつ買ってきました。
LED以外のところに色を出さないために、本当は全部黒にしたかったのですが、
作業ミスを防ぐために3色に分けることにしました。
組み立てる
材料が揃ったので組み立てます。
そういえば、以前、キットを組み立てるために買った半田付けセットが押入れにありました。
半田付けをするためにケーブルを一本ずつ切って両端の皮膜を丁寧に剥きます。
そして、丁寧に一つ一つ半田付けを行い配線しました。
4時間ぐらいかかりました。
コーディング
手探りでしたがハードウェアが無事に完成しました。
制御するためのソフトウェアを書きます。
フルカラーLEDを制御する信号を作成してくれるAdafruit NeoPixel Libraryを使っています。
#include <Adafruit_NeoPixel.h>
#define LED_OUTPIN 2
#define LED_LENGTH 18
Adafruit_NeoPixel RGBLED = Adafruit_NeoPixel(LED_LENGTH, LED_OUTPIN,
NEO_RGB + NEO_KHZ800);
int time = 0;
void setup()
{
RGBLED.begin();
RGBLED.setBrightness(255);
RGBLED.show();
}
void loop()
{
if (time == 100*LED_LENGTH) time = 0;
for (int i = 0; i <= LED_LENGTH ; i++) {
switch ((((time + i) % LED_LENGTH)) / 3) {
case 0:
RGBLED.setPixelColor(i, 255, 0, 0) ;
break;
case 1:
RGBLED.setPixelColor(i, 255, 127, 0);
break;
case 2:
RGBLED.setPixelColor(i, 255, 255, 0);
break;
case 3:
RGBLED.setPixelColor(i, 0, 255, 0);
break;
case 4:
RGBLED.setPixelColor(i, 0, 255, 255);
break;
case 5:
RGBLED.setPixelColor(i, 0, 0, 255);
break;
}
}
RGBLED.show();
delay(1000);
time += 1;
}
完成
完成しました。早速動かして見ます。
他にも色々とコードを書きました。
眩しくなってしまうのでスペースを空けて載せます。
まとめ
普段の開発とは違ったことをたくさん経験できて面白かったです。
材料を買いに外に出たり、手を動かして組み立てたり、
完成後のサイズをどれくらいにするか、どの材料をどのように使うか考えたり
半田ごてで火傷をしかけたり等々。
材料を買いに外に出たり、手を動かして組み立てたり、
完成後のサイズをどれくらいにするか、どの材料をどのように使うか考えたり
半田ごてで火傷をしかけたり等々。
そして、完成したものが部屋の隅っこに転がっているというのが新鮮です。