ハードウェア界隈やIoT界隈での「Hello World!」をLチカと言うそうです。
多分、LEDチカチカの略です。
最近、ESP8266にはまってしまい、色々作っています。
この記事は初期の頃に単にLチカしても詰まらないし、GPIOも一杯あるし使ってみたいなということで、ナイトライダーしてみた記録です。
※GPIO・・・プログラムで出力入力が切り替えられる端子の事。こんなに簡単 ⇒ pinMode(ピン番号, OUTPUT)
私は一ヶ月前までIoTとかラズパイとかArduinoとか、やってみたいけど難しそう。。。ソフトは分かるけど、ハードは良くわからん。。。と思っていた人なので、同じように思っていて踏み出せない方に、なんだこれなら簡単そうとか思っていただけると幸いです。
「行くぜ、キット!」
— Yukito (@yukitter) 2017年3月22日
赤色LED買えばよかった。#ESP8266 #knightrider pic.twitter.com/liBq7LVBbh
##パーツ
ESP8266はNodeMcu Lua ESP8266 CH340という開発ボードを使っています。
中国から届くのに時間がかかりますが、¥480と激安です。
ピンヘッダも取り付け済みなので、ハンダ付け不要です。
- GPIOがプログラムでON/OFFや強弱できる3.3Vの+側になります。
- GNDが-側です。
- LEDには極性があります。接続の向きに注意
- LEDにGPIOを直結するとLEDが壊れます(LEDの仕様にもよる)
- LEDの前に抵抗や定電流ダイオードを入れてください
- 抵抗値は本来、計算式で求めますが、とりあえず点灯するだけなら1KΩとかでOK
- いきなりはんだ付けとかすると大変なのでブレッドボードやジャンパ線で組むのをオススメ
- 「HiLetgo NEW NodeMcu Lua ESP8266 CH340」は、ボード幅が広めなので、↑のリンクの片側6列あるブレッドボードが使いやすいです
##開発環境
以下を参考に整備しました。
ArduinoのIDE(統合開発環境)をインストールする
https://okuzawats.com/install-arduino-ide-20150202/
IDEダウンロード
https://www.arduino.cc/en/Main/Donate
ESP-WROOM-02開発ボードをArduino IDEで開発する方法
http://trac.switch-science.com/wiki/esp_dev_arduino_ide
(※これを見つけるのにちょっと苦労)
##ソース
int led[] = {16, 5, 4, 0, 14};
int ledSize = sizeof(led) / sizeof(led[0]);
int pos = 0;
int before1 = 0;
int before2 = 0;
int before3 = 0;
int before4 = 0;
int acc = 1;
void setup() {
for (int n=0 ; n < ledSize ; n++ ) {
pinMode(led[n], OUTPUT); // 指定のピンを出力に設定
}
}
void loop() {
analogWrite(led[before4], 0);
analogWrite(led[before3], 10);
analogWrite(led[before2], 30);
analogWrite(led[before1], 100);
analogWrite(led[pos], 255);
before4 = before3;
before3 = before2;
before2 = before1;
before1 = pos;
pos += acc;
if (pos==0 || pos==ledSize-1) { acc = -acc; }
delay(200);
}
- analogWriteで出力を0~255の間で制御できます。
- 単にON/OFFするなら、digitalWriteを使います。
digitalWrite(btn, HIGH);
digitalWrite(btn, LOW);