Arduino「信号機」

Arduino

1. 製作の目的

いずれはLED式のデジタル時計を作りたいと考えていますが、いきなり製作に入ってしまうと分からないことが多すぎて嫌になりそうだったので、まずは簡単な動作をするものからということで「複数のLEDを制御する回路」を作ることに慣れようと考えました。
作る以上は何かしらの機能を持っているものが良いと考えて、LEDを使った信号機を作ってみることにしました。

2. 必要なもの


Arduinoをはじめようキット

(1) Arduino本体
私の場合は、プログラミングは全くの初心者でしたので、事前に簡単なキットを製作してArduinoの操作に慣れるようにしました。
(2) ブレッドボード
Arduinoをはめようキットに同封されているものを利用しました。
(3) ジャンパーワイヤー
Arduinoをはめようキットに同封されているものを利用しました。
(4) 砲弾型 5mm LED
【I-04111】高輝度5mm赤色LED [OSR5CA5B61P] (180円/10個)
【I-04112】5mm黄色LED [OSY5CA5B61P] (180円/10個)
【I-01321】超高輝度5mm青色LED [OSUB511A-ST] (180円/10個)
(5) カーボン抵抗
LEDと同じく秋月電子にて事前にまとめ買いしていましたが、今回利用したLEDは以下のとおりになります。
【R-07803】カーボン抵抗 (炭素皮膜抵抗) 1/2W 100Ω (100円/100本)
(6) LED光拡散キャップ
日本製の方が値段が高い分フィット感が良いですが、今回は動作確認したいだけなので安価な中国製のものを利用しました。
【I-01120】LED光拡散キャップ (5mm) 白 (200円/50個)

3. 作動状態と構成

それぞれのLEDが歩行者用信号と自動車用信号を見立てています。
構成は写真およびコードを参考にしてください。

  const int R_LED = 9;
  const int Y_LED = 10;
  const int B_LED = 11;
  const int Rp_LED = 6;
  const int Bp_LED = 7;

void setup() {
  // put your setup code here, to run once:
  pinMode(B_LED,OUTPUT);
  pinMode(Y_LED,OUTPUT);
  pinMode(R_LED,OUTPUT);
  pinMode(Bp_LED,OUTPUT);
  pinMode(Rp_LED,OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(B_LED,HIGH);
  digitalWrite(Bp_LED,HIGH);
  delay(30000);

  for(int i = 0; i<10; i++){
  digitalWrite(Bp_LED,HIGH);
  delay(300);
  digitalWrite(Bp_LED,LOW);
  delay(300);
  }

  digitalWrite(Rp_LED,HIGH);
  
  delay(2000);    
  
  digitalWrite(B_LED,LOW);
  
  digitalWrite(Y_LED,HIGH);
  delay(2000);
  digitalWrite(Y_LED,LOW);

  digitalWrite(R_LED,HIGH);
  delay(60000);
  digitalWrite(R_LED,LOW);
  digitalWrite(Rp_LED,LOW);

}

コメント

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