【ESP8266 NodeMCU】ArduinoのdigitalRead/digitalWriteに使用できるピン配置解説

ESP8266

ArduinoでESP8266を使用するときのピン

こんにちは、くろべこです。

お手軽にWifi開発できるボードにESP8266というものがあります。

Arduinoでも開発が出来てライブラリも豊富なので、サーバー構築も割とすぐにできる優れものです。しかし、Arduinoで使えるといっても実際のGPIOとESP8266に表記されているピン名が異なっているため、資料と対比させながら使う必要があるのでややこしくはあります。

■ArduinoとESP8266の対比表

Specification Arduino ESP8266
RAM 4K Bytes 80 Kilobytes
FLASH memory 32 Kilo bytes 4 Mega Bytes
Speed 16MHz 80MHz
GPIOs 14 11
IO Voltage Level 5V 3.3V
ADC 6 (10-bit) 1 (10-Bit)
Serial 1 1
I2C 1 1
SPI 1 Used by Flash Chip
PWM IOs 6 (8-Bit Resolution) All IO Pins with 10-Bit Resolution
WiFi NO YES 2 MBPS

さらに、ブート時にHIGHになったりLOWになったりするピンも存在するので、すべてArduinoと同じく使用できるわけでもありません。

そこで今回は、アマゾンで購入できる【ESP8266 NodeMCU LUA CP2102 ESP-12E(HiLetgo)】を題材としてArduinoのdigitalWrite, digitalReadで使用できるピン配置を解説していきます。

 ESP8266ピン配置

ESP8266 NodeMCUのピン配置は以下の通りです。

GPIOなにがしと記載されている数字がArduinoで制御できるピン番号に対照する感じですね。また、I2Cに関してはGPIO5(SCL),GPIO4(SDA)でArduinoと同じように使用可能です。

アナログピンはどうかというと、ADC0とあるように、一個しかありません。アナログ読み取りの基準電圧は3.3Vの10bit分解能なのでArduinoの5V/8bitよりも高分解で使用可能です。

こんな感じで、GPIOを基にArduinoで開発できるわけですが、前述したようにピンごとに癖があるので次項では実際に使用可能なピンについて解説します。


ESP8266使用可能なピン

下の図にあるように、GPIOによってはboot時にHighやLowに固定されるピンが存在します。なので、接続するデバイスによっては意図しない動作をしてしまう場合がるので使用するピンは選ぶ必要があります。

参考:ESP8266 Relay (active low): how to prevent triggering on boot or reset (SOLVED)

これからわかる様に、何も考えないでArduinoと同じく使うには【D1(5) / D2(4) / D5(14) / D6(12) / D7(13)】という事になります。

 

今回の記事は、こんなところです。

みなさんの開発の参考にして頂ければ幸いです。

 

コメント

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