【初心者向け】PWMを使ったLEDの調光を解説 #3
今回は、Arduino UNO R4を使ってLEDを調光する方法を解説します。
前回の記事の続きなので、「まだ見てないよ」という方は👇の記事をご覧ください。
ぜひ、最後までチャレンジしてみてくださいね👍
はじめに
この記事では、ELEGOOのArduino用電子LearningキットE3を使います。
👆のキットを使って、Arduino UNO R4でLEDを調光させる方法を解説したいと思います。
必要なもの
1. マイコンボード
本記事では、Arduino UNO R4 Wi-Fiを使います。
2. 電子部品
ELEGOOのArduino用電子LearningキットE3に入っている電子部品を使います。
赤色LED × 1
抵抗 10kΩ × 1
ジャンパーワイヤー 適量
ブレッドボード × 1
LEDを調光するための基礎知識
PWMとは?
PWM*とは、👆のようなオン・オフを繰り返すような信号のことです。
*Pulse Width Modulation:パルス幅変調
またPWM信号の1つのサイクル(周期)に対して、オンの時間がどれだけあるかを示した比率をDuty比(%)と言います。
このPWM信号を上手く利用すれば、LEDを調光できます。
LEDを調光するには?
さきほど説明したPWMを使って、LEDを高速にオン・オフさせます。
すると「点灯」と「消灯」が重なり合い、人間の目には少し暗い光に見えます。
明るさは、プログラムでPWMのDuty比を変更すれば簡単に調節できます。
Arduino UNOでPWMを出力するには?
Arduino UNOでPWM出力するためには、対応したピンに接続する必要があります。
Arduinoのピンソケットをよく見ると、「~」のマークがあります。この「~」マークがあるピンは、プログラムでPWM出力を設定できます。
Arduino UNO R4の場合、PWM出力できるピンは3, 5, 6, 9, 10, 11で、出力するPWMの周波数は490Hzです。
PWMでLEDを調光するための電子回路
回路図
👆のように配線します。
ポイントは「~」マークがあるピンに接続するということ。例えば今回は、9ピンにしています。
配線の様子
👆のように配線します。繰り返しになりますが、ピンを間違えないように気を付けましょう。
プログラミング
analogWrite();文を記述する
プログラムでPWMを出力するには、例えば次のように記述します。
analogWrite(ピン番号, Duty比);
Duty比には0から255の数字が入り、255がDuty比100%に対応しています。例えば9ピンにDuty比100%のPWMを出力するには、👇のように書きます。
analogWrite(9, 255);
これで明るさはMAXの状態です。50%にしたい場合は、255/2で127を入力するといいでしょう。
analogWrite(9, 127);
どちらの数字も整数しか入らないので、気を付けてください。
LEDの調光を確認するプログラム
👇のプログラムを画面に入力してみましょう。注意事項をよく読んだ上で、ご使用ください。
//当Webサイトに掲載された内容によって生じた損害等の一切の責任を負いません。
//当webサイトの免責事項に同意いただける場合に限り、プログラムをご利用いただけます。
#define LED_PIN 9 //LEDがつながっているピン
void setup() {
pinMode(LED_PIN, OUTPUT); //ピンを出力に設定}
}
void loop() {
analogWrite(LED_PIN, 0); //Duty比:0%
delay(1000);
analogWrite(LED_PIN, 64); //Duty比:約25%
delay(1000);
analogWrite(LED_PIN, 127); //Duty比:約50%
delay(1000);
analogWrite(LED_PIN, 255); //Duty比:100% (≒直流電圧)
delay(1000);
}
プログラムの検証と書き込み
プログラムが完成したらArduinoをパソコンとつなぎ、検証→書き込みを行います。
「✓マーク」を押す(検証)
問題なければ、「→マーク」を押す(書き込み)
書き込みが終わり、上手く回路とプログラムが作れていれば、LEDの光の強さが1秒ごとに変わるはずです。
ここまでお疲れさまでした!
おわりに
いかがだったでしょうか。
もしこの記事がお役に立てたら、"スキ"を押していただけると励みになります!
今回は、LEDの調光について解説しました。ポイントは👇の3つです。
PWMとDuty比について
高速にオンオフするが、人間には光って見える
analogWrite(ピン番号, Duty比);でPWMを出力できる
最後までお読みいただき、ありがとうございました。
この記事が気に入ったらサポートをしてみませんか?