Приветствую всех.
Такой вопрос от начинающего:
Собрал на коленке связку NodeMCU V3, датчик AHT20+BMP280 на шине I2C, дисплей ST7735S 0.96 дюйма. Ничего необычного - дисплей показывает температуру и влажность, давление не проверяется. Arduino IDE, бибилиотеки - Adafruit_AHTX0 для датчика и TFT_eSP для дисплея.
Всё работает, цифры показывает, но тут я решил запитать композицию от 2х батареек. Собственно проблем не возникло, но появилось желание снизить энергопотребление. Поэтому целью стало отображение показаний каждую минуту на 5 секунд. Сначала я пытался отключить дисплей, нашел даташит и инструкции для спящего режима и отключения дисплея(0x28), это работало, но подсветка дисплея продолжала работать. Затем выяснил, что контакт BLK дисплея отвечает за подсветку, подключается к 3.3В, но если подключить его к GND, то подсветка должна гаснуть. Команды tft.writecommand(0x28); digitalWrite(D8, LOW) выключают дисплей и гасят подсветку. Энергопотребление падает с 25 до 18мА. Конечно же это не много, поэтому я пошел в сторону DeepSleep...
И тут меня ждал неприятный сюрприз. После ухода в сон подсветка загорается и горит всё время сна. Мультиметр показывает на пине D8 0.6 вольта, что логически должно являться нулём, но по факту, видимо, достаточное напряжение для запуска подсветки. Вычитал, что во время режима глубокого сна у разных пинов разное состояние, пробовал подключить BLK на другие пины(D4, D3) - действие в корне неверное, т.к. их состояние HIGH во время сна.
Есть какое-то несложное решение этой проблемы программное или аппаратное? Также я увидел, что на пин D8 используется под TXD2, может в этом проблема? В общем задача - погасить дисплей во время режима глубокого сна.
Еще немного информации:
AHT20 -----NodeMCU
SCL-----> D1
SDA---->D2
ST7735S
SCL--->D5
SDA--->D7
RES--->D3
DC--->D4
CS--->D6
BLK--->D8
Такой вопрос от начинающего:
Собрал на коленке связку NodeMCU V3, датчик AHT20+BMP280 на шине I2C, дисплей ST7735S 0.96 дюйма. Ничего необычного - дисплей показывает температуру и влажность, давление не проверяется. Arduino IDE, бибилиотеки - Adafruit_AHTX0 для датчика и TFT_eSP для дисплея.
Всё работает, цифры показывает, но тут я решил запитать композицию от 2х батареек. Собственно проблем не возникло, но появилось желание снизить энергопотребление. Поэтому целью стало отображение показаний каждую минуту на 5 секунд. Сначала я пытался отключить дисплей, нашел даташит и инструкции для спящего режима и отключения дисплея(0x28), это работало, но подсветка дисплея продолжала работать. Затем выяснил, что контакт BLK дисплея отвечает за подсветку, подключается к 3.3В, но если подключить его к GND, то подсветка должна гаснуть. Команды tft.writecommand(0x28); digitalWrite(D8, LOW) выключают дисплей и гасят подсветку. Энергопотребление падает с 25 до 18мА. Конечно же это не много, поэтому я пошел в сторону DeepSleep...
И тут меня ждал неприятный сюрприз. После ухода в сон подсветка загорается и горит всё время сна. Мультиметр показывает на пине D8 0.6 вольта, что логически должно являться нулём, но по факту, видимо, достаточное напряжение для запуска подсветки. Вычитал, что во время режима глубокого сна у разных пинов разное состояние, пробовал подключить BLK на другие пины(D4, D3) - действие в корне неверное, т.к. их состояние HIGH во время сна.
Есть какое-то несложное решение этой проблемы программное или аппаратное? Также я увидел, что на пин D8 используется под TXD2, может в этом проблема? В общем задача - погасить дисплей во время режима глубокого сна.
Еще немного информации:
AHT20 -----NodeMCU
SCL-----> D1
SDA---->D2
ST7735S
SCL--->D5
SDA--->D7
RES--->D3
DC--->D4
CS--->D6
BLK--->D8