Я заканчиваю проект - светодиодный игровой будильник. Видя, что это часы, мне нужен способ сохранить власть, которую сейчас, как политик, пожирает мой Uno R3 +. У меня вопрос: как выключить экран или выключить подсветку с помощью программного обеспечения только на ЖК-экране Hitachi HD44780 16x2? Или как мне установить спящий режим на один компонент? Я планирую отключить его с помощью ультразвукового дальномера. Если я подойду ближе, он включит экран. Если что-то, что я скажу, не имеет смысла, попросите уточнить, я немного тороплюсь.
arduino-uno
lcd
Мистер флоппи
источник
источник
Ответы:
Установите последовательно транзистор с резистором 33R между выводом 16 ЖКД (заземление задней подсветки) и заземлением и включите и выключите транзистор с помощью цифрового вывода. Таким образом, вы сможете включать и выключать подсветку.
Вы можете лучше контролировать яркость, если на штырь наложите импульс ШИМ. Просто позвоните,
analogWrite(D3, value)
гдеvalue
желаемая яркость.Схема ниже. Это от Freetronics 16x2 LCD Shield .
источник
Вместо того, чтобы привязывать подсветку напрямую к V + и GND, подключите ее к выводу ШИМ (вам может понадобиться отдельный драйвер, если на выводе не получается источник / поглотитель достаточного тока). Это позволит вам контролировать яркость с помощью
analogWrite()
.Выключите ЖК-дисплей (
LiquidCrystal::noDisplay()
), когда он не используется активно. Содержимое останется в памяти, но сегменты LCD не будут управляться.Установите различные биты в
PRR
регистре, чтобы отключить любые периферийные устройства, которые он не использует.И не забывайте спать процессор, когда он не нуждается в работе . См. Раздел «Управление питанием и спящие режимы» таблицы данных для получения дополнительной информации об этом и о
PRR
реестре, а также<avr/sleep.h>
документации для AVR Libc.источник