ESP32のBOOTボタン、ボード上LEDを使用する

投稿者: | 4月 11, 2022

ESP32 Dev Kit V1を使用していてボード上のBOOTボタンと青色LEDを使用したいと思って、行ってみた結果です。

BOOTボタンはGPIO0、ボード上青色LEDはGPIO2となっているようです。

これを利用してボタンを押すたびにLEDがついたり消えたりする(オルタネイト)コードを書きました。簡単なものですが一応載せときます。

#define BOOT_SW 0 //DevKit上のBOOTボタン
#define LED 2 //DevKit上の青色LED

int Button_flag = 1; //スイッチの状態、押されていない状態で1・押された状態で0
int oldButton_flag = 1; //前のButton_flag
int LED_flag = 0; //LEDがついているかどうか、消灯が0・点灯で1

void setup() { //一番最初に一回だけ実行される処理
  pinMode(BOOT_SW,INPUT_PULLUP);
  pinMode(LED,OUTPUT);
}

void loop() { //繰り返し行われる処理
  oldButton_flag = Button_flag;
  Button_flag = digitalRead(BOOT_SW); //ボタンの状態の読み取り
  if (Button_flag ==0 && oldButton_flag == 1){ //押された時の検知
    if (LED_flag == 0){ //LEDが消えていた時
      digitalWrite(LED, HIGH); //LEDを点灯
      LED_flag = 1;}
    else if(LED_flag == 1){ //LEDがついている時
      digitalWrite(LED, LOW); //LEDを消灯
      LED_flag = 0;}
    }
}

なお、ESP32に電源を投入した直後やリッセットボタンを押す直前にBOOTボタンを押すともちろん書き込みモードに入ります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)