Home New Help Edit

ESP32でArduino

Suns & Moon Laboratory


Lチカ

Arduino1.8.5 + esp8266 ver2.4.1

esp32_blinky.ino
void setup() { pinMode(23,OUTPUT); } void loop() { digitalWrite(23,HIGH); digitalWrite(23,LOW); }

Hello

Arduino1.8.5 + esp8266 ver2.4.1

esp32_hello.ino
void setup() { Serial.begin(115200); while(!Serial); Serial.printf("Hello! ESP32.\r\n"); } void loop() { Serial.printf("."); delay(1000); }

加速度センサー


LIS3DH

Arduino1.8.5 + esp8266 ver2.4.1
SparkFun LIS3DH Breakout 1.0.0

秋月電子 LIS3DH \600 http://akizukidenshi.com/catalog/g/gK-06791/

ライブラはSparkFun
ライブラリマネージャからSparkFun LIS3DH Breakoutをインストール
MSBFIRST無いってエラーでるので、Arduino\libraries\SparkFun_LIS3DH_Breakout\src\SparkFunLIS3DH.cppを書き換え
includeの後ろに、下記記述追加。
#define MSBFIRST 1

githubから落としたver1.0.1に置き換え。
https://github.com/sparkfun/SparkFun_LIS3DH_Arduino_Library
それはMSBFIRSTのエラー出なかった。


基板はA,Bをショート、Cはオープンにして5ピンをVCCにショート(SparkFunのボードと同じ構成にした)。

当初SCL,SDAをDefaultとは違う、別ポートにしていたら動かなかった。(ピン指定してもダメだった。SDOが常に同じ値で、シリアルモニタの表示値は0)

ソースはサンプルをそのまま
https://github.com/sparkfun/SparkFun_LIS3DH_Arduino_Library/blob/master/examples/MinimalistExample/MinimalistExample.ino

はまり


タイマー割り込み入らない

Arduino1.8.5 + esp8266 ver2.4.1 + Sparkfun LIS3DH ver1.0.1
なぜかこれ追加でタイマー割り込みかからない
myIMU.settings.accelSampleRate = 100; myIMU.begin(); Wire.setClock(400000); //must after myIMU.begin();

いろいろいじっていたら動く組み合わせもあるので、どっかでなにかが邪魔してる。多分自分のせい。

初期化順序を
タイマー -> myIMU -> Wireにしたら動いた

と思ったらやっぱダメ
良い時とダメな時がある。


SPIとGPIOの初期化タイミング

SPIを初期化すると、デフォルトのGPIOポートが初期化されちゃうので、SPI初期化後にGPIO初期化する必要が有る。

UPnPで不具合?

検証したのではなくやってみたレベルなんですが、アクセスポイントのUPnPを「使用する」にしているとTCP通信が失敗した。
使用しないように設定したらTCP通信の失敗が無くなった。ような気がする。
うーん。
APはWR8600NのRTモードで、WAN未接続、ESP32はAPへ2.4G接続。IPアドレスは固定(DHCPは生かしてあるが使用しない)

ウェイト

ets_delay_us(x)

【ESP32】マルチタスク中でμs単位でdelayをかける

参考

ESP32-WROOM-32

Arduino core for the ESP32 リファレンス

Arduino – ESP32 のマルチタスク ( Dual Core ) を試す

xSemaphoreGiveFromISR
https://www.renesas.com/cn/ja/products/gadget-renesas/reference/gr-rose/rtos-semaphore.html

Home New Help Edit
2021-08-17 20:36:10 32400