Arduino IDEにあるESP8266のExamplesを試す。
Arduino IEDを真面目に使い始めたのは2015/12/13から、ESP8266は2015/12/11から。
つまり、初心者の右往左往の記録だ。
しかも、この初心者、あきらめだけはめっぽう素早い。
Arduino IDEのExamplesからいくつかやってみることにした。
やっているうちに慣れて面白くなるか、イヤになって途中でやめるか。
なお、Arduinoはほとんど初心者で、人様のスケッチでセンサー・モジュールの動作テストにしか使ってない。
したがって、1から分からない。
まずは、File > Examples > ESP8266 > Blink だ。
実質9行しかないが、何となくやってる事は分かる。
BUILTIN_LEDをOUTPUTに指定して、時間差でLOWにしたりHIGHにしたりだ。
Reference(https://github.com/esp8266/Arduino/blob/master/doc/reference.md#digital-io)によれば、ESP8266でもArduinoと同じ書き方でDigital IOが出来るようだ。
そのArduinoでのやり方を知らないんですけど。
で、検索してみると、
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
digitalWrite(13, LOW);
とかやるらしい。
確かに同じだ。
しかも、ピンの番号はESP8266のGPIOの番号と同じらしいので、BUILTIN_LEDと書いてあるところを2にして、GPIO2にLEDをつないでみたらちゃんとできた。
1 2 3 4 5 6 7 8 9 10 |
void setup(){ pinMode(2, OUTPUT); } void loop(){ digitalWrite(2, LOW); delay(1000); digitalWrite(2, HIGH); delay(2000); } |
GPIO12とGPIO14にLEDを追加して2つ交互に点滅させてみる。
1 2 3 4 5 6 7 8 9 10 11 12 |
void setup(){ pinMode(12, OUTPUT); pinMode(14, OUTPUT); } void loop(){ digitalWrite(12, LOW); digitalWrite(14, HIGH); delay(500); digitalWrite(12, HIGH); digitalWrite(14, LOW); delay(1000); } |
気のせいか、ほんのり暖かいように思えたので、今更ながらIOにどれくらい電流を流せるか調べてみると12mAとなっていた。
赤色LEDで順電圧1.7Vとすると、(3.3 – 1.7) ÷ (12 ÷ 1000) = 133Ω以上の抵抗が必要だ。
下の動画では1kΩをつけたので2mA程度ということだが、最近のLEDは明るいよねえ。
いずれにしても、PICだと25mAくらいだったから、少し注意しないと、同じようにやってるとまずいかも。
ついでに File > Examples > ESP8266 > BlinkWithoutDelay のGPIO2バージョンもやっておく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
int ledState = LOW; unsigned long previousMillis = 0; const long interval = 500; void setup() { pinMode(2, OUTPUT); } void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(2, ledState); } } |
Arduinoな人にはもう慣れたもんなんだろう。
あたらしい命令は
millis()
Parameters : None
Returns : Number of milliseconds since the program started (unsigned long)
だ。
同じことなので、動画も写真も貼らない(すでに手抜き開始)。
ESP8266関連記事一覧へ