Как реализовать детектор brown out arduino ESP32?

Мы используем ESP32 с arduino sdk для разработки нашего приложения. В нашем приложении нам необходимо реализовать BOD для обнаружения с определенным уровнем напряжения.

В основном мы хотим установить определенный уровень напряжения, и когда устройство отключится, оно обнаружит и вызовет прерывание. Как я могу установить прерывание для обнаружения коричневого цвета?

у нас есть только этот код:

#include "soc/soc.h"
#include "soc/rtc_cntl_reg.h"

void setup() {
  Serial.begin(115200);
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 1); //включить детектор потемнения
}

void loop() {
  Serial.println("Start BOD");
  delay(1000);
}

, 👍1

Обсуждение

Вам нужно немного лучше объяснить, что вы пытаетесь сделать. Вы хотите выполнить какой-то код при сбое питания? Без дополнительного оборудования это может быть трудно, так как при выключенном питании плата тоже выключается., @PMF


1 ответ


1

Бортовой БПК ESP32 в основном предназначен для предотвращения операций, которые могут привести к повреждению, если они происходят при слишком низком напряжении. Существует очень непредсказуемое количество времени для кода в ESP32, чтобы сделать что-либо, кроме эффективной остановки.

Если это то, что вы хотите, то вы включили его в свой код выше.

Например, если вы хотите обнаружить отключение электроэнергии и что-то записать, вам нужны две вещи:

  1. Надежный детектор того, что питание вышло из строя.
  2. Схема на основе батареи или конденсатора, которая будет поддерживать питание ESP32 достаточно долго, чтобы вы могли делать то, что вам нужно.

Поэтому, когда происходит "1", вы устанавливаете вывод GPIO на ESP32, который запускает ваше прерывание, и делаете то, что вам нужно, пока питание остается стабильным.

,

Вы говорите о сетевом питании или о каком-то другом источнике питания (переменном или постоянном)? ESP питается от этого источника или от другого? Сколько времени пройдет с тех пор, как отключится электричество, пока вы не потеряете контроль? Планируете ли вы использовать A / D или внешний компаратор?, @Gil