Теория управления сегментным ЖК индикатором
Множество портативных батарейных устройств содержат в своём составе сегментный жидкокристаллический индикатор. Причина применения такового понятна:
- низкое энергопотребление
- низкая цена индикатора
- возможность сделать оригинальный индикатор за небольшую сумму денег
Управление сегментным индикатором можно сделать посредством микроконтроллера. Для того чтобы включить сегмент индикатора достаточно подать на него переменное напряжение в заданном диапазоне частот и амплитуды, которые указываются в документации на индикатор. Стандартный диапазон частот находится в пределах 30 – 200Гц. Если превысить заданную частоту, то индикатор будет отображать включенный сегмент, однако, такое решение будет потреблять большую энергию в сравнении со стандартным диапазоном частот. Если дать сигнал меньшей частоты, то пользователь имеет шанс увидеть мерцание индикатора. Жидкие кристаллы под воздействием переменного напряжения выше определённой величины начинают поглощать свет. Это напряжение называется «порогом срабатывания».
Чем стабильнее данный порог в различных условиях эксплуатации, а также от партии к партии, тем выше качество индикатора. Во время эксплуатации ЖК сегменты должны управляться двуполярным напряжением. Смещение постоянным напряжением (как показано выше) ведёт к деградации индикатора при длительных сроках эксплуатации. Таким образом, правильное управление ЖК индикатором должно выглядеть так:
При этом схема управления индикатором выглядит так:
Выход «COM» или другими словами «общий» генерирует переменное напряжение. Выходы контроллера, подключенные к сегментам индикатора, всегда генерируют сигнал, аналогичный сигналу COM, в противофазе, если сегмент должен быть включён или синфазно, если сегмент – выключен.
Для управления контрастом рекомендуется менять длительность импульсов, при неизменной амплитуде. Соответственно, чем короче активная часть импульса, тем ниже контраст.
Практика показывает, что наращивание сигналов COM даёт большее приращение количеству управляемых сегментов, чем добавление ещё одного сегментного сигнала. Такой подход усложняет схему управления и снижает контраст индикатора.
С введением нового выхода COM требуется «научить» контроллер выдавать сигнал «половинного» (или «частичного») уровня. Индикатор при этом не должен включать сегмент при подаче на него 3/4 уровня максимального напряжения. Иначе начнут появляться сегменты, которые должны быть выключены. Это ещё одно требование к индикаторам и уровням управления ими. Сигналы, выдаваемые на общие линии индикатора, показаны выше. Длительность импульсов, выдаваемая на линию сегментов в случае использования 4-х общих линий, составляет 1/8 периода. Из этого следует, что в 4 раза сократится контраст относительно индикатора с одной общей линией. Зато количество управляемых сегментов будет в 4 раза больше.
Управление индикатором можно построить на практически любом микроконтроллере. Например, для микроконтроллеров семейства STM32F инженерами ST написана библиотека по управлению сегментным индикатором. Библиотека находится в открытом доступе.
Любое программное решение имеет ограничения:
- потребуется на каждую линию COM повесить внешний делитель из двух резисторов
- не будет возможности управлять уровнями напряжения, выдаваемыми на индикатор
Все указанные ограничения снимаются при использовании контроллеров семейств STM32L1xxx, STM8lxxxx с аппаратным драйвером ЖК экрана. Более того, несмотря на чуть более высокую цену контролеры этих семейств могут оказаться более выгодными с экономической точки зрения:
- отсутствие внешних компонент (50 коп/точка пайки * 8 резисторов = 8 рублей)
- возможность использовать дешёвый индикатор, с отказом от настройки контраста на своём производстве (делегировав функцию настройки контраста конечному пользователю).
Кроме этого вы получаете контроллер с низким энергопотреблением, что позволит повысить потребительские свойства конечного продукта, особенно если он имеет батарейное питание.