簡體   English   中英

ESP32 EXT1 喚醒

[英]ESP32 EXT1 wakeup

我有一個 ESP32 開發套件連接到 3 x 4 矩陣鍵盤。

3 列連接到 PINS:12、13、27

4 行連接到 PINS:14、15、32、33

目標:我希望能夠將 MCU 置於深度睡眠模式並能夠通過按鍵喚醒它,這意味着任何按鍵,而不是專門的按鍵。

我已經把這段代碼放在一起

void setup()
{
  Serial.begin(115200);
  // Wait for serial.
  while (!Serial)
    delay(100);
  Serial.println("I am ON");
  // power all columns.
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(27, OUTPUT);
  // enable all rows as input (HIGH).
  pinMode(14, INPUT_PULLDOWN);
  pinMode(15, INPUT_PULLDOWN); // tried also pin 35, no luck.
  pinMode(32, INPUT_PULLDOWN);
  pinMode(33, INPUT_PULLDOWN);
  esp_sleep_enable_ext1_wakeup(0b001100000000000000001100000000000000, ESP_EXT1_WAKEUP_ANY_HIGH);
  // hold the pin HIGH during sleep.
  gpio_deep_sleep_hold_en();

  // do the actual output on the pins.
  digitalWrite(12, HIGH);
  digitalWrite(13, HIGH);
  digitalWrite(27, HIGH);

  // delay to make sure.
  delay(500);
  esp_deep_sleep_start();
}

問題似乎是整個設置不穩定。 一些按鍵比其他按鍵更一致。 但更一致仍然意味着有時更一致的密鑰將無法喚醒設備。

我已經在 2 個不同的板(Huzzah32 和通用開發套件)上嘗試了該代碼段,結果相同。

鍵盤設置在其他方面很好用,這意味着我能夠可靠地讀取按鍵。

啊,我找到了: https : //docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/sleep_modes.html#external-wakeup-ext1 上拉/下拉電阻在深度睡眠期間通常不會啟用,這似乎可以解釋不一致的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM