ESP32 внешний вывод с внутренним подтягивающим резистором - PullRequest
0 голосов
/ 15 ноября 2018

Я очень новичок в работе с Arduino и любыми другими схемами.

Я пытаюсь настроить плату ESP32 для запуска с внешним триггером с помощью команды esp_sleep_enable_ext0_wakeup

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();
}

У меня проблемы с этим. Пробуждение не происходит, когда я этого ожидаю. Я предполагаю, что это связано с использованием внешнего подтягивающего резистора. Я не подключил один.

Есть ли способ использовать внутренний подтягивающий резистор для этой цели?

Буду признателен всем, кто сможет объяснить, как это работает в целом.

Документация гласит:

@ note Эта функция не изменяет конфигурацию контактов. Пин-код настраивается в esp_sleep_start непосредственно перед переходом в спящий режим.

Может быть, мне нужно правильно настроить его с esp_sleep_pd_config. Может ли это быть причиной того, что нагрузочный резистор не работает?

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Это сработало для вас в конечном итоге? Я также пытаюсь вызвать внутренние спуски или подтягивания на ESP32, чтобы проснуться от глубокого сна, и это не работает. С внешним подтягиванием / опусканием работает нормально. Bob

0 голосов
/ 13 декабря 2018

Я полагаю, что вам нужно включить подтягивание во время сна, используя

    rtc_gpio_pullup_en(GPIO_NUM_13);

перед вызовом esp_sleep_enable_ext0_wakeup ().Для этого вам также необходимо

#include "driver/rtc_io.h"
...