#4初級

LEDの警察車両風点滅

4.7(101)
250 完了
LEDの警察車両風点滅
警察車両の警光灯のように、赤いLEDが素早く3回点滅し、続いて青いLEDが3回点滅します。このパターンを途切れることなく繰り返します。Arduinoに2個のLEDと2個の抵抗をつなぐだけで、数分で組み立てられる、目を引く入門プロジェクトです。

動画

回路図

LEDの警察車両風点滅 - Circuit

ソースコード

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   LED Police Lights
4// ─────────────────────────────────────────
5// The red and blue LEDs each flash 3 times quickly in turn, creating a
6// police strobe effect. Shows for loops and timing control.
7//
8// Pins:
9//   D2 -> Red LED
10//   D3 -> Blue LED
11//   Each LED with a 330 ohm resistor
12
13// Flash time (ms). A smaller value flashes faster
14int delayTime = 60;
15
16void setup() {
17  pinMode(2,OUTPUT);  // Red
18  pinMode(3,OUTPUT);  // Blue
19}
20
21void loop() {
22  // Red LED flashes 3 times
23  for(int i=0;i<3;i++){
24    digitalWrite(2,HIGH);
25    delay(delayTime);
26    digitalWrite(2,LOW);
27    delay(delayTime);
28  }
29
30  // Blue LED flashes 3 times
31  for(int i=0;i<3;i++){
32    digitalWrite(3,HIGH);
33    delay(delayTime);
34    digitalWrite(3,LOW);
35    delay(delayTime);
36  }
37}
38

よくある質問

点滅をもっと本物らしくするにはどうすればよいですか?▾

実際の警光灯は、それぞれの色で短い点滅を数回繰り返します。`for`ループで一方のLEDを素早く3回点滅させてから(例:50 ms点灯、50 ms消灯)もう一方に切り替えると、警光灯によく似た動きになります。

赤と青のLEDには同じ抵抗を使えますか?▾

動作しますが、明るさに差が出ます。青いLEDの順方向電圧(約3.2 V)は赤いLED(約1.9 V)より高いため、同じ抵抗値では青いLEDに流れる電流が少なくなります。明るさをそろえるには、青いLEDの抵抗値を小さくします。LED抵抗の計算ツールで計算できます。

ここでの「for」ループは何のために使いますか?▾

同じ点滅パターンを決まった回数だけ繰り返すために使います。コードを何度もコピーして貼り付ける代わりに、`for (int i = 0; i < 3; i++)`と書けば、繰り返しを1か所で制御できます。

もっと明るく点滅させるには何を使えばよいですか?▾

Unoのピンから流れる電流が20 mAを超えないように回路を設計してください。ピンには、電流を自動的にこの値に制限する機能はありません。より強力なLEDやLEDテープを使う場合は、負荷電流に対応したトランジスタまたはMOSFETと、適切な別電源で駆動する必要があります。大きな電流が流れる負荷をピンに直接つながないでください。