オーロラクロックなどのLED制御において、特定の条件で異なる色を点灯させるプログラムを作成することは、初心者から上級者まで広く求められるスキルです。本記事では、赤色が連続で点灯し、ボタンを押すと青色に変わり15秒間点灯するプログラムの作成方法について解説します。
赤色の連続点灯を制御する方法
オーロラクロックやLEDライトでは、基本的にGPIOピンを使用してLEDを制御します。赤色のLEDが連続して点灯するようにするためには、GPIOピンを高に設定し、LEDに電流を供給するプログラムを書く必要があります。次のようなコードを使うことができます。
digitalWrite(redPin, HIGH);
このコードは、`redPin`に接続されたLEDを常に点灯させるものです。次に、ボタンが押された場合に青色に変わるような処理を加えます。
ボタンを押すと青色に切り替える処理
ボタンを押すと赤色から青色に変わる処理を加えるには、ボタンの状態を監視し、押された場合に青色のLEDを点灯させる処理を行います。次のコードで、ボタンが押された時の処理を追加できます。
if (digitalRead(buttonPin) == HIGH) {
ボタンが押された状態で、青色のLEDを点灯させるためのコードを次のように書きます。
digitalWrite(bluePin, HIGH);
青色のLEDを15秒間点灯させる方法
青色のLEDを点灯させた後、15秒間点灯し続けるには、タイマーを使用して処理を行います。`delay(15000)`を使って、15秒後に青色のLEDを消灯するコードを追加します。
delay(15000);
これにより、15秒間青色のLEDが点灯し、その後自動的に消灯します。以下のコード全体で、ボタンを押した後の動作が完了します。
if (digitalRead(buttonPin) == HIGH) {
digitalWrite(redPin, LOW); // 赤色消灯
digitalWrite(bluePin, HIGH); // 青色点灯
delay(15000);
digitalWrite(bluePin, LOW); // 青色消灯
全体のプログラム例
ここまでの内容をまとめた全体のプログラム例は以下のようになります。
int redPin = 9; // 赤色LEDのピン
int bluePin = 10; // 青色LEDのピン
int buttonPin = 2; // ボタンのピン
void setup() {
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
digitalWrite(redPin, HIGH); // 赤色点灯
if (digitalRead(buttonPin) == HIGH) {
digitalWrite(redPin, LOW); // 赤色消灯
digitalWrite(bluePin, HIGH); // 青色点灯
delay(15000); // 15秒待機
digitalWrite(bluePin, LOW); // 青色消灯
}
}
まとめ
このプログラムでは、赤色のLEDが連続して点灯し、ボタンが押されると青色に切り替わり、15秒間点灯した後消灯する動作を実現しています。LEDの制御やボタンの入力、タイマーの設定に慣れることで、さらに複雑な動作をプログラムすることができます。
オーロラクロックのようなプロジェクトでは、このような基本的な制御方法を学び、さらに多彩な動作を組み込んでいくことが可能です。
コメント