🤖
エンジくん
Lesson 4でLチカをマスターしたね!今度は3個のLEDを別々のデジタルピンにつないで、ランニングライトを作ろう!
1
このレッスンで学ぶこと
- 📌 デジタルピンを複数使う — D9・D10・D11に3色LEDをつなぐ
- 🔄 for文でコードをスッキリさせる — 繰り返し処理の基本
- 💡 ランニングライト — 順番にチカチカするLED演出
- 🎮 ランニングライトシミュレーター — スピードやパターンを変えて遊ぼう!
2
用意するもの
💡 部品名をクリックすると詳しい説明とAmazonリンクが見られるよ!
3
配線のしかた
3色のLEDをそれぞれ別のデジタルピンにつなぎます。
赤→D9、緑→D10、青→D11。GNDは全LEDで共通
📌 ピンとLEDの対応
- D9 → 220Ω → 赤LED → GND
- D10 → 220Ω → 緑LED → GND
- D11 → 220Ω → 青LED → GND
4
プログラムを書こう
まずシンプルな順番チカチカから始めよう。
// ランニングライト(基本版)
int pins[] = {9, 10, 11}; // 赤・緑・青
int spd = 300; // 点灯時間(ms)
void setup() {
for (int i = 0; i < 3; i++) {
pinMode(pins[i], OUTPUT); // 3つ全部を出力に設定
}
}
void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(pins[i], HIGH); // i番目のLEDを点灯
delay(spd);
digitalWrite(pins[i], LOW); // 消灯
}
}
int pins[] = {9, 10, 11}; // 赤・緑・青
int spd = 300; // 点灯時間(ms)
void setup() {
for (int i = 0; i < 3; i++) {
pinMode(pins[i], OUTPUT); // 3つ全部を出力に設定
}
}
void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(pins[i], HIGH); // i番目のLEDを点灯
delay(spd);
digitalWrite(pins[i], LOW); // 消灯
}
}
🔄 for文ってなに?
for (int i = 0; i < 3; i++) は「iを0から始めて、3より小さい間、1ずつ増やしながら繰り返す」という意味です。
- i=0のとき → pins[0] = 9(赤LED)
- i=1のとき → pins[1] = 10(緑LED)
- i=2のとき → pins[2] = 11(青LED)
for文を使うと同じような処理をスッキリ書けます!
🤖
エンジくん
int pins[] = {9, 10, 11} は「配列」といって、複数の数字をひとまとめにする箱だよ。pins[0]は9、pins[1]は10、pins[2]は11になる!
応用として「全部いっぺんに光らせる」パターンも見てみよう:
// 全点灯・全消灯パターン
void loop() {
// 全部点灯
for (int i = 0; i < 3; i++) digitalWrite(pins[i], HIGH);
delay(500);
// 全部消灯
for (int i = 0; i < 3; i++) digitalWrite(pins[i], LOW);
delay(500);
}
void loop() {
// 全部点灯
for (int i = 0; i < 3; i++) digitalWrite(pins[i], HIGH);
delay(500);
// 全部消灯
for (int i = 0; i < 3; i++) digitalWrite(pins[i], LOW);
delay(500);
}
5
実際につないでみよう!
6
クイズに挑戦!
🤖
エンジくん
デジタルピンとfor文は理解できたかな?4問のクイズで確認しよう!
クイズを読み込み中…
7
ランニングライトシミュレーター🎮
🤖
エンジくん
パターンとスピードを変えて遊んでみよう!どんなパターンが一番かっこいいかな?
⚡ ランニングライトシミュレーター
赤LED
D9
緑LED
D10
青LED
D11
300ms
▶ 「実行」ボタンを押してスタート!
🔬 気づいたこと
- ✅ パターンを変えるだけで全然ちがう見た目になる
- ✅ スピードをはやくすると残像で光って見える(イルミネーションの原理)
- ✅ for文で同じようなコードを何度も書かなくていい
8
まとめ
- ✅ デジタルピンD2〜D13にLEDをつないで個別制御できる
- ✅ 配列
int pins[] = {9,10,11}で複数のピンをまとめられる - ✅ for文で繰り返し処理をスッキリ書ける
- ✅ delay()の値でランニングライトのスピードを調整できる