初心者のArduinoプログラミング入門【LEDの明るさ制御編】
今回もArduino UNOでプログラミング学習をしていきたいと思います。
この記事ではLEDを使用して、時間とともにLEDの明るさを変化させることが目標です。
目標
ブレッドボードと抵抗(1kΩ)、LEDを使って回路を作成します。
時間がたつにつれて、徐々にLEDが明るくなり、最も明るくなるとぱっと消える制御が目標です。
回路図
今回、アナログ出力で明るさを制御するつもりです。
そのため~マークがついているピンを選ぶ必要があり、9ピンを選びました。
ピン9とLEDを、LEDの反対側は1kΩの抵抗を通じてGNDに接続しています。
スケッチ
// ピン9をLEDに割り付け const int pinLed = 9; void setup() { // ピン9を出力に pinMode(pinLed, OUTPUT); } void loop() { // iを0~255までループさせる for(int i=0; i<256; i++){ // iの値によって明るさを設定 analogWrite(pinLed,i); // 20msec待つ delay(20); } }
9番ピンをLEDの出力に設定します。
analogWrite関数でピンにかかる電圧をアナログ的に制御しました。
i = 0のときは0Vで、i = 255のとき5V出力されます。
for文によってiを0から255まで20msecごとに設定することで、LEDの明るさが周期的に変わるはず!です。
動作確認
時間がたつと徐々にLEDの明るさが変わりました!
明るくなるとぱっと消えて、また明るくなっています。
まとめ
アナログ出力を使ってLEDの明るさを制御する目標を達成できました。
単純なONやOFFだけでなく微妙な加減を行うことがおもしろかったです!
この記事で使用しているArduinoは elegooというメーカの互換品です。
部品もついてきて安価なので学習用に購入しました。
リンク