Управление ЖКИ без контроллера: цифровой термометр, цифровой дисплей.
Автор: Aheir
Сегодня использованием в каком-либо микроконтроллерном устройстве жидкокристаллического индикатора (ЖКИ, LCD) никого не удивишь.
Однако то, что обычно встречается в таких устройствах, представляет собой модуль, в котором интегрированы собственно ЖК-панель и
специальный драйвер, который помимо реализации интерфейса занимается еще и формированием управляющих напряжений для экрана. Нас же будут
интересовать простые ЖКИ без контроллера, как ими управлять и вообще, насколько они применимы в любительских конструкциях.
Под действием электрического поля между обкладками молекулы ЖК выстраиваются определенным образом так, что происходит поляризация
проходящего через элемент света, что в купе с применением внешних поляризаторов (специальные полимерные пленки, нанесенные на дисплей)
приводит к засвечиванию сегмента. В невозбужденном состоянии ячейки молекулы ЖК расположены хаотично, поляризации нет, сегмент «выключен».
Это весьма упрощенное описание процессов в ЖКИ, поэтому заинтересовавшихся прошу самостоятельно ознакомиться с материалами на эту тему, найти
их не сложно, например, многие вопросы достаточно подробно рассмотрены здесь.
Конструктивно представляют собой собственно стекло индикатора, закрепленное в пластиковой рамке с креплениями к печатной плате и снабженное контактным элементом из токопроводящей резины, предназначенным для электрического соединения с той же самой платой. Первый контакт индикатора (отсчитываем слева направо в рабочем положении индикатора) является общим, остальные несколько десятков контактов – сегменты. Индикаторы от M890G пока ждут своего часа, а для Uni-T’овского дисплея была изготовлена переходная плата следующего вида:
Как видно, ничего особенного, просто способ закрепить индикатор и сделать доступными для пайки все его контакты. Та часть дорожек,
которая непосредственно контактирует с индикатором (верхняя половина платы), залужена для обеспечения лучшего контакта. Плата полностью
симметрична. Для определения назначения выводов использовался метод высоконаучного тыка, поскольку с документацией на такие компоненты,
сами понимаете, дела обстоят довольно грустно. Для «прозвонки» можно использовать и обычный мультиметр, но, как мы уже выяснили, это не
сильно полезно для индикаторов (хотя можно не обращать на это внимание при столь непродолжительном воздействии), к тому же, сегменты могут
быть неконтрастными либо довольно быстро «рассасываться» (постепенное, но достаточно быстрое пропадание изображения). Поэтому была написана
простейшая (даже приводить ее здесь не буду) программа для МК, которая с частотой 100Гц выдавала на два вывода контроллера противофазный
меандр: одним из этих выводов касаемся первого контакта индикатора, вторым – поочередно всех остальных, записывая то, что индикатор нам
показывает. Всей работы минут на пять.
Конструктивно это оформлено в виде «бутерброда» из платы с индикатором и платы контроллера, на которой также установлен термодатчик; питается все от внешнего 5В сетевого адаптера (а-ля зарядник для сотового, опять же, ну вот много их у меня :) , а с батарейками не было нужды связываться). Один нюанс: по плате видно, что в данном случае мы не используем многие из сегментов ЖКИ. Такие сегменты лучше соединить с общим электродом ЖКИ, тогда на них будет синфазный с общим сигнал и они никогда не будут засвечены. Если этого не сделать, то при прикосновении к таким выводам или при существенном уровне внешних помех возможна нежелательная паразитная засветка сегментов. На плате разведен ряд дополнительных элементов (кварц, разъем питания с LC-фильтром), которые в конечной версии не используются, что видно на фотографии платы. Устройство упаковано в пластиковый корпус и вроде как вполне пристойно смотрится:
Программа для МК написана на Си в среде WinAVR, тоже не отличается сложностью, занимается обслуживанием датчика по шине I2C, расчетом
температуры, подготовкой данных для вывода на ЖКИ и, собственно, их выводом. Процедура вывода представляет собой инвертирование портов,
подключенных к ЖКИ, в теле прерывания по переполнению таймера с частотой около 100Гц. Визуально я не увидел разницы между частотами от 50
до 400Гц, ну а поскольку рекомендаций производителя для этих ЖКИ я не знаю, остановился на 100. Прошивку с исходниками можно заполучить в
конце статьи, схему и платы – там же.
А если заглянуть под индикатор...
Программу полностью приводить не буду, поскольку она «заточена» под конкретную макетную плату, но тем не менее, достаточный для понимания
принципов работы и повторения конструкции исходник на Си доступен для скачивания в конце статьи. Да и принципы-то не изменились: теперь мы
в прерывании не просто инвертируем состояние портов МК, подключенных к ЖКИ, а загружаем в регистры специальным образом подготовленные данные.
Только и всего.
Файлы: Ну а все вопросы, как всегда, в Форум.
|
|
|||||||||||||||
|
||||