検索コード

レッスン98-7: Arduinoと5つのLEDを使ったウォーキングライト

レッスン98-7: Arduinoと5つのLEDを使ったウォーキングライト

ウォーキングライト(「チェイシング」または「ナイトライダー」ライトとも呼ばれます)は、Arduino初心者向けの定番プロジェクトの一つです—そしてそれには十分な理由があります。複数の出力を順番に制御する方法、イベントのタイミングを計る方法、そして電流制限抵抗について考える方法を学べるうえ、視覚的にも満足のいくものが作れます。このプロジェクトでは、5つのLEDをArduinoに配線し、それぞれが順番に点灯するようにプログラムして、一つの光が列に沿って「歩いて」いるような錯覚を生み出します。

5 leds on breadboard with resistor shown connected to Arduino UNO
5 leds on breadboard with resistor shown connected to Arduino UNO

パターンを理解すれば、驚くほど多くの実世界の製作に応用できます:

  • 装飾照明:棚、額縁、模型用のチェイシングボーダー。
  • 方向指示器:プロップ車両や電動自転車向けのシーケンシャルウインカー効果。
  • 進捗またはステータス表示:プロセスの完了に合わせて進むLEDの列。
  • ゲームやスコアボードの小道具:「動くターゲット」やレベルインジケーター。
  • 教材:デジタル出力とタイミングを最も明確に示すデモンストレーション。

同じ5 LEDの配線はこのコースの他のいくつかのプロジェクトでも再利用されるため、ここで作るハードウェアは再利用可能なプラットフォームになります。

ウォーキングライトの仕組み

原理は単一のLEDを点灯させるのとまったく同じです—それが単純に5回繰り返されるだけです(動画の30:47)。各LEDはそれぞれ専用の電流制限抵抗を介して独自のArduinoピンに接続され、すべての抵抗は共通のグランドレールを共有します。そしてスケッチは1つのピンをHIGHにし、待機し、LOWにし、待機し、次のピンへと進みます。常に1つのLEDだけが点灯しているため、目はそのシーケンスを動きとして認識します。

この2つのタイミング値が効果の性格を決めます。オン時間は各LEDが点灯し続ける時間を制御し、オフ時間は次のLEDが点灯するまでの間隔を制御します。短いオン時間と長いオフ時間は素早く移動する単一の点を生み出し、長いオン時間と短いオフ時間はより滑らかで連続的なスイープを生み出します(動画の35:00)。

ハードウェアと部品

  • 1 × Arduinoボード(Uno、Nano、または同様のもの)
  • 5 × LED(色は任意。色を混ぜると効果が読み取りやすくなります)
  • 5 × 抵抗 — 300 Ω~1 kΩが適しています
  • 1 × ブレッドボード
  • ジャンパーワイヤー
  • 電源用のUSBケーブルまたはバッテリーパック

後でプッシュボタンのバリエーションを追加したい場合は、モーメンタリプッシュボタン1個と追加のジャンパーワイヤー2本も必要になります。

抵抗値の選び方

LEDの順方向電圧は約2 Vで、最大輝度には約10 mAが必要です(動画の03:49)。5 V電源の場合、抵抗が残りの3 Vを降下させる必要があります。オームの法則を適用すると、R = V / I = 3 V / 0.01 A = 300 Ωとなります。実際には300 Ωから約1 kΩまでの範囲で動作します—抵抗が高いほどLEDは暗くなりますが、回路はより安全で効率的になります(動画の05:33)。

Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button

配線ガイド

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino

5つのLEDをアノード(長い脚)が同じ方向を向くようにブレッドボードに挿入します。各カソード(短く、平らな側面の脚)をそれぞれの抵抗に接続し、5つの抵抗すべての反対側の端を共通のグランドレールに接続します。次に、各アノードからArduinoピンへジャンパーを配線します。

この製作では、LEDはピン3、4、5、6、7に割り当てられています(動画の31:29)。ピン番号はスケッチの先頭で定義されているため、別の配置を希望する場合はその5行を変更するだけで済みます。

コードの説明

スケッチは初心者がすべての行を追えるように意図的にシンプルにしています。自分のセットアップ用に編集が必要なのは一番上のブロックだけです。

const int LED1 = 3;
const int LED2 = 4;
const int LED3 = 5;
const int LED4 = 6;
const int LED5 = 7;
int offTime = 30;  // the time each LED waits in the OFF state
int onTime = 100;  // the time each LED is ON

ピン定義。5つのconst int行が各LEDを物理的なArduinoピンにマッピングします。constとして宣言されているため、プログラムの後半で値を変更することはできません—これは偶発的な再代入を防ぐ安全習慣です。LEDを別のピンに配線する場合は、ここにある数字を変更するだけで他は何も変えません。

onTimeとoffTime。この2つの整数はプロジェクトで唯一の「動作」変数であり、実験してみたくなるものです:

  • onTime — 各LEDが点灯し続ける時間(ミリ秒単位)。値を大きくすると、各ステップがよりゆっくりで意図的に感じられます。
  • offTime — LEDが消灯してから次のLEDが点灯するまでの休止時間。値を小さくすると、光の移動が速くなります。

均一で中速のチェイスにはonTime = 200offTime = 200を試し、非常に速く、ほとんどぼやけたような効果(動画の36:06)にはonTime = 30offTime = 30を試してください。

setup()関数は一度だけ実行され、5つのピンすべてをOUTPUTモードに設定するだけです。次にloop()関数が各LEDに対して同じ4ステップのパターンを繰り返します。ピンをHIGHにし、onTime待ち、LOWにし、offTime待ちます。5番目のLEDが終了すると、ループは最初から再開し、終わりのない走行を生み出します。

ライブプロジェクトとデモンストレーション

デフォルト値では、LEDはゆったりとしたペースで列に沿って進みます。onTimeoffTimeを200 msに設定したスケッチをアップロードすると、安定した均一な行進になります。両方を30 msに下げると、光が列を横切ってほとんど追えないほど速く走ります(動画の36:21)。

動作したら試す価値のある2つの実験:

  • オン時間をオフ時間より短くして、はっきりとした移動する点を作ります。
  • オン時間をオフ時間より長くして、柔らかく重なり合う輝きを作ります。

同じ5つのLEDの配線は次のプロジェクトでも再利用され、そこでは押しボタンが光を一度に1ステップずつ進めます。その製作はレッスン98-8:Arduinoで押しボタンとLEDを使ったウォーキングライトで扱っています。

ボタンの代わりにアナログ入力で列を駆動したい場合は、レッスン98-9:Arduinoを使ったLED電圧レベルメーター、またはポテンショメーター付きウォーキングライトをご覧ください。

さらに進める

基本的な走行が動作したら、自然な次のステップは、最後のLEDから最初のLEDへジャンプするのではなく、光を前後に跳ね返らせることです。これは純粋なコードの練習であり、追加のハードウェアは不要で、ループと配列を練習する良い方法です。また、このプロジェクトを押しボタン版と組み合わせて、手動で進めるディスプレイを構築することもできます。

この動画の関連プロジェクト

チャプター

  • [00:00] 10個のLEDプロジェクトの概要
  • [01:22] Arduinoステップバイステップコースの紹介
  • [02:29] LEDとは何か、そのピンの識別方法
  • [03:49] 電流制限抵抗の計算
  • [30:47] ウォーキングライトプロジェクトの紹介
  • [31:06] 5つのLEDの配線図
  • [32:52] ウォーキングライトコードの解説
  • [34:39] デモンストレーションとタイミング値の変更
  • [36:41] 押しボタンで光を進める(別チュートリアル)
  • [42:25] ポテンショメーター付きLED電圧バー(別チュートリアル)
  • [49:25] Arduino信号機(別チュートリアル)

画像

wiring of 5 LED on Arduino
wiring of 5 LED on Arduino
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs
Schematic for Arduino walking light LEDs with push button
Schematic for Arduino walking light LEDs with push button
Arduino UNOに接続された抵抗付きブレッドボード上の5つのLED
Arduino UNOに接続された抵抗付きブレッドボード上の5つのLED
939-Lessson 98-LED-7: Arduino code walking LED light
言語: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

必要かもしれないもの

ファイル📁

Arduinoライブラリ(zip)

ユーザーマニュアル