注釈
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
特別割引:最新製品の独占割引をお楽しみください。
祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[ここ]をクリックして今すぐ参加しましょう!
信号機モジュール
概要
この信号機モジュールは、実際の信号機と同様に、赤・黄・緑の3色の光を表示する小型デバイスです。交通信号システムの模型を作成したり、ArduinoでLEDを制御する方法を学習するために使用できます。このモジュールの特長は、そのコンパクトなサイズ、簡単な配線、特定の用途に合わせたカスタムインストールが可能である点です。PWMピンに接続してLEDの明るさを制御することもできます。
原理
信号機モジュールは主に2つの方法で制御できます。一つはArduinoからのデジタル入力を使用する単純な方法で、HIGHまたはLOWの信号で対応するLEDを直接点灯または消灯します。もう一つは、特にLEDの明るさを可変にしたい場合に使用されるPWM(パルス幅変調)です。PWMは、デジタル信号のデューティサイクルを変更してLEDの明るさを調整する技術です。デューティサイクルとは、特定の期間に信号がオンになっている割合を示します。例えば、50%のデューティサイクルは、その期間の半分で信号がアクティブで、残りの半分で非アクティブであることを意味します。
使い方
使用する電子部品
Arduino Uno R4またはR3ボード * 1
信号機モジュール * 1
ジャンパーワイヤー
回路組み立て
コード
コード説明
まず最初に、LEDが接続されているピンに対応する定数を定義します。これにより、コードが読みやすく、修正も容易になります。
const int rledPin = 9; //red const int yledPin = 8; //yellow const int gledPin = 7; //green
次に、LEDピンのモードを指定します。すべて
OUTPUTに設定されていますが、これはLEDに電圧を供給する intention です。
void setup() { pinMode(rledPin, OUTPUT); pinMode(yledPin, OUTPUT); pinMode(gledPin, OUTPUT); }
ここでは、信号機の動作サイクルのロジックが実装されています。具体的な手順は以下の通りです。
緑の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); }
追加のアイデア
ブザーを組み込み、緑から赤への切り替わり時に音声で警告を出すことで、視覚障害者の方々にも配慮する。