😇

Arduino NANO ESP32を使ってハマったところ

に公開

1. 概要

WiFi接続できるNanoが欲しいなと思って買ってみましたが、ESP32を積んでるが故に普通のNANOと同じような使い方ができない部分があったのでメモ。他にハマったら追記します。

2. 拡張IOボードを使うにはB1ピンを切る必要がある

拡張IOボードに載せると書き込みができなくなって困っていました。
調べたところ、以下のフォーラムでB1を切れ!と書いてありました。
https://forum.arduino.cc/t/esp32-not-recognized-if-connected-to-gravity-nano-i-o-shield/1176673

B1ピンについてはB0ピンと合わせて以下に説明があります。
ブートローダーモードで使用するようです。
https://support.arduino.cc/hc/en-us/articles/9625819325212-About-the-B1-and-B0-pins-on-the-Nano-ESP32

3. NeoPixelのピンの指定方法が違う

いくらやってもNeoPixelが光らないなと思ったら、ピンの指定方法が違いました。

こちらのフォーラムで同様のやりとりがされていました。
https://forum.arduino.cc/t/nano-esp32-and-neopixels-issue/1177402/2

例えばD6を使いたい場合はGPIOの番号である9番を指定します。

NeoPixelのsimpleというサンプルだと通常こうなっています。

#define PIN        6
#define NUMPIXELS 16
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
...

Nano ESP32を使ってD6ピンを使いたい場合は6ではなくGPIOの番号の9になります。

#define PIN        9 // D6 = GPIO9
#define NUMPIXELS 16
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
...

詳細は以下に記載されています。PIN番号とGPIO番号の対応図もあります。
https://docs.arduino.cc/tutorials/nano-esp32/pin-setup/

NeoPixel以外では通常のPIN番号で大丈夫です。

4. AnalogピンはDigitalピンとして使えない(これは普通のNANOも)

これはNano ESP32だからじゃなくて、Nanoも使えないみたい。

The exception is the Arduino Nano, Pro Mini, and Mini’s A6 and A7 pins, which can only be used as analog inputs.

https://forum.arduino.cc/t/can-i-use-all-the-analog-pins-of-arduino-nano-as-digital/923215/2

公式のドキュメントにもDigitalのところには書かれてないからそういうことなのか。
https://docs.arduino.cc/tutorials/nano-esp32/cheat-sheet/#pins

5. 動作電圧5Vではなく3.3VでUSB接続をしていない場合は5Vが取れない

The internal operating voltage of the ESP32-S3 SoC is 3.3 V

https://docs.arduino.cc/tutorials/nano-esp32/cheat-sheet/#operating-voltage

それに伴って5Vの出力ピンがVUSBに変わっています。USB接続の時はUSBから5Vが供給されますが、VINから電源を供給してUSB接続をしない場合は5Vが取れません。VINが5Vであればそれを使えますが僕は12Vで使おうとしてたので、別途三端子レギュレーターを用意して12Vから5Vを使いました。

Discussion