Wednesday, May 03, 2023

About ESP32-S3 N16R8 DevKit (AI-S3) board RGB LED

 このAI-S3ボードをAliexpressで購入(ここ

サンプルプログラムのBlinkRGBでこのボードの上にあるRGB LEDを点滅させる.このボードのレイアウトはESP32-S3-DevKitC-1に似ているが,所々異なっている・・・探してもこのボード自体のschematicが出てこないため,RGB LEDの型番は不明,接続先も不明・・そのためサンプルプログラムがなかなか動かすことができなかった.結論からいうとこのRGB LEDはGPIO38ではなく,GPIO48で制御することができる.

オリジナルのESP32-S3-DevKitC-1schematicを見るとGPIO38に接続されているがこれはESP-IDF v5.0.1のバージョンで,ESP-IDF v4.4.xのバージョンだとGPIO48になっていた.おそらくAI-S3ボードはこの古いバージョンをベースに作られていると思われる.


環境
- Arduino IDE + esp32 v2.0.8
- Board: ESP32S3 Dev Module

サンプルプログラム
/*
  BlinkRGB
*/

#define RGB_BRIGHTNESS 150 // Change white brightness (max 255)

// Explicitly define the pin here, overwrite the one in 
// C:\Users\...\AppData\Local\
//    Arduino15\packages\
//       esp32\hardware\esp32\2.0.8\variants\esp32s3\pins_arduino.h
#define RGB_BUILTIN 48 
void setup() {
  Serial.begin(115200);
  Serial.println("setup done...");
}

void loop() {
#ifdef RGB_BUILTIN
  digitalWrite(RGB_BUILTIN, HIGH);   // Turn the RGB LED white
  delay(1000);
  digitalWrite(RGB_BUILTIN, LOW);    // Turn the RGB LED off
  delay(1000);

  neopixelWrite(RGB_BUILTIN,RGB_BRIGHTNESS,0,0); // Red
  delay(1000);
  neopixelWrite(RGB_BUILTIN,0,RGB_BRIGHTNESS,0); // Green
  delay(1000);
  neopixelWrite(RGB_BUILTIN,0,0,RGB_BRIGHTNESS); // Blue
  delay(1000);
  neopixelWrite(RGB_BUILTIN,0,0,0); // Off / black
  delay(1000);
#endif
}

RGB_BUILTINをコード内に再定義しておくことでesp32s3/pins_arduino.h内に定義されているののを上書きさせる

ちなみに,上のAI-S3ボードを購入するのであれば,下記のYD-ESP32-S3ボードを購入した方がいい.このボードのschematicはGithubにある(ここ





No comments: