ではいよいよブレッドボードに登場してもらい、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) ;
}

