Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2632
組み込み系

10.Arduinoで3色のLチカ

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

 

タイトルとURLをコピーしました