ではいよいよブレッドボードに登場してもらい、3色のLEDを図のようにつないで美しくコントロールしてみたいと思います。
いよいよ、Arduinoプログラムも本格化しはじめた感があります。
今日のプログラムはこれまでの知識を重ね合わせて、いろいろな応用をしてみるといいと思います。
ぜひいっぱい遊んでください。
全部HIGHで光る接続
接続はこんな感じになります。
ブレッドボードの端はたいてい-と+があって、ここは全部つながっていますので、この写真のようにLEDのマイナス(カソード)側をマイナスの穴に刺しておいて、1本だけArduinoのGNDに接続すればOKです。
そしてその片方は、1本ずつArduinoの12,11,10につなぎます。
Arduinoプログラミング開始
ただ全部が漫然と光る
1 2 3 4 5 6 7 8 9 10 11 |
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; digitalWrite(11,HIGH) ; digitalWrite(12,HIGH) ; } |
3色同時点滅
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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); } |
順序良く光る
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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); } |
流れるようにイルミネーション
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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); } } |
光る時間もランダムにする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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); } } |
ramdom(範囲)
この関数は決められた範囲の乱数を勝手に発生させる面白い機能です。
LOWでも光る接続に変えてみる
ただ全部が漫然と光るプログラム
1 2 3 4 5 6 7 8 9 10 |
void setup() { pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(12,OUTPUT); } void loop() { digitalWrite(10,HIGH) ; digitalWrite(11,HIGH) ; digitalWrite(12,HIGH) ; } |
コメント