
2個のLEDが素早く交互に点滅します。一方が点くともう一方が消え、まるでボールを投げ合っているようです。ArduinoがそれぞれのLEDを5分の1秒ずつ点灯させ、次のLEDに切り替えます。1個のLEDの次に、複数の光をまとめて制御する方法を学ぶのに最適なステップです。
動画
回路図

ソースコード
Arduino (C++)
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Two LEDs Blinking Alternately
4// ─────────────────────────────────────────
5// Lights two LEDs in turn every 200 ms (flip-flop effect). Shows how to
6// control more than one output pin.
7//
8// Pins:
9// D8 -> LED 1 (with a 220 ohm resistor)
10// D9 -> LED 2 (with a 220 ohm resistor)
11
12void setup() {
13 pinMode(8,OUTPUT); // LED 1 output
14 pinMode(9,OUTPUT); // LED 2 output
15}
16
17void loop() {
18 // LED 1 on, LED 2 off
19 digitalWrite(8,HIGH);
20 digitalWrite(9,LOW);
21 delay(200);
22 // Swap: LED 1 off, LED 2 on
23 digitalWrite(8,LOW);
24 digitalWrite(9,HIGH);
25 delay(200);
26}
27
よくある質問
2個のLEDに1個の抵抗を共用できますか?▾
いいえ、LEDごとに抵抗が必要です。1個の抵抗を共用すると電流が均等に分かれず、一方が明るくなったり、まったく点灯しなかったりします。このプロジェクトでは、各LEDに220 Ωの抵抗を1個ずつ使います。
フリップフロップのような動きはどう作りますか?▾
一方のLEDをHIGHにするとき、もう一方をLOWにします。少し待ってから状態を入れ替えることで、2個のLEDが交互に点灯します。2本のピンに同時に反対の値を書き込むことが、この動きの基本です。
どのピンが使えますか?▾
Unoでは、2〜13のデジタルピンすべてでLEDを駆動できます。ピン0と1はUSBシリアル通信に使うため、空けておくことをおすすめします。ピンを変えたら、コード内のピン番号も更新してください。
LEDがとても暗いのはなぜですか?▾
よくある原因は、`pinMode(pin, OUTPUT)`の行の書き忘れです。ピンを出力に設定していないと、LEDは薄暗く点灯します。また、抵抗値が大きすぎる場合(例:10 kΩ)も暗くなるので、220–330 Ωを使ってください。
