Arduinoのプロジェクトをさがす
初級から上級まで、回路図・コード・動画付きのプロジェクトを数百件収録しています。自分のレベルに合ったところから始められます。

2x16 LCDディスプレイにメッセージを表示
ディスプレイに文字を表示するための最初のステップです。2行のLCDディスプレイにまず待機メッセージを表示し、次に上の行にあいさつを表示します。下の行にはタイプライターのように単語を1文字ずつ表示し、その後ディスプレイを消去して最初から繰り返します。文字の表示位置を指定する方法を、実際の表示で確かめられます。

LCDで文字が左右に跳ね返るアニメーション
LCDディスプレイの上の行でBLUEGRAYSという文字が端から端へ動き、壁に当たるボールのように跳ね返る動きを繰り返します。必要なのはArduino、2x16 LCDディスプレイ、文字の見やすさを調整する可変抵抗だけです。文字のスクロールや簡単な表示アニメーションを作る最初のステップです。

LCDディスプレイを使った距離測定
定規を使わずに距離を測る装置です。センサーの前で手を近づけたり遠ざけたりすると、数値が変わります。HC-SR04が音波を出して反響を捉え、Arduinoが距離をセンチメートル単位で計算し、2行のLCDディスプレイに1秒間に数回表示します。車の駐車センサーの仕組みを、机の上で確かめられます。

7セグメントディスプレイで0〜99を表示
電卓のように棒状のセグメントで数字を表示する2桁のディスプレイで、0から99まで数えます。Arduinoが数値を1の位と10の位に分け、各桁の7つのセグメントのうち必要なものを点灯させます。数値は1秒間に5回増え、99の次は再び0から始まります。デジタル時計やスコアボードなどのプロジェクトの基礎になります。

7セグメントディスプレイとボタンで作るカウンター
3つのボタンを使うシンプルなカウンターです。1つ目のボタンを押すと表示の数字が1増え、2つ目を押すと1減り、3つ目を押すと0に戻ります。1桁の7セグメントディスプレイで0から9まで数え、範囲の端に達すると隅の小さな点が0.5秒間点灯して知らせます。スコアボードや順番表示器などのプロジェクトの基礎になります。

4x4キーパッドとLCDで暗証番号ロック
正しい暗証番号を知らないと開けられない、小さな電子ドアロックです。ハッシュキーを押してキーパッドから暗証番号を入力します。正しければ画面に入室許可が表示され、緑のLEDが点灯し、サーボモーターがドアを5秒間開けてから再び閉めます。間違っていれば赤のLEDが点灯します。建物や金庫のロックの仕組みを自分で作ります。

OLED T-Rexラン:Arduino恐竜ゲーム
インターネットが切れると現れる恐竜ゲームを、机の上で楽しめます。小さなOLEDディスプレイを恐竜が走り、迫るサボテンを1つのボタンでジャンプして避けます。横の4桁ディスプレイには得点がリアルタイムで表示され、100点ごとにブザーがお祝いの音を鳴らします。サボテンにぶつかるとゲーム終了です。ボタンを押すと、もう一度始められます。

スマート電子金庫
貴重品を保管できる、暗証番号で開く小さな金庫です。キーパッドで4桁の暗証番号を入力すると、正しければサーボモーターが解錠し、緑色のLEDが点灯してディスプレイに金庫の状態が表示されます。キーを押すたびにブザーが短く鳴ります。3回間違えると30秒間ロックアウトされます。暗証番号はいつでも変更でき、電源が切れても保持されます。

スネークゲーム
ヘビを動かしてリンゴを食べ、しっぽを伸ばしてみましょう。

ESP32とNTPでインターネットから正確な時刻を取得
ESP32をWi-Fiに接続し、NTP(Network Time Protocol)サーバーからミリ秒精度の現在時刻を取得します。`configTzTime()`関数でタイムゾーンを自動適用し、夏時間を採用する国ではPOSIX TZ文字列で夏時間と標準時間の切り替えも自動管理します。時刻はシリアルモニタと、必要に応じて接続するI2C LCDに表示します。`configTzTime()`がSNTPサービスを開始し、ネットワークにアクセスできる間は定期的に再同期します。

ESP32 WebSocketカウンター(2つのボタン+LCD+Webリアルタイム表示)
このプロジェクトでは、ESP32に接続した2つのボタンでカウンターの値を変更します(GPIO 5で増加、GPIO 4で減少)。値は16x2 I2C LCDに即座に反映され、ESPAsyncWebServerのWebSocket機能により、接続中のすべてのブラウザーでもページを再読み込みせずに更新されます。HTTPポーリングの代わりに1つの接続を維持し、ESP32がws.textAll()で新しい値を全員に送信します。

ESP32 HTTPClient+天気API(LCD付き)
このプロジェクトでは、ESP32で`HTTPClient.h`を使い、インターネット経由で天気API(wttr.in)をREST APIとして呼び出します。返されたJSONレスポンスをArduinoJson v7で解析し、都市名、気温、湿度、天気、風の情報をI2C LCDディスプレイにトルコ語と英語で表示します。wttr.inは無料で、APIキーも不要です。都市名を入力するだけで、その都市の現在の天気を取得できます。30分ごとに自動更新し、表示画面ごとに異なるLEDの光り方で状態を知らせます。
