цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора



Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора

Автор: Mike(admin) от 1-11-2022, 23:55

Зачастую при разработке электроники с автономным (батарейным) питанием возникает задача минимизации энергопотребления. Одним из способов решения данной задачи является отключение микроконтроллера и/или периферии. В данном материале мы рассмотрим реализацию данного метода с использованием модуля полевого МОП-транзистора MEM2313 для минимизации энергопотребления проектов на основе платы Lolin D32 с ESP32.


Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора

Модуль на основе MEM2313 прост в использовании, просто подключите кнопку к T и GND для включения/выключения питания. Триггер активен, когда напряжение на линии INPUT падает до НИЗКОГО уровня.


Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора

Итак, самый простой способ – это включение/выключение любой платы с помощью тактильного переключателя. Это не самый красивый метод, но максимально простой и рабочий. Достаточно лишь подключить модуль с транзистором, как показано далее.


Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора

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


Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора

Для работы метода в микроконтроллер необходимо записать следующий код.



void setup() {
    Serial.begin(115200);
    Serial.println("ON BY SWITCH");

    delay(5000); // Ваша задача

    pinMode(16,OUTPUT);
    Serial.println("OFF BY MCU");
}

void loop() {
    // Ваш основной код
}

Ну и наконец, самый изощренный метод – отключать периферию перед глубоким сном. Допустим, к вашей плате подключено 16 светодиодных модулей neopixel, и если вы переведете ее в режим глубокого сна, ваши модули neopixel все равно будут потреблять 7,62 мА. Наш транзисторный модуль является модулем-переключателем, и мы хотим быть уверены, что мы не включим наш светодиод, а выключим его. Поэтому мы подключим Vi к входному GPIO, чтобы проверить, включено ли питание или выключено.


Три способа минимизировать энергопотребление микроконтроллера с помощью полевого транзистора

Код данного метода.



#include <Adafruit_NeoPixel.h>
#define PIN 16 
#define NUMPIXELS 16
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 50    

#define uS_TO_S_FACTOR 1000000ULL
#define TIME_TO_SLEEP 5
RTC_DATA_ATTR int bootCount = 0;

void on() {
    if (!digitalRead(15)) {
        pinMode(17, OUTPUT);
        digitalWrite(17, LOW);
        delay(100);
        digitalWrite(17, HIGH);
        Serial.println("Turning ON");
    } else {
        Serial.println("Already ON");
    }
}
void off() {
    if (digitalRead(15)) {
        pinMode(17, OUTPUT);
        digitalWrite(17, LOW);
        delay(100);
        digitalWrite(17, HIGH);
        Serial.println("Turning OFF");
    } else {
        Serial.println("Already OFF");
    }
}

void setup() {
    Serial.begin(115200);
    pinMode(15, INPUT);
    on();
    pixels.begin();
    pixels.clear();
    for (int i = 0; i < NUMPIXELS; i++) {
        pixels.setPixelColor(i, pixels.Color(0, 150, 0));
        pixels.show();
        delay(DELAYVAL);
    }
    pixels.clear();
    pixels.show();
    off();
    esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
    Serial.println("Setup ESP32 to sleep for every " + String(TIME_TO_SLEEP) + " Seconds");
    Serial.println("Going to sleep now");
    Serial.flush();
    esp_deep_sleep_start();
}

void loop() {

}



© digitrode.ru


Теги: ESP32, транзистор




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий