信号機モジュール

../_images/23_traffic_light.png

概要

この信号機モジュールは、実際の信号機と同様に、赤・黄・緑の3色の光を表示する小型デバイスです。交通信号システムの模型を作成したり、ArduinoでLEDを制御する方法を学習するために使用できます。このモジュールの特長は、そのコンパクトなサイズ、簡単な配線、特定の用途に合わせたカスタムインストールが可能である点です。PWMピンに接続してLEDの明るさを制御することもできます。

原理

信号機モジュールは主に2つの方法で制御できます。一つはArduinoからのデジタル入力を使用する単純な方法で、HIGHまたはLOWの信号で対応するLEDを直接点灯または消灯します。もう一つは、特にLEDの明るさを可変にしたい場合に使用されるPWM(パルス幅変調)です。PWMは、デジタル信号のデューティサイクルを変更してLEDの明るさを調整する技術です。デューティサイクルとは、特定の期間に信号がオンになっている割合を示します。例えば、50%のデューティサイクルは、その期間の半分で信号がアクティブで、残りの半分で非アクティブであることを意味します。

使い方

使用する電子部品

  • Arduino Uno R4またはR3ボード * 1

  • 信号機モジュール * 1

  • ジャンパーワイヤー

回路組み立て

../_images/23_traffic_light_circuit.png

コード



コード説明

  1. まず最初に、LEDが接続されているピンに対応する定数を定義します。これにより、コードが読みやすく、修正も容易になります。

const int rledPin = 9;  //red
const int yledPin = 8;  //yellow
const int gledPin = 7;  //green
  1. 次に、LEDピンのモードを指定します。すべて OUTPUT に設定されていますが、これはLEDに電圧を供給する intention です。

void setup() {
  pinMode(rledPin, OUTPUT);
  pinMode(yledPin, OUTPUT);
  pinMode(gledPin, OUTPUT);
}
  1. ここでは、信号機の動作サイクルのロジックが実装されています。具体的な手順は以下の通りです。

    • 緑のLEDを5秒間点灯。

    • 黄色のLEDを三回点滅(各点滅は0.5秒)。

    • 赤のLEDを5秒間点灯。

void loop() {
  digitalWrite(gledPin, HIGH);
  delay(5000);
  digitalWrite(gledPin, LOW);

  digitalWrite(yledPin, HIGH);
  delay(500);
  digitalWrite(yledPin, LOW);
  delay(500);
  digitalWrite(yledPin, HIGH);
  delay(500);
  digitalWrite(yledPin, LOW);
  delay(500);
  digitalWrite(yledPin, HIGH);
  delay(500);
  digitalWrite(yledPin, LOW);
  delay(500);

  digitalWrite(rledPin, HIGH);
  delay(5000);
  digitalWrite(rledPin, LOW);
}

追加のアイデア

  • ブザーを組み込み、緑から赤への切り替わり時に音声で警告を出すことで、視覚障害者の方々にも配慮する。

さらに多くのプロジェクト