組み込みプログラミングの入門機として人気のあるArduino。
とりあえずLEDを接続してLチカを行った事のある人は多いのではないでしょうか。
12月になり、そろそろクリスマスが近いのでこのLチカを応用して雑なクリスマスツリーを作ります。
用意した道具
- ブレッドボード
- ジャンパケーブル
- 赤色LED(写真に掲載がありませんがRGBLEDも用意しました)
- Arduinoの互換機
- 画用紙
- ノリ
- ハサミ
Lチカの復習
ArduinoはデフォルトでBlinkというサンプルプログラムが書き込まれていることが多いです。
Blinkは13番Pinを点灯させるプログラムなのでLEDに13番Pinとグランドを接続します。
本当は回路の中に抵抗を挟み、LEDのデータシートに合わせた順方向電流(通常20mA~30mA程度)に調整した方が良いのですが
今回はめんどくさいのとクリスマスまで寿命が持てばいいので無視します。
Arduinoのピン
LEDを点灯させるだけであれば番号のついているPINであればどこでも使用できるのですが
LEDの発光を調整したい場合は電圧を調整できるPWMピンに接続する必要があります。
今回はRGB表示ができるLEDの電圧を制御したかったので9、10、11番のピンをRGBLED用に使用します。
接続
Arduinoのプログラム
int interval[5];
int mode[5]={0};
int count = 0;
void setup() {
// simple blink
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
// pwm blink
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
randomSeed(analogRead(0));
for(int i=0;i<5;i++){
interval[i] = random(100);
}
}
void loop() {
long max = 255;
if(!(count%10)){
analogWrite(9,random(255)); // Green
analogWrite(10,random(255)); //Blue
analogWrite(11,random(255)); //Red
}
for(int i=0;i<5;i++){
if(!(count%interval[i])){
digitalWrite(i+2, mode[i]);
mode[i] = !mode[i];
}
}
count ++;
delay(100);
}
赤色LEDは初期化時に周期を決定して点灯し、RGBLEDは1秒に一度色が変わる仕組みにしました。
動画では白飛びしていてRGBLEDの色が良くわかりませんが・・。
露出部分を絶縁する
カプトンテープが見つからなかったので今回やりませんでした。
絶縁されていないので人がいないところでは動作させません。