Free Recipe · Step 2
Arduinoで作る
記憶ゲーム
LEDの光る順番を覚え、同じ順番でボタンを押すゲームです。部品、配線、完成コードを無料で公開しています。
FINISHED
完成した状態
実機3回試験で組み立てた現物です。下の配線図はこの配置に合わせています。ブレッドボードの列番号は、お手元の製品の印字に合わせて読み替えてください。
PARTS
必要な部品
この構成が標準です。 販売キットもこの1構成です。実機3回試験を完了し、この部品構成で動作することを確認済みです。
| 部品 | 数量 | 仕様 |
|---|---|---|
| Arduino UNO R3 | 1 | 純正。追加ドライバーなしで認識されます |
| USBケーブル | 1 | A-B(プリンタ型)。R3の書き込みに使用 |
| LED | 3 | 5mm 赤・黄・緑 各1 |
| 抵抗 | 3 | 1kΩ(茶・黒・赤)。LEDの電流制限用 |
| タクトスイッチ | 3 | ブレッドボード対応。キットは赤・黄・緑の色つきで、押しボタンの色を各LEDと揃えています |
| 受動圧電スピーカー | 1 | tone関数で音程を変えられるもの |
| ブレッドボード・ジャンパー線 | 1式 | 中型(400穴程度) |
Arduino UNO R4 Minimaでも同じピン配置・同じコードで動作しますが、USBケーブルはType-Cになります。抵抗は手持ちの330Ω〜1kΩでも使用できます。値が小さいほどLEDは明るくなります。
Wiring
配線
キットの部品(Arduino UNO R3・1kΩ・受動圧電スピーカー)どおりの配線図です。中型ブレッドボードの列番号と行記号は、実物の印字に合わせて読み替えてください。
| 部品 | Arduino側 | GND側 |
|---|---|---|
| 赤LED | D2 →(1kΩ)→ 長い足 | 短い足 → GNDレール |
| 黄LED | D3 →(1kΩ)→ 長い足 | 短い足 → GNDレール |
| 緑LED | D4 →(1kΩ)→ 長い足 | 短い足 → GNDレール |
| SW1 | D5 | 溝の反対側 → GNDレール |
| SW2 | D6 | 溝の反対側 → GNDレール |
| SW3 | D7 | 溝の反対側 → GNDレール |
| 受動圧電スピーカー | D8 | もう一方 → GNDレール |
| Arduino GND | GND(デジタル側) | 下のGNDレール |
上下のGNDレールはジャンパー線1本でつないでください。図では左端でつないでいます。ブレッドボードの+レールは今回使いません。
LED
赤→D2、黄→D3、緑→D4。各LEDのアノード側(長い足)へ1kΩを直列に入れ、カソード(短い足)をGNDへ接続します。
ボタン
SW1→D5、SW2→D6、SW3→D7。もう一方をGNDへ接続し、コード側で内部プルアップを使います。
音
受動圧電スピーカーをD8とGNDへ接続します。大電流のブザーは直接接続しません。
通電前
配線変更時はUSBを抜き、5VとGNDの短絡、LEDの極性、抵抗の有無を確認してください。
Public Code
完成コード
// 完成コードは /code/memory-game.ino からダウンロードできます。
// ピン: LED=2,3,4 / BUTTON=5,6,7 / BUZZER=8
// ボタンは INPUT_PULLUP を使い、押すと LOW になります。BASIC STEPS
基本的な作り方
- 1. IDEとボードを確認:Arduino IDEの「ツール → ボード」で Arduino Uno とポートを選び、Blinkを書き込めることを確認します。
- 2. LEDを1組ずつ確認:USBを外してLEDと1kΩを直列に配線し、D2、D3、D4を一つずつ点灯します。1kΩでは約3mAとなり、明るい部屋ではやや暗く見えますが正常です。
- 3. ボタンを1個ずつ確認:D5、D6、D7をINPUT_PULLUPで読み、押したときだけLOWになることをシリアルモニターで確認します。
- 4. 音を確認:D8へ受動圧電スピーカーを接続し、短いtone()で鳴ることを確認します。
- 5. 全部品を統合:USBを外し、3組のLEDとボタン、圧電スピーカーを完成配線へまとめます。ボタンは対応するLEDと同じ色のものを、そのLEDの隣に挿します。
- 6. 完成コードを書き込み:完成コードを変更せず書き込み、LEDの順番を同じ色のボタンで入力します。
- 7. 正常動作を確認:書き込むと3つのLEDが点滅して待機します。赤のボタン(D5)を1秒ほど押し続けると開始音が鳴り、ゲームが始まります。LEDは赤=ド、黄=ファ、緑=シの音とセットで光ります。正解するたびに1段ずつ伸びて短いクリア音が鳴り、誤入力または10秒無入力で不正解音とゲームオーバー音、10ラウンド成功で全問クリアのメロディが鳴ります。終わると待機状態へ戻り、赤のボタンでもう一度始められます。
TROUBLESHOOTING
動かないときの確認
LEDが点滅したままゲームが始まらない
- これは故障ではありません。3つのLEDの点滅は「開始待ち」の合図です。
- 赤のボタン(D5)を1秒ほど押し続けると開始音が鳴り、ゲームが始まります。
- 待機中のボタンは点滅の合間にだけ読むため、短く押すと反応しないことがあります。1秒ほど押し続けても始まらない場合は、赤のボタンの向きを確認します。タクトスイッチは中央の溝をまたぐ向きで挿します。
- ゲームが終わると、また同じ点滅の待機状態へ戻ります。
Arduinoへ書き込めない
- データ通信対応USBケーブルか確認します。
- IDEのボードとポートを選び直します。
- 別のUSBポート、次に別のケーブルで試します。
- Blinkだけを書き込み、ゲーム配線と分けて確認します。
LEDが光らない、または別の色が光る
- USBを外します。
- LEDの向きと抵抗が直列に入っているか確認します。
- D2/D3/D4とコード内の順番を照合します。
- LEDを1個だけに戻し、最小コードで試します。
ボタンを押しても反応しない、常に押された状態になる
- タクトスイッチの脚の内部接続と向きを確認します。
- 片側がD5/D6/D7、反対側がGNDか確認します。
- INPUT_PULLUPでは、離したときHIGH、押したときLOWです。
- シリアルモニターで各ボタンを1個ずつ確認します。
音が鳴らない、鳴り続ける
- 受動圧電スピーカーか確認します。
- D8とGNDへの接続を確認します。
- 部品をD8から外してから再起動し、ゲーム側か部品側かを分けます。
- 異常発熱があれば直ちにUSBを外します。
ゲームがすぐ失敗する
- 光ったLEDと対応するボタンの配線順を照合します。
- ボタンが押しっぱなしになっていないか確認します。
- 完成コードへ戻し、速度やラウンド数の改造を一度外します。
- LED、ボタン、音の単体確認へ戻ります。
Learn with support
部品の意味から学びたい方へ
キット付き講座では、Arduino接続、LED、ボタン、音を一つずつ確認してからゲームへ統合します。正常に動いたときの例、症状別の診断、AIでの改造、進捗の記録、30日間の完成サポートが含まれます。
キット付き講座を見る