
街の信号機を小さく再現します。赤が3秒間点灯した後、赤と黄が同時に点灯して、緑に変わることを知らせます。緑が3秒間点灯すると、黄が短く点灯し、再び赤に戻ります。ESP32にLED3個と抵抗3個を接続するだけで作れます。
動画
回路図

ソースコード
Arduino (C++)
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// ESP32 Traffic Light
4// ─────────────────────────────────────────
5// A traffic light cycle with red, yellow and green LEDs: red 3 s, red +
6// yellow 0.8 s, green 3 s, yellow 0.8 s.
7//
8// Pins:
9// GPIO 5 -> Red LED
10// GPIO 18 -> Yellow LED
11// GPIO 19 -> Green LED
12// Each LED with a 220 ohm resistor, cathodes to GND
13
14const int RED = 5; // Red LED pin
15const int YELLOW = 18; // Yellow LED pin
16const int GREEN = 19; // Green LED pin
17
18void setup() {
19 pinMode(RED, OUTPUT);
20 pinMode(YELLOW, OUTPUT);
21 pinMode(GREEN, OUTPUT);
22}
23
24void loop() {
25 // Red
26 digitalWrite(RED, HIGH);
27 digitalWrite(YELLOW, LOW);
28 digitalWrite(GREEN, LOW);
29 delay(3000);
30
31 // Red + Yellow
32 digitalWrite(YELLOW, HIGH);
33 delay(800);
34
35 // Green
36 digitalWrite(RED, LOW);
37 digitalWrite(YELLOW, LOW);
38 digitalWrite(GREEN, HIGH);
39 delay(3000);
40
41 // Yellow
42 digitalWrite(GREEN, LOW);
43 digitalWrite(YELLOW, HIGH);
44 delay(800);
45 digitalWrite(YELLOW, LOW);
46}
47
よくある質問
Arduinoの信号機のコードとは何が違いますか?▾
仕組みは同じで、ESP32に合わせてピン番号だけを変更します。出力が3.3 VなのでLEDが少し暗くなることがあります。明るくしたい場合は100–150 Ωの抵抗を使えます。
スマートフォンから信号機を操作できますか?▾
はい。ESP32のWi-Fi機能で小さなウェブサーバーを作り、ブラウザーから点灯状態を変更できます。これはESP32とArduinoを分ける最大の特徴です。
点灯時間を実際の信号機に近づけるにはどうすればよいですか?▾
実際の交差点では、緑と赤は20–60秒、黄は3–4秒点灯します。試すときは待ち時間を短くし、発表時には実際の長さに設定できます。
どのピンを選べばよいですか?▾
GPIO 25、26、27のように、起動時に特別な役割を持たないピンを選んでください。GPIO 0、2、12、15は起動モードに影響するため、接続した回路によってボードが起動しなくなることがあります。
