8
3

More than 5 years have passed since last update.

ESP32-DevKitCでdeep sleep中もGPIOに接続したLEDを光らせる

Posted at

目的

ESP32はdeep sleepモードに入れることで消費電力を抑えることができるが、deep sleep中もGPIO出力だけはHighに保ちたい。
(How to keep a GPIO output high even in deep sleep mode at ESP32)

環境

Arduino-IDEでESP32-DevKitCを使用
(Arduino-IDE is used.)

詳細

deep sleepモードに入ってもGPIO出力をHighに保つには以下のようにするとできる。

#include "driver/rtc_io.h"
gpio_num_t pin_led=GPIO_NUM_25;
void setup() {
  rtc_gpio_init(pin_led);
  rtc_gpio_set_direction(pin_led,RTC_GPIO_MODE_OUTPUT_ONLY);
  rtc_gpio_set_level(pin_led,0);
  delay(1000);
  rtc_gpio_set_level(pin_led,1);
  esp_deep_sleep_pd_config(ESP_PD_DOMAIN_RTC_PERIPH, ESP_PD_OPTION_ON);
  esp_deep_sleep_enable_timer_wakeup(5 * 1000 * 1000);
  esp_deep_sleep_start();
}
void loop(){
}

1秒間Lowにした後、Highにして直ぐに5秒間deep sleep状態になるが、その間LEDが点灯していることが確認できた。
(I confirmed that the LED is off for 1 second and kept on during 5 seconds of deep sleep.)

以下のguideを参考にした。
ESP-IDF Programming Guide
Deep_Sleep
RTC_GPIO

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3