Arduinoのプロジェクト:初心者から上級者まで30のアイデア
レベル別に並べた30のArduinoプロジェクトを、短い説明と部品リスト付きで紹介します。初級10、中級10、上級10に加え、ESP32とPicoのアイデアもあります。
Arduinoのプロジェクトのアイデアを探していますか?ここがぴったりの場所です。このリストには初級、中級、上級の3レベルで30のプロジェクトがあり、表を見れば、それぞれが何をするのか、何が学べるのか、どの部品が必要なのかがわかります。LEDを点けることから障害物を避けるロボットまで、アイデアは少しずつ難しくなり、各レベルは前のレベルで学んだことの上に積み上がります。最後には、Wi-Fi対応のESP32とMicroPythonでプログラムするRaspberry Pi Pico向けの6つのおまけのアイデアと、プロジェクトを最初から最後まで計画する実践的な方法も紹介します。
このリストのいちばんよい使い方は、自分のレベルの表からプロジェクトを選び、まず基本の形を作り、それから小さな追加で改良していくことです。たとえば、常夜灯にブザーを加えたり、駐車センサーにディスプレイを加えたりするほうが、まったく新しいプロジェクトを一から始めるより多くを学べることがよくあります。表のプロジェクトのほとんどは、BlueGraysアプリにステップごとの回路図とコード付きで入っています。「BlueGraysでは」の列は、対応するプロジェクトを示しています。

始める前に:どんな部品が必要?
最初の7つのプロジェクトは、どれも1つの基本キットで作れます。Arduino Uno(またはNano)、ブレッドボード、オス-オスのジャンパーワイヤー、いくつかの色のLEDとRGB LED、220 Ωと10 kΩの抵抗、押しボタン、ポテンショメーター、LDR、パッシブブザーです。8〜10番のプロジェクトでは、HC-SR04距離センサー、SG90サーボ、PIR人感センサーを加えます。ほとんどのスターターキットには、この3つがすでに入っています。中級になると、DHT11、I2C LCD、赤外線受信モジュールとリモコン、7セグメントディスプレイ、WS2812B LEDテープなどのモジュールが登場します。上級では、モータードライバ、リレー、外部電源などの部品が必要です。どのキットを買うか決めるにはArduinoスターターキットのガイドを、ボード選びにはどのArduinoを買えばいい?を、ブレッドボードの内部の接続についてはブレッドボードとは?を読んでみてください。






| レベル | 知っておくべきこと | 主な部品 | 1プロジェクトの所要時間 |
|---|---|---|---|
| 初級 | pinMode、digitalWrite、digitalRead、analogRead、delay | LED、抵抗、ボタン、LDR、ブザー、ポテンショメーター | 30分〜1時間 |
| 中級 | ライブラリのインストール、I2C、millis()、配列、関数 | HC-SR04、DHT11、LCD、赤外線受信モジュール、サーボ、WS2812B | 2〜4時間 |
| 上級 | ステートマシン、モータードライバ、外部電源、複数のモジュールの組み合わせ | L298N、リレー、キーパッド、RFID、OLED、ポンプ | 1〜3日 |
初級:かんたんなArduinoのプロジェクト10選
このレベルのプロジェクトでは、3つの基本のスキルを学びます。デジタル出力(LEDを点ける)、デジタル入力(ボタンを読む)、アナログ入力(センサーを読む)です。LEDの前には必ず抵抗を入れてください。5 Vで使う標準的な赤いLEDなら、220 Ωで約14 mAとなり安全です。ほかの色に合った値はLED抵抗計算ツールで求められます。
| # | プロジェクト | 何をして、何を学ぶか | 必要な部品 | BlueGraysでは |
|---|---|---|---|---|
| 1 | LEDの点滅 | 決まった間隔でLEDをオン・オフする。デジタル出力とタイミングを学ぶ | LED 1個、220 Ωの抵抗 | LEDの点滅 |
| 2 | 信号機 | 赤、黄、緑のLEDを本物と同じ順番で点ける。ステップごとの流れを学ぶ | LED 3個、220 Ωの抵抗 × 3 | 信号機 |
| 3 | パトランプ | 赤と青のLEDを短く素早く点滅させる。forループによる繰り返しのパターンを学ぶ | 赤と青のLED、抵抗2本 | パトランプ |
| 4 | ボタンでLEDを切り替え | 押すたびにLEDの状態を変える。デジタル入力とプルアップ抵抗を学ぶ | 押しボタン、LED、220 Ωの抵抗 | ボタンでLED(オン/オフ) |
| 5 | 自動常夜灯 | 暗くなるとLEDを点ける。アナログの読み取りとしきい値を学ぶ | LDR、10 kΩの抵抗、LED | LDRを使った常夜灯 |
| 6 | ブザーのメロディー | 音の周波数から曲を演奏する。tone()関数を学ぶ | パッシブブザー | ブザーでトルコ国歌 |
| 7 | RGB LEDの色のフェード | 3つの色のチャンネルを混ぜて、なめらかに色を変える。PWMを学ぶ | RGB LED、抵抗3本 | RGB LEDでなめらかな色のフェード |
| 8 | 距離計 | 超音波センサーで測った距離をシリアルモニタに表示する | HC-SR04距離センサー | HC-SR04で距離の測定(シリアルモニタ) |
| 9 | ポテンショメーターでサーボ | つまみを回すと、サーボのアームが0〜180度回る | ポテンショメーター、SG90サーボ | ポテンショメーターでサーボモーター |
| 10 | 動体検知器 | 誰かが通るとLEDを点けるか、ブザーを鳴らす | PIRセンサー、LEDまたはブザー | PIRセンサーで動体検知器 |
- LEDのプロジェクト(1〜3):LEDの長い足(アノード)をプラスに、短い足(カソード)をマイナスにつなぎます。足と抵抗の選び方のくわしい説明はLEDとは?と抵抗とは?にあります。信号機の黄色の時間を調整し、歩行者用ボタンを加えると、最初の改良にちょうどよいでしょう。
- ボタンのプロジェクト(4):ボタンをINPUT_PULLUPで配線すれば、外付けの抵抗は不要です。1回の押下が何回にも数えられないよう、チャタリング対策は欠かせません。ボタンの配線の記事で両方の方法を解説しています。
- 常夜灯(5):LDRと10 kΩの抵抗が分圧回路を作り、analogReadは0〜1023の値を返します。しきい値は自分の部屋で測って決めてください。くわしくはLDR光センサーの記事にあります。
- メロディー(6):アクティブブザーは1つの音しか出せません。メロディーにはパッシブブザーが必要です。違いはブザーとは?で確認できます。
- RGB LED(7):アノードコモンとカソードコモンのモデルは逆のロジックで動きます。種類を間違えると色が反転します。RGB LEDのガイドで両方の種類を解説しています。
- センサーのプロジェクト(8〜10):HC-SR04、サーボモーター、PIRセンサーは次のレベルの部品です。まずそれぞれを単体で動かしておくと、中級のプロジェクトがずっと楽になります。
中級:Arduinoのプロジェクト10選
中級になると、部品を1つだけでなく、複数のモジュールを組み合わせて使います。センサーの読み取り値をディスプレイに表示したり、リモコンの命令でLEDを切り替えたり、測定値に応じてブザーを速めたりします。ここで大事になるスキルが2つあります。ライブラリのインストールと、millis()による時間管理です。delay()で書いた駐車センサーは、測定中にきちんと音を鳴らせませんが、millis()なら両方を同時にこなせます。
| # | プロジェクト | 何をして、何を学ぶか | 必要な部品 | BlueGraysでは |
|---|---|---|---|---|
| 11 | 駐車センサー | 障害物が近づくほどピッという音が速くなり、とても近いと鳴りっぱなしになる | HC-SR04、パッシブブザー、LED | HC-SR04で駐車センサー |
| 12 | 温湿度表示器 | 部屋の温度と湿度をディスプレイに表示する | DHT11、I2C 16x2 LCD | DHT11で温湿度、I2C LCDディスプレイ |
| 13 | 速度を変えられるナイトライダー | LEDが往復し、ポテンショメーターで速度を設定する。配列とアナログの読み取りを組み合わせる | LED 6〜8個、抵抗、ポテンショメーター | 速度を変えられるナイトライダーLED |
| 14 | デジタル時計 | 4桁の7セグメントディスプレイに時刻を表示する。RTCモジュールを加えれば停電しても時刻を保つ | 4桁の7セグメントディスプレイ、RTCモジュール(任意) | 4桁の7セグメントディスプレイでデジタル時計 |
| 15 | リモコンで操作するLED | テレビのリモコンのボタンでLEDをオン・オフする | 赤外線受信モジュール、リモコン、LED | 赤外線受信モジュールとリモコンでLEDのオン/オフ |
| 16 | 反応速度テスト | 光が点いてからどれだけ速くボタンを押したかをミリ秒で測る | ボタン、LED、ブザー | 音で知らせるArduinoの反応速度テスト |
| 17 | 電子サイコロ | ボタンを押すと1〜6のランダムな数を表示する。random()関数を学ぶ | 7セグメントディスプレイまたはLED 7個、ボタン | サイコロのプロジェクト |
| 18 | スマートフォンからLEDを操作 | スマートフォンのBluetoothアプリから送った命令でLEDを点ける | HC-05 Bluetoothモジュール、LED | BluetoothでスマートフォンからLEDを操作 |
| 19 | ドアアラーム | ドアが開くと磁石が離れ、アラームが鳴る | リードスイッチ、磁石、ブザー | リードスイッチのドアセンサー |
| 20 | NeoPixelのライトショー | アドレス指定できるLEDテープで、流れる光やストロボのアニメーションを動かす | WS2812B LEDテープまたはリング、5 Vの電源 | WS2812Bの使い方、WS2812Bでパトランプ |
- 駐車センサー(11):HC-SR04のエコーの時間(マイクロ秒)を58で割ると、距離がセンチメートルで求まります。このプロジェクトのブロッキングしないコードは、下の計画の章にあります。センサーのくわしい説明はHC-SR04の記事にあります。
- 温度表示器(12):DHT11は1秒に1回より多く読まないでください。センサーが新しい値を作るのは1秒に1回までです。ディスプレイをI2Cでつなげば、配線は4本だけです。DHT11とI2C LCDディスプレイを参照してください。
- デジタル時計とサイコロ(14、17):7セグメントディスプレイでは、アノードコモンとカソードコモンの違いが決定的です。7セグメントディスプレイの記事にセグメントの表があります。
- リモコンとBluetooth(15、18):赤外線リモコンのボタンにはそれぞれ固有のコードがあるので、まずシリアルモニタでそのコードを読む必要があります。くわしくは赤外線受信モジュールとリモコンとHC-05 Bluetoothモジュールの記事にあります。
- NeoPixel(20):WS2812BのLEDは1個あたり白で最大輝度にすると約60 mAを消費するので、30個のLEDのテープでは1.8 Aに達することがあります。くわしくはWS2812B NeoPixelの記事にあります。
上級:Arduinoのプロジェクト10選
上級のプロジェクトでは、複数のセンサー、モーター、現実の負荷を組み合わせます。ここではコードと同じくらい電源の設計と機構が重要です。モーターを別に給電する、リレーを安全に配線する、ケーブルをしっかり固定する、といったことです。コードでは、ステートマシンで考えると楽になります。たとえば、ロックの状態を「待機中、コード入力中、解錠、警報」のように別々に定義し、各状態ではその状態に属する処理だけを行います。
| # | プロジェクト | 何をして、何を学ぶか | 必要な部品 | BlueGraysでは |
|---|---|---|---|---|
| 21 | キーパッドのドアロック | キーパッドで入力したコードが正しければサーボのロックを開け、間違っていれば警告する | 4x4キーパッド、I2C LCD、SG90サーボ、ブザー | 4x4キーパッドとLCDの暗証番号アプリ、スマート電子金庫 |
| 22 | RFIDカードの入室管理 | 登録済みのカードをかざすとドアを開け、知らないカードには警報を出す | RC522 RFIDモジュール、カード、サーボ、LED | RFID認証 |
| 23 | 障害物を避けるロボット | 前方に障害物を検知すると止まり、向きを変えて進み続ける | ロボットのシャーシ、DCモーター2個、L298N、HC-SR04、サーボ、電池 | 障害物を避けるロボット |
| 24 | Bluetoothで操作する車 | スマートフォンのアプリから前後左右に操作する | DCモーター2個、L298N、HC-05、電池ボックス | L298NとBluetoothで操作する車 |
| 25 | スマート灌水 | 土が乾くとポンプを動かし、十分に湿ったら止める | 土壌水分センサー、リレー、ミニ水中ポンプ | スマート水やりステーション |
| 26 | ガスと炎の警報器 | ガス漏れや炎を検知すると、音と光で警報を出す | MQ-2ガスセンサー、炎センサー、ブザー、LED | 炎・ガスセンサーの警報器 |
| 27 | レーザーセキュリティシステム | レーザー光が遮られると警報を鳴らす | レーザーモジュール、LDR、ブザー | レーザーセキュリティシステム |
| 28 | OLEDのゲーム | 小さなOLEDディスプレイでポンや恐竜のランゲームを遊ぶ | 0.96インチSSD1306 OLED、ボタン | ポンゲーム - SSD1306、OLED T-Rexラン |
| 29 | サイモンの記憶ゲーム | どんどん長くなる色と音の並びを繰り返させる | LED 4個、ボタン4個、ブザー | サイモンゲーム - Arduinoの記憶ゲーム |
| 30 | ドットマトリクスの時計と気象観測所 | 時刻、日付、温度をスクロール文字で表示する | MAX7219 8x32ドットマトリクス、DS1307 RTC、温度センサー | ドットマトリクスの時計、カレンダー、気象観測所(MAX7219、DS1307) |
- ロックのプロジェクト(21〜22):コードをプログラムに直接書かずにEEPROMに保存すれば、ボードの電源を切って入れ直しても設定が残ります。配線はキーパッドとRFID RC522の記事を参照してください。RC522は3.3 Vで動作することを忘れずに。
- ロボット(23〜24):DCモーターはArduinoのピンに直接つなげず、L298Nのようなドライバが必要です。L298Nでは2 V以上の電圧降下があるので、6 Vのモーターは7〜9 Vの電源で動かしてください。くわしくはL298NでDCモーターを制御するの記事にあります。
- スマート灌水(25):安価な抵抗式の土壌センサーは、常に給電していると腐食します。測定するときだけピンからセンサーに給電してください。ポンプにはリレーを使います。土壌水分センサーとリレーモジュールを参照してください。
- ガス警報器(26):MQ-2のヒーターは、電源を入れるたびに温まるまで数分かかります。予熱後にきれいな空気の中で測ってしきい値を設定してください。くわしくはMQ-2ガスセンサーの記事にあります。
- ゲーム(28〜29):OLEDの1 KBのフレームバッファはUnoの2 KBのRAMの半分を使うので、ゲームではメモリの使用量に気をつけてください。操作にはボタンの代わりにジョイスティックも使えます。ディスプレイについてはOLED SSD1306の記事を参照してください。
ESP32とRaspberry Pi Picoで作るおまけのアイデア6選
プロジェクトでインターネットに接続したい、スマートフォンから操作したい、サーバーにデータを送りたいなら、Arduino UnoからESP32に切り替えるのがいちばん簡単です。Wi-FiとBluetoothを内蔵し、同じArduino IDEでプログラムできます。一方、Raspberry Pi Picoは安くて速く、MicroPythonでプログラムできるので、Pythonを学びたい人にぴったりです。どちらにするかはArduinoとESP32の違いは?の比較で決められ、ESP32とは?とRaspberry Pi Picoとは?の記事から始められます。


| ボード | プロジェクト | 何をするか | BlueGraysでは |
|---|---|---|---|
| ESP32 | Wi-Fi Webサーバー | スマートフォンのブラウザで開いたページから、LEDやリレーを操作する | ESP32非同期Webサーバー(IPをLCDに表示) |
| ESP32 | インターネット時計 | NTPサーバーから時刻を取得し、設定不要で常に正しく表示する | ESP32 NTPでインターネットから正確な時刻 |
| ESP32 | 天気の表示 | インターネットから取得した天気のデータをOLEDディスプレイに表示する | ESP32 HTTPClient+天気API(SSD1306 OLED) |
| ESP32 | Telegramの動体アラーム | 動きを検知すると、スマートフォンにTelegramのメッセージを送る | ESP32動体アラームシステム(PIR+ブザー+LED+Telegram) |
| Pico | 4モードの信号機 | ボタンで4つの動作モードを切り替える。MicroPythonでステートマシンを学ぶ | Raspberry Pi Picoの信号機、ボタンで4モード選択 |
| Pico | 呼吸するLED | PWMでLEDの明るさをゆっくり上げ下げする | Raspberry Pi PicoのPWMでLEDのフェード(呼吸エフェクト、GP14) |
プロジェクトを最初から最後までどう計画する?
- 何をするかを一文で書く:「障害物が50 cmより近ければ、ピッという音を速くする」。一文がはっきりしていれば、プロジェクトもはっきりします。
- 入力と出力を書き出す:入力はセンサーとボタン、出力はLED、ブザー、モーター、ディスプレイです。それぞれにピンを割り当てます。ボードのピン配置はピン配置ツールで確認できます。
- 電源の予算を計算する:各部品が消費する電流を合計します。Arduino Unoのピンが供給できるのは絶対最大定格で40 mAで、安全に使うには20 mAを超えないようにします。それ以上ならトランジスタ、リレー、ドライバを使ってください。計算にはオームの法則ツールが使えます。
- 各モジュールを単体でテストする:まずシリアルモニタでセンサーを読み、ブザーは別のスケッチで鳴らします。全部を一度に配線して動かないと、原因を見つけるのがずっと難しくなります。
- 部品を組み合わせる:delay()の代わりにmillis()を使ってコードを1つのloop()にまとめ、どのタスクも自分のタイミングで動くようにします。
- ケースに入れて記録を残す:動いた回路の写真を撮り、配線表とコードを保存しておきます。次のプロジェクトで同じ部品を使うときに、多くの時間を節約できます。
これらのステップを、中級の駐車センサーのプロジェクトに当てはめてみましょう。入力はHC-SR04(TRIGは9番ピン、ECHOは10番ピン)、出力はパッシブブザー(8番ピン)です。センサーの消費電流は約15 mAで、小さなパッシブブザーもピンの上限内に収まるため、合計の電流はUSBで十分まかなえます。次のコードは距離を1秒に約16回測り、障害物が50 cmより近いと、距離に比例してピッという音を速くします。1回の音とそのあとの無音は、それぞれ1センチメートルあたり10 msなので、40 cmで400 ms、10 cmで100 msです。5 cm未満では音が鳴りっぱなしになります。
1const int TRIG = 9;
2const int ECHO = 10;
3const int BUZZER = 8; // pasif buzzer / passive buzzer
4
5unsigned long olcumZaman = 0, bipZaman = 0;
6long mesafe = 400; // cm
7bool bipAcik = false, sesCaliyor = false;
8
9long mesafeOlc() {
10 digitalWrite(TRIG, LOW);
11 delayMicroseconds(2);
12 digitalWrite(TRIG, HIGH);
13 delayMicroseconds(10); // 10 µs tetik darbesi / 10 µs trigger pulse
14 digitalWrite(TRIG, LOW);
15 unsigned long sure = pulseIn(ECHO, HIGH, 30000UL); // en fazla 30 ms bekle / wait at most 30 ms
16 if (sure == 0) return 400; // yankı yok: engel uzakta / no echo: obstacle is far
17 return sure / 58; // µs -> cm
18}
19
20void setup() {
21 pinMode(TRIG, OUTPUT);
22 pinMode(ECHO, INPUT);
23 pinMode(BUZZER, OUTPUT);
24}
25
26void loop() {
27 unsigned long simdi = millis();
28 if (simdi - olcumZaman >= 60) { // saniyede yaklaşık 16 ölçüm / about 16 readings per second
29 olcumZaman = simdi;
30 mesafe = mesafeOlc();
31 }
32
33 bool sesli = false;
34 if (mesafe < 5) { // çok yakın: sürekli ses / very close: continuous tone
35 sesli = true;
36 } else if (mesafe < 50) { // yaklaştıkça bipler sıklaşır / beeps speed up as it gets closer
37 if (simdi - bipZaman >= (unsigned long)mesafe * 10) {
38 bipZaman = simdi;
39 bipAcik = !bipAcik;
40 }
41 sesli = bipAcik;
42 }
43
44 if (sesli != sesCaliyor) { // yalnızca değişince çal ya da sustur / switch only on change
45 sesCaliyor = sesli;
46 if (sesli) tone(BUZZER, 2000);
47 else noTone(BUZZER);
48 }
49}コードで注目すべき点が2つあります。まず、pulseIn()に30 msのタイムアウトを与えています。エコーが返ってこなくても、コードはいつまでも待たずに、距離を400 cmとして扱います。次に、tone()は音の状態が変わったときだけ呼ばれるので、毎回ブザーが鳴らし直されることがなく、音が割れません。プロジェクトを発展させるなら、距離をI2C LCDやOLEDディスプレイに表示したり、緑、黄、赤のLEDで警告バーを加えたりしてみましょう。
プロジェクトを選んで作るときのよくある間違い
| 間違い | 結果 | 対処法 |
|---|---|---|
| 最初のプロジェクトにロボットカーを選ぶ | モーター、電源、コードの問題が一度に出て、やる気がなくなる | まずモーターを使わないプロジェクトを4〜5個仕上げる |
| LEDを抵抗なしでつなぐ | LEDかArduinoのピンが壊れる | どのLEDにも220〜330 Ωの直列抵抗を入れる |
| サーボやモーターを5Vピンから給電する | ボードがランダムにリセットし、USBの接続が切れる | 外部の5 Vの電源を使い、GNDを共通にする |
| 回路全体を一度に組む | どこが悪いのかわからない | 各モジュールを別々にテストしてから組み合わせる |
| すべてをdelay()で書く | ボタンの反応が遅れ、センサーのイベントを取りこぼす | millis()でブロッキングしないコードを書く |
| 3.3 Vのモジュールを5 Vにつなぐ | RC522などのモジュールが壊れることがある | モジュールの電源電圧を確認し、必要ならレベル変換モジュールを使う |
| コードを理解せずにコピーして動かす | ちょっとした変更でプロジェクトが動かなくなる | コードを1行ずつ読み、値を変えて結果を観察する |
自分に合うプロジェクトは?興味別のおすすめ
| 興味 | 初級 | 中級 | 上級 |
|---|---|---|---|
| 光と色 | 信号機、RGB LED | NeoPixelのライトショー | ドットマトリクスの時計 |
| 音と音楽 | ブザーのメロディー | 駐車センサー(音での警告) | サイモンの記憶ゲーム |
| ホームオートメーションとセキュリティ | 常夜灯、動体検知器 | ドアアラーム、リモコンで操作するLED | キーパッドのロック、ガス警報器、スマート灌水 |
| ロボットと動き | ポテンショメーターでサーボ | スマートフォンからBluetoothで操作 | 障害物を避けるロボット、Bluetoothカー |
| 測定とディスプレイ | 距離計 | 温湿度表示器 | ドットマトリクスの気象観測所 |
| ゲーム | - | 電子サイコロ、反応速度テスト | OLEDのゲーム、サイモン |
リストの30のプロジェクトをすべて終えれば、デジタルとアナログの入出力、PWM、I2C、時間管理、モーター制御、ステートマシンなど、Arduinoの基本の要素をほぼすべて使ったことになります。各センサーの用途を知るには、Arduinoセンサーガイドも見てみてください。BlueGraysアプリには、LEDの点滅から障害物を避けるロボットまで、スマート水やりステーションからESP32のWebサーバーまで、これらのアイデアのほとんどがステップごとの回路図と既製のコード付きでそろっているので、自分のレベルに合ったプロジェクトからすぐに始められます。
よくある質問
初心者にいちばん簡単なArduinoのプロジェクトは?
いちばん簡単なのはLEDの点滅(Blink)です。必要なのはLEDと220 Ωの抵抗だけで、Unoの13番ピンの内蔵LEDを使えば部品はまったく要りません。次は信号機、ボタンで操作するLED、LDRの常夜灯です。この4つのプロジェクトで、デジタル出力、デジタル入力、アナログの読み取りの基本が学べます。
Arduinoで何が作れますか?
Arduinoでは、光や音のエフェクトから測定器、ホームオートメーション、ロボットまで、センサーを読んで何かを制御するほぼすべてのプロジェクトを作れます。典型的な例は、駐車センサー、温度表示器、キーパッドのドアロック、スマート灌水システム、障害物を避けるロボットです。インターネット接続が必要なプロジェクトには、ESP32のようなWi-Fi対応ボードがよく選ばれます。
Arduinoのプロジェクトにはどのキットを買えばよいですか?
Arduino UnoかNano、ブレッドボード、ジャンパーワイヤー、LED(RGB LEDを含む)、抵抗、ボタン、ポテンショメーター、LDR、パッシブブザーが入ったキットで最初の7つのプロジェクトがまかなえます。HC-SR04、SG90サーボ、PIRセンサーを加えれば、最初の10個をすべて作れます。中級でよく追加するのは、DHT11、I2C LCD、赤外線受信モジュールとリモコン、7セグメントディスプレイです。モータードライバやリレーなどの部品は、上級のプロジェクトに進むときに買えば十分です。
Arduinoを学ぶにはプログラミングの知識が必要ですか?
必要ありません。プログラミングの経験がなくてもArduinoは始められます。最初のプロジェクトで使う命令はほんの数個(pinMode、digitalWrite、delay)です。コードはC/C++をもとにしており、既製の例を書き換えてみるのがいちばん早い学び方です。変数、if、for、関数などの概念は、プロジェクトを進めるうちに自然と身につきます。
学校の課題に向いたArduinoのプロジェクトは?
学校の課題では、現実の問題を解決するアイデアが目を引きます。スマート灌水システム、ガスと炎の警報器、駐車センサー、温湿度表示器、カードによる入室管理システムなどです。これらのプロジェクトは動かすと見栄えがよく、検知し、判断し、動作するという流れがはっきり伝わります。発表で回路図と測定結果を見せると、プロジェクトの説得力が増します。
プロジェクトはArduinoとESP32のどちらで始めるべきですか?
電子工作が初めてなら、Arduino Unoのほうが簡単です。5 Vで動作し、ほとんどのモジュールと直接つなげ、例も見つけやすいからです。プロジェクトにWi-Fi、Bluetooth、インターネットが必要なら、ESP32を選びましょう。同じArduino IDEでプログラムできますが、3.3 Vで動作するため配線には注意が必要です。
この記事を読んだ後に作れるプロジェクト
全プロジェクトを見る
信号機
毎日道路で見かける信号機の小さな模型です。赤が2秒点灯し、黄が一瞬点灯した後、緑が2秒点灯します。その後、再び黄を経て赤に戻り、この動作を繰り返します。3個のLEDを順番に点けたり消したりしながら、タイミングの組み立て方を学びます。

LDRで作る常夜灯
暗くなると自動で点灯し、朝になると消灯する小さな常夜灯です。光センサーが部屋の明るさを測定し、Arduinoが十分に暗くなったらLEDを点灯させ、明るくなったら消灯させます。街灯が夕方になると自動で点灯する仕組みも理解できます。

HC-SR04で距離を測定(シリアルモニタ表示)
HC-SR04センサーは、コウモリが暗闇で道を見つけるのと同じ仕組みで動作します。人には聞こえない音を出し、その反響を捉えて前方の物体までの距離を測ります。Arduinoは0.5秒ごとに距離をセンチメートル単位でコンピューターの画面に表示し、3〜100センチメートルの測定値を示します。駐車センサーや障害物を避けるロボットなどのプロジェクトの基礎になります。

DHT11で温度と湿度を測定
部屋の温度は何度で、空気は湿っているでしょうか、それとも乾燥しているでしょうか?DHT11センサーが温度と湿度を測定し、Arduinoが2行のLCDディスプレイに値を表示して、数秒ごとに更新します。センサーに異常があればエラーメッセージが表示されます。自分だけの小さな気象観測装置を作る第一歩です。

HC-SR04で作る駐車センサー
車の駐車センサーを小さく再現します。物体が近づくほど、ビープ音の間隔が短くなります。距離センサーが前方の物体までの距離を測り、20センチメートルより遠ければ緑のLEDが点灯します。近づくと赤いLEDが点滅してブザーが鳴り、さらに近づくほど警告の間隔が短くなります。車が壁にぶつからずに駐車できる仕組みを、机の上で確かめられます。

Arduino記憶ゲーム(LED4個+ボタン4個+ブザー)
記憶力に自信はありますか?4色のLEDが順番に点灯し、それぞれの音を鳴らします。同じ順番でボタンを押して再現してください。正解するたびに新しい色が1つ追加され、短い勝利のメロディーが流れて、LCDディスプレイにスコアが表示されます。1回でも押し間違えると、悲しい音とともにゲームが終了し、最初からやり直しになります。

障害物回避ロボット
自分で進む道を見つける、賢い車を作ってみませんか?障害物回避ロボットは、前面の超音波センサーで周囲を常に調べます。障害物を見つけると停止し、サーボモーターで左右を確認して、最も障害物の少ない方向を選んで進みます。自動運転の基礎を学ぶのにぴったりの入門プロジェクトです。

スマート水やりステーション
旅行中も植物が枯れないよう、自動で水やりをするシステムです。土壌水分センサーで土の湿り具合を測定し、乾燥するとArduinoが給水ポンプを数秒間動かして、青いライトを点灯させます。水分が適切なときは緑のライトが点灯します。土がひどく乾燥すると、赤いライトが点滅し、ブザーが鳴って知らせます。
ほかの記事
BlueGraysアプリ
この回路をスマホでステップごとに作る
回路図、コード、部品リストを1つの画面で確認できます。Arduino、ESP32、Picoのプロジェクトを200件以上用意しています。

