Изменение яркости на ЖК-экране Hitachi HD44780

11

Я заканчиваю проект - светодиодный игровой будильник. Видя, что это часы, мне нужен способ сохранить власть, которую сейчас, как политик, пожирает мой Uno R3 +. У меня вопрос: как выключить экран или выключить подсветку с помощью программного обеспечения только на ЖК-экране Hitachi HD44780 16x2? Или как мне установить спящий режим на один компонент? Я планирую отключить его с помощью ультразвукового дальномера. Если я подойду ближе, он включит экран. Если что-то, что я скажу, не имеет смысла, попросите уточнить, я немного тороплюсь.

Мистер флоппи
источник
То, можно ли это сделать, полностью зависит от того, как подключен ЖК-экран. В наборе команд HD44780 не предусмотрено управление подсветкой. Вам нужно будет добавить какой-нибудь внешний механизм для управления подсветкой.
Коннор Вольф

Ответы:

8

Установите последовательно транзистор с резистором 33R между выводом 16 ЖКД (заземление задней подсветки) и заземлением и включите и выключите транзистор с помощью цифрового вывода. Таким образом, вы сможете включать и выключать подсветку.

Вы можете лучше контролировать яркость, если на штырь наложите импульс ШИМ. Просто позвоните, analogWrite(D3, value)где valueжелаемая яркость.

Схема ниже. Это от Freetronics 16x2 LCD Shield .

Яркость ЖК-дисплея

Рикардо
источник
+1 для схемы, хотя я не уверен, почему есть два резистора (R7 и R8).
Мадивад
1
@Madivad - Я предполагаю, что это увеличит максимальную рассеиваемую мощность, которую могут выдержать резисторы. Два параллельных резистора 68R приводят к эквивалентному сопротивлению 34R, но удваивают максимальную мощность, которая может рассеиваться через один резистор. Я не помню, какие резисторы были рекомендованы Freetronics, но в моем случае я использовал два 1 / 4W 68R резистора, и плата работает нормально. Кроме того, я предполагаю, что резисторы 68R более распространены. Это, безусловно, справедливо для меня, так как у меня в корзинах много резисторов 68R, но нет резисторов 33R.
Рикардо
Я знаю, что это «старый», но надеюсь, что кто-то заметит это ... У меня проблемы с пониманием того, как транзистор подключается (так как я не знаком со значком выше для транзистора), где E, B, С подключиться к?
Warath-кодер
@wara - это полевой транзистор (FET), а не BJT. Так что вы будете искать, чтобы соединить его сток, источник и ворота. В любом случае, вы получите лучшую помощь, задав отдельный вопрос со ссылкой на этот вопрос.
Рикардо
5

Вместо того, чтобы привязывать подсветку напрямую к V + и GND, подключите ее к выводу ШИМ (вам может понадобиться отдельный драйвер, если на выводе не получается источник / поглотитель достаточного тока). Это позволит вам контролировать яркость с помощью analogWrite().

Выключите ЖК-дисплей ( LiquidCrystal::noDisplay()), когда он не используется активно. Содержимое останется в памяти, но сегменты LCD не будут управляться.

Установите различные биты в PRRрегистре, чтобы отключить любые периферийные устройства, которые он не использует.

И не забывайте спать процессор, когда он не нуждается в работе . См. Раздел «Управление питанием и спящие режимы» таблицы данных для получения дополнительной информации об этом и о PRRреестре, а также <avr/sleep.h>документации для AVR Libc.

Игнасио Васкес-Абрамс
источник
3
Спать с MCU бессмысленно, так как остальные части обычного uno потребляют так много энергии, что не обеспечивают какого-либо значительного снижения общего потребления.
Коннор Вольф,
2
На самом деле, если вы хотите получить Arduino с низким энергопотреблением, вам нужен Arduino Pro (или любая другая плата без встроенного USB-последовательного порта), а затем вам нужно установить регулятор с достаточно низким потреблением тока покоя. в теме. Это немного запутано.
Коннор Вольф
Абсолютно. Кто-то, кто хочет сохранить все до последней части энергии, разработает свою собственную плату и определит свои компоненты соответственно.
Игнасио Васкес-Абрамс,
Да, но я хочу сказать, что вы даже не можете получить значимую значительную экономию энергии на большинстве плат Arduino, так как даже их вреги имеют ужасный ток покоя (2 ма +, IIRC). Затем есть FTDI / ATmega16U2, который вы не можете отключить и т. Д.
Коннор Вольф
@ Mr.Floppy: IOW, выбрать что-то еще. Что-то с меньшим количеством частей.
Игнасио Васкес-Абрамс