Arduinoでボタンを押してライトをPWM制御する方法

プログラミング

Arduinoを使ったPWM(パルス幅変調)によるライト制御のプログラムでは、ボタンを押したときにライトの明るさが変わるように設定することが重要です。この記事では、ボタンを押すことでライトがだんだん明るくなり、暗くなる動作を実現するための方法を解説します。

PWM制御とは?

PWM(パルス幅変調)は、Arduinoでライトやモーターの明るさや回転速度を調整するために使われる技術です。これは、一定時間内にパルス信号のオンとオフの時間比(デューティサイクル)を変えることで実現します。

ボタン入力の使い方

ボタンが押されたかどうかを検出するには、Arduinoのデジタル入力を使います。ボタンが押されると、Arduinoは入力をHIGHに設定し、その信号を使ってライトの制御を開始します。

int buttonPin = 2; // ボタンのピン設定
int ledPin = 9; // LEDのピン設定
int buttonState = 0; // ボタンの状態
void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}
void loop() {
  buttonState = digitalRead(buttonPin); // ボタンの状態を読み取る
  if (buttonState == HIGH) {
    for (int i = 0; i <= 255; i++) {
      analogWrite(ledPin, i); // LEDの明るさを変化させる
      delay(4); // 明るさが変わるのを1秒で完了するように調整
    }
    for (int i = 255; i >= 0; i--) {
      analogWrite(ledPin, i);
      delay(4);
    }
  }
}

上記のコードでは、ボタンが押されると、LEDの明るさが0から255まで変化し、その後再び0に戻ります。このループの速さは`delay(4)`の値で調整され、1秒で完了するように設定されています。

ボタンを押したときだけの動作を実現する方法

このプログラムでは、ボタンを押したときにのみPWM制御を開始するようになっています。もしボタンを離した時に制御を停止したい場合は、`if`文を工夫して、ボタンが離された時の動作を追加することができます。

if (buttonState == HIGH) {
  // PWM制御の開始
}
else {
  // 停止の動作
}

ボタンが押されていない状態では、LEDの動作が停止します。

まとめ

Arduinoを使ってボタンを押したときにPWM制御を行い、ライトの明るさを徐々に変化させる方法について解説しました。ボタン入力を使った制御は非常に直感的で、実際のプロジェクトでもよく使われます。これを応用すれば、さまざまなインタラクティブな動作が可能になります。

コメント

タイトルとURLをコピーしました