親子で一緒に作って、家族で遊べる電子工作


今回は、夏休みに親子で電子工作を楽しみたい方に向けて、Arduino初心者キットだけで作れる「早押しクイズランプ」を紹介します。
2人がそれぞれボタンを構えて、出題者の合図でクイズ番組のように早押し勝負ができる装置です。先に押した方のLEDだけが光り、もう片方は無効になります。作るのも遊ぶのも親子で一緒にでき、完成後にも家族で動作確認を続けやすい工作です。
- 緑LEDと赤LEDをそれぞれの席に置く
- 2つのボタンを構えて、出題者が「スタート!」と合図
- 先に押した方のLEDだけが光る
- もう片方を押しても反応しない (テレビと同じ)
- リセットボタンで次の問題へ
使う部品
| 部品 | 役割 | 個数 |
|---|---|---|
| Arduino UNO R3 | 装置の頭脳 | 1 |
| LED (緑、赤) | 勝者のランプ | 各1 |
| 抵抗330Ω | LEDを保護 | 2 |
| タクトスイッチ | 早押しボタン | 3 (Aさん、Bさん、リセット) |
| パッシブブザー | 勝者の合図音 | 1 |
| ブレッドボード | 配線をする台 | 1 |
| ジャンパーワイヤー | つなぐ線 | 10本前後 |
親子での分担のすすめ
全部を一緒にやると進みません。次のように分担すると親子ともストレスなく進められます。
| 工程 | 親の役割 | 子の役割 |
|---|---|---|
| 部品の準備 | キットから必要な物を取り出す | 表に並べて確認 |
| 配線 | 配線図を見せる、見守る | 実際に挿す |
| 書き込み | PCの準備、IDEの操作 | USBの接続、書き込みボタン |
| 動作確認 | 動かない時の原因を一緒に考える | 遊んでみる、感想を言う |
大事なのは、親が先回りして全部やらないことです。子どもが詰まったら一緒に考える、というスタンスで進めましょう。
配線図 (ブレッドボード)
a b c d e
+─────────+
[+]rail| . . . . . | ← 使わない (今回は内蔵プルアップのみ)
[-]rail| . . . . . | ← GND (Arduino GND から)
+─────────+
row 3 | X . . . . | ← SW_A (D2)
row 5 | X . . . . | ← SW_A 反対足 ([-]rail)
row 7 | X . . . . | ← SW_B (D3)
row 9 | X . . . . | ← SW_B 反対足 ([-]rail)
row 11 | X . . . . | ← SW_R リセット (D4)
row 13 | X . . . . | ← SW_R 反対足 ([-]rail)
row 17 | X . . . . | ← 330Ω 上足 (D7 から)
row 18 | X . . . . | ← 330Ω 下足+緑LED アノード
row 20 | X . . . . | ← 緑LED カソード ([-]rail)
row 23 | X . . . . | ← 330Ω 上足 (D8 から)
row 24 | X . . . . | ← 330Ω 下足+赤LED アノード
row 26 | X . . . . | ← 赤LED カソード ([-]rail)
row 29 | X . . . . | ← ブザー+足 (D9 から)
row 30 | X . . . . | ← ブザー-足 ([-]rail)
+─────────+
部品同士のつながり
Arduino 役割 D2 ←── Aさん早押しボタン D3 ←── Bさん早押しボタン D4 ←── リセットボタン D7 ──→ 緑LED (Aさん勝利) D8 ──→ 赤LED (Bさん勝利) D9 ──→ パッシブブザー
ボタンは中央の溝をまたぐように挿して、対角の2本のうち片方をArduinoのピン、もう片方をGNDに繋ぐだけです。プルアップは内蔵を使うので、抵抗は不要です。LEDはそれぞれ330Ω抵抗を直列に入れます。
プログラム
次のスケッチをコピーして書き込みましょう。
#define BTN_A 2
#define BTN_B 3
#define BTN_RESET 4
#define LED_A 7
#define LED_B 8
#define BUZZER 9
int winner = 0; // 0=未決, 1=Aさん, 2=Bさん
void setup() {
Serial.begin(9600);
pinMode(BTN_A, INPUT_PULLUP);
pinMode(BTN_B, INPUT_PULLUP);
pinMode(BTN_RESET, INPUT_PULLUP);
pinMode(LED_A, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.println("早押しクイズランプ 準備完了!");
}
void loop() {
if (winner == 0) {
if (digitalRead(BTN_A) == LOW) {
winner = 1;
digitalWrite(LED_A, HIGH);
tone(BUZZER, 1500, 300);
Serial.println("Aさんの勝ち!");
} else if (digitalRead(BTN_B) == LOW) {
winner = 2;
digitalWrite(LED_B, HIGH);
tone(BUZZER, 1000, 300);
Serial.println("Bさんの勝ち!");
}
}
if (digitalRead(BTN_RESET) == LOW) {
winner = 0;
digitalWrite(LED_A, LOW);
digitalWrite(LED_B, LOW);
Serial.println("リセット!");
delay(300);
}
}
動きの流れ
未決?"} B -->|Yes| C{"Aを
押した?"} C -->|Yes| D["緑LED + 高音
勝者=Aさん"] C -->|No| E{"Bを
押した?"} E -->|Yes| F["赤LED + 低音
勝者=Bさん"] E -->|No| B D --> G{リセット?} F --> G G -->|Yes| H["全消灯
勝者なし"] G -->|No| G H --> B B -->|No| G
遊び方のアイデア
完成したら、いよいよクイズ大会の開始です。家族で楽しむためのテーマ例を紹介します。
- 家族の誕生日や好きな食べ物 (子ども有利の問題集)
- 身の回りの英単語 (机=desk、本=bookなど)
- 都道府県や歴史 (中学受験勉強にも)
- 家族の昔の写真を見て「これいつ撮ったクイズ」


自由研究レポートとしてのまとめ方
遊んで終わりじゃもったいないので、レポートにもまとめましょう。親子で取り組んだ過程そのものが評価ポイントです。
- 研究のきっかけ (なぜ作ろうと思ったか)
- 家族で分担した役割の説明
- 使った部品と配線図
- プログラムの簡単な解説
- 完成後に家族で遊んだ感想
- つまずいた所と、どう解決したか
6番目の「つまずいた所」を素直に書くと評価が上がります。「LEDが付かなかった → 長い足の向きを間違えていた」のような体験談が、読み手の共感を生みます。
改造のアイデア
- 勝った回数をシリアル出力で記録 (家族のスコアボード)
- 3秒以内にボタンを押せないと両方失格にする
- LCD画面に「Aさんの勝ち!」と表示する
- 3つの音をランダムに鳴らして、当てた人の勝ち (音ゲー化)
まとめ
今回は、親子で作って家族で遊べる「早押しクイズランプ」の作り方を紹介しました。Arduino初心者キットだけで作れて、完成後も継続的に楽しめる、自由研究と家族の時間を一石二鳥でかなえる作例です。
大切なのは、親が手を出しすぎず、お子さんに「自分で作った」という達成感を持たせることです。詰まった時だけ一緒に考える、というスタンスで進めれば、夏休みの素敵な思い出になります。

今日から始める電子工作 

