ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

初心者のArduinoプログラミング入門【Lチカ編】

プログラミング学習のためArduinoに触れてみようと思い立ちました。

プログラミングのHello World!みたいに、マイコンではLEDをチカチカ点滅させることから入門するようです。

この記事ではArduino Unoの内蔵LEDを光らせてみたいと思います。



目標

はじめから書き込まれているスケッチ(プログラム)により、内蔵LEDは初めから点滅しています。

自分で作成したスケッチを書き込むことでArduino UNOに内蔵されているLEDの点滅周期を変えることが目標です。

回路図

必要な部材はArduino UNOだけでブレッドボードやスイッチ等もいりません。

光らせる内蔵LEDは赤丸で囲んだ部分です。

f:id:ebisuke33:20210831214942p:plain
Lチカ

スケッチ

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が点滅しています。


www.youtube.com



2.点滅周期を0.2秒に変更したスケッチ
点滅が早くなりました!

さきほどより明らかにチカチカしています。


www.youtube.com


まとめ

目標とした内蔵LEDの点滅周期を変えることができました。

変更した箇所は少ないですが明らかに動作が変わっておもしろかったです。

まだまだ簡単なプログラムしかできませんが、少しずつ学んでいきたいと思います。





この記事で使用しているArduinoは elegooというメーカの互換品です。

部品もついてきて安価なので学習用に購入しました。