初心者のArduinoプログラミング入門【Lチカ編】
プログラミング学習のためArduinoに触れてみようと思い立ちました。
プログラミングのHello World!みたいに、マイコンではLEDをチカチカ点滅させることから入門するようです。
この記事ではArduino Unoの内蔵LEDを光らせてみたいと思います。
目標
はじめから書き込まれているスケッチ(プログラム)により、内蔵LEDは初めから点滅しています。
自分で作成したスケッチを書き込むことでArduino UNOに内蔵されているLEDの点滅周期を変えることが目標です。
スケッチ
1.初期スケッチ
もともとArduinoに書き込まれていて、LEDが1秒周期で点滅するスケッチです。
void setup内でピンの初期設定を行いました。
内蔵LEDのLED_BUILTINをOUTPUT(出力)に設定しています。
void loop内のプログラムがArduinoの動作です。
digitalWrite関数でLED_BUILTIN(内蔵LED)をHIGH(点灯)やLOW(消灯)に切り替えています。
delay関数の()内の数字の単位はmsecで、指定された時間待つはたらきを持ちます。
したがって、このスケッチではLED_BUILTINをHIGH(点灯)にして1000 msec = 1秒待つ、LED_BUILTINをLOW(消灯)にして1秒待つ…を繰り返します。
void setup() // LED_BUILTINをOUTPUTに設定 pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // LEDを点灯させる delay(1000); // 1秒待つ digitalWrite(LED_BUILTIN, LOW); // LEDを消灯させる delay(1000); // 1秒待つ }
2.点滅周期を0.2秒に変更したスケッチ
delay関数の引数を200 = 0.2秒に変更しました。
これで点灯時間と消灯時間が0.2秒になり、はやい点滅になるはず!です。
void setup() { // LED_BUILTINをOUTPUTに設定 pinMode(LED_BUILTIN, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(LED_BUILTIN, HIGH); // LEDを点灯させる delay(200); // 0.2秒待つ digitalWrite(LED_BUILTIN, LOW); // LEDを消灯させる delay(200); // 0.2秒待つ }
動作確認
1.初期スケッチ
スケッチ通り1秒周期でLEDが点滅しています。
2.点滅周期を0.2秒に変更したスケッチ
点滅が早くなりました!
さきほどより明らかにチカチカしています。
まとめ
目標とした内蔵LEDの点滅周期を変えることができました。
変更した箇所は少ないですが明らかに動作が変わっておもしろかったです。
まだまだ簡単なプログラムしかできませんが、少しずつ学んでいきたいと思います。
この記事で使用しているArduinoは elegooというメーカの互換品です。
部品もついてきて安価なので学習用に購入しました。