ではいよいよブレッドボードに登場してもらい、3色のLEDを図のようにつないで美しくコントロールしてみたいと思います。
いよいよ、Arduinoプログラムも本格化しはじめた感があります。
今日のプログラムはこれまでの知識を重ね合わせて、いろいろな応用をしてみるといいと思います。
ぜひいっぱい遊んでください。
全部HIGHで光る接続
接続はこんな感じになります。
ブレッドボードの端はたいてい-と+があって、ここは全部つながっていますので、この写真のようにLEDのマイナス(カソード)側をマイナスの穴に刺しておいて、1本だけArduinoのGNDに接続すればOKです。
そしてその片方は、1本ずつArduinoの12,11,10につなぎます。
Arduinoプログラミング開始
ただ全部が漫然と光る
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; digitalWrite(11,HIGH) ; digitalWrite(12,HIGH) ; }
3色同時点滅
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; digitalWrite(11,HIGH) ; digitalWrite(12,HIGH) ; delay(500); digitalWrite(10,LOW) ; digitalWrite(11,LOW) ; digitalWrite(12,LOW) ; delay(500); }
順序良く光る
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; delay(500); digitalWrite(11,HIGH) ; delay(500); digitalWrite(12,HIGH) ; delay(500); digitalWrite(10,LOW) ; delay(500); digitalWrite(11,LOW) ; delay(500); digitalWrite(12,LOW) ; delay(500); }
流れるようにイルミネーション
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; delay(100); digitalWrite(11,HIGH) ; delay(100); digitalWrite(12,HIGH) ; delay(100); digitalWrite(12,LOW) ; delay(100); digitalWrite(11,LOW) ; delay(100); digitalWrite(10,LOW) ; delay(100); }
ランダムに光るLED
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { int i = random(3) ; if(i==0){ digitalWrite(10,HIGH) ; digitalWrite(11,LOW) ; digitalWrite(12,LOW) ; delay(100); }else if(i==1){ digitalWrite(10,LOW) ; digitalWrite(11,HIGH) ; digitalWrite(12,LOW) ; delay(100); }else if(i==2){ digitalWrite(10,LOW) ; digitalWrite(11,LOW) ; digitalWrite(12,HIGH) ; delay(100); } }
光る時間もランダムにする
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { int i = random(3) ; int t = random(300); if(i==0){ digitalWrite(10,HIGH) ; digitalWrite(11,LOW) ; digitalWrite(12,LOW) ; delay(t); }else if(i==1){ digitalWrite(10,LOW) ; digitalWrite(11,HIGH) ; digitalWrite(12,LOW) ; delay(t); }else if(i==2){ digitalWrite(10,LOW) ; digitalWrite(11,LOW) ; digitalWrite(12,HIGH) ; delay(t); } }
LOWでも光る接続に変えてみる
ただ全部が漫然と光るプログラム
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; digitalWrite(11,HIGH) ; digitalWrite(12,HIGH) ; }