ESP8266ボードでLチカ

 ESP8266ボードでIoTデバイス的なものを作る話の第3弾。プログラムや回路を取り上げる予定でしたが、回路を組むよりも先に「カンタンなプログラムを動かしてみよう」という話に路線変更。

 取り上げるのは、この手の入門記事でおなじみの「Lチカ」。LEDを光らせてみます。「Lチカ」の「チカ」は「チカチカ」なんですかね、やっぱり。「LEDがチカチカ」。語源はともかく、LEDを光らせます。


 ESP8266ボードの多くはビルトインのLEDが備わっていることが多いようです。ブレッドボード上にLEDや抵抗を配置せずとも、LEDを光らせることができるわけです。今回使用するD1 miniというボードもLEDが最初から付いているので、それを光らせることにしましょう。

 まずは、ボードをPCに接続。すでにドライバーの導入は済んでいるはずなので、続いてArduino IDEを起動。メニューの「ツール」-「シリアルポート」でCOMポートが正しく選択されているか確認しておきましょう。

 さらにメニュー「ファイル」-「スケッチ例」を開くと、「LOLIN (WeMos) D1 R2 & mini用のスケッチ例」の下に「ESP8266」というのがあり、その下の階層に「Blink」というスケッチがあるはず。それを開きます。ウィンドウが新たに開きます。

 あとは、メニュー下の右向きの矢印(→)をクリックすると、プログラムのコンパイルが行われ、続いて自動的にボードへのプログラムの転送が行われます。

 短いプログラムですが、コンパイルには数分かかります。対して転送は数十秒といったところでしょうか。

 転送が終わると、ボードのLEDが点滅し出します。

 なんとこれだけ!

 工作らしいこともせず、「Lチカ」ができてしまいました。

 ここまでの流れを動画にしてみたので、こちらを御覧ください。


D1 miniで手抜きLチカ

 ここで改めてプログラムの中身を見てみましょう。

 最小の10行はコメントです。「/*」と「*/」で囲んでクレジットやメモなどを記述します。

/*
ESP8266 Blink by Simon Peter
Blink the blue LED on the ESP-01 module
This example code is in the public domain
The blue LED on the ESP-01 module is connected to GPIO1
(which is also the TXD pin; so we cannot use Serial.print() at the same time)
Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
*/
void setup() {
pinMode(LED_BUILTIN, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, LOW);   // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is active low on the ESP-01)
delay(1000);                      // Wait for a second
digitalWrite(LED_BUILTIN, HIGH);  // Turn the LED off by making the voltage HIGH
delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
}

 その後のvoid setup()では、ボード上に用意されているLEDがつながっているピンを指定しています(D1 miniではLED_BUILTINという定数に、LEDのピンが指定されています。詳しくは割愛)。

 続く void loop() という関数にプログラムの本体(といっていいのか不明)が書かれています。

 さきほどのピンにLOWを出力(これでLEDが点灯)して、1000ミリ秒待ってHIGHを出力(LEDが消灯)、さらに2000ミリ秒待ってループの頭に戻る。そんな流れです。

 1秒点灯してから消灯、2秒待ってまた点灯。

 というわけで、この delay(xxx) のxxxの部分を変えれば、点灯・消灯の時間がそれぞれ変わるのがわかると思います。自分でいろいろ試してみましょう。

 なんでLOWが点灯でHIGHが消灯なのか? 感覚的には逆じゃね? と思うかもしれませんが、このボードがそういうふうに作られているから、と、テキトーな感じで気にしないことにしましょう。自分で回路を組む際にはこれが逆になったりしますが、いまのところはスルーで。気になる方は「プルアップ」で検索してみてください。

コメント

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