gpt4 book ai didi

arduino - ESP32 外部引脚唤醒,带内部上拉电阻

转载 作者:行者123 更新时间:2023-12-05 09:15:00 26 4
gpt4 key购买 nike

我对使用 Arduino 和任何类型的电路都很陌生。

我正在尝试使用命令 esp_sleep_enable_ext0_wakeup

设置 ESP32 板以使用外部触发器唤醒
void setup(){
int MY_PIN = 13;
pinMode(MY_PIN, INPUT_PULLUP);

int reading = digitalRead(MY_PIN);
if(reading == 1) {
esp_sleep_enable_ext0_wakeup(GPIO_NUM_13,0);
}
else {
esp_sleep_enable_ext0_wakeup(GPIO_NUM_13,1);
}

// I want the board to wake up every time the state of the switch changes.

esp_deep_sleep_start();
}

我遇到了麻烦。唤醒不会在我期望的时候发生。我认为这与使用外部上拉电阻有关。我没有连接一个。

有没有办法为此目的使用内部上拉电阻?

如果有人能解释一下它的一般工作原理,我将不胜感激。

documentation说:

@note This function does not modify pin configuration. The pin is configured in esp_sleep_start, immediately before entering sleep mode.

也许我需要使用 esp_sleep_pd_config 正确配置它。会不会是上拉电阻不工作的原因?

最佳答案

对于每个正在和将要为此苦苦挣扎的人来说,最终的解决方案或多或少是以前解决方案的组合。

首先你需要包含库:

#include "driver/rtc_io.h"

现在您需要启用上拉/下拉,同时禁用相反的一个。像这样:

rtc_gpio_pullup_en(GPIO_NUM_13);
rtc_gpio_pulldown_dis(GPIO_NUM_13);
esp_sleep_enable_ext0_wakeup(GPIO_NUM_13,0);

就是这样。您不需要启用 rtc_gpio_hold_en

关于arduino - ESP32 外部引脚唤醒,带内部上拉电阻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53324715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com