☰ Зміст FBD
Блок керування режимом глибокого сну для контролера ESP32



Плату ESP32 можна переключити в режим глибокого сну, а потім розбудити через певний час. Ця функція особливо корисна, якщо ваш проект зав'язаний на часі (наприклад, виконує щоденні завдання) та потребує низького енергоспоживання. Якщо переключити ESP32 в режим глибокого сну, це означає, що у неї будуть відключені самі енергоємні активності, але продовжать працювати активності, необхідні пробудження процесора, якщо станеться щось цікаве. У режимі глибокого сну не працює ні процесор, ні WiFi, але, як і раніше, може працювати співпроцесор ULP (англ. «ultra low power», тобто. "процесор з ультранизким споживанням").


Після того, як ESP32 переведена в режим глибокого сну, є кілька способів пробудити її:

1. За допомогою таймера. Він розбудить ESP32 через певну кількість часу.

2. З допомогою зовнішнього пробудження. Тут є дві можливості: пробудження або за допомогою одного зовнішнього ініціатора, або за допомогою кількох зовнішніх ініціаторів.

3. За допомогою сенсорних контактів.

Даний блок служить для керування переходом контролера в режим глибокого сну та налаштуванням умов пробудження.

Блок настроюється за допомогою редактора блоку. У налаштуваннях блоку є кілька закладок для завдання різних режимів пробудження

На першій закладці налаштовується необхідність пробудження по таймеру, а так само час, через який таймер розбудить контролер.




У разі встановлення режиму пробудження по таймеру необхідно встановити час сну. Це можна зробити або константою, або встановити це значення з входу блоку («Sleep Time»).

На другій закладці налаштувань задаються сенсорні кнопки, від дотику яких відбуватиметься пробудження контролера.




Для кожної доданої сенсорної кнопки можна встановити поріг спрацьовування (обчислюється досвідченим шляхом виходячи з фізичних розмірів сенсора). За замовчуванням поріг спрацьовування – 40.

На наступній закладці задаються висновки, зміна рівня яких служить для пробудження контролера.




Подія, що служить для пробудження, задається відразу для всіх вибраних висновків.

Блок використовує вибрані висновки монопольно, тобто ці висновки можна використовувати в схемі для інших цілей. Висновок, вибраний для пробудження як сенсорна кнопка, не може бути використаний для пробудження від зміни стану, і навпаки.

Засипання процесора відбувається на передньому фронті імпульсу на вході «Sleep».

На останній закладці визначається наявність виходів блоку.




При активації чекбоксу "Вихід причини пробудження" у блоку з'являється вихід "Reason", на якому виводиться код причини останнього пробудження

Коди причини пробудження.

-1 – невідома причина (наприклад, після перезавантаження контролера).

1 – пробудження від зміни стану на виведенні

3 – пробудження від таймера

5 – пробудження від сенсорної кнопки

Якщо буде обрано хоча б одну сенсорну кнопку, або висновок для пробудження від зміни стану, то на цій закладці з'явиться Чекбокс «Вихід номера піна, що спричинив пробудження».

При активації цього чекбоксу, блок має вихід «GPIO». У разі пробудження від сенсорної кнопки або зміни стану виводу, на цьому виході буде номер GPIO виходу, що викликав пробудження. В інших випадках на ньому буде: -1.