Например TDA7294

РадиоКот > Статьи

Управление ЖКИ без контроллера: цифровой термометр, цифровой дисплей.

Автор - Aheir, aheir@radiokot.ru
Опубликовано 27.01.2009.

Сегодня использованием в каком-либо микроконтроллерном устройстве жидкокристаллического индикатора (ЖКИ, LCD) никого не удивишь. Однако то, что обычно встречается в таких устройствах, представляет собой модуль, в котором интегрированы собственно ЖК-панель и специальный драйвер, который помимо реализации интерфейса занимается еще и формированием управляющих напряжений для экрана. Нас же будут интересовать простые ЖКИ без контроллера, как ими управлять и вообще, насколько они применимы в любительских конструкциях.

Сначала немножко теории. Сегмент ЖКИ (будь то точка или часть семисегментного знакоместа) представляет собой конденсатор, пространство между обкладками которого заполнено жидкими кристаллами (ЖК, это группа веществ, названных так потому, что они одновременно демонстрируют свойства, характерные как для жидкостей, так и для кристаллов).

Управление сегментом

Под действием электрического поля между обкладками молекулы ЖК выстраиваются определенным образом так, что происходит поляризация проходящего через элемент света, что в купе с применением внешних поляризаторов (специальные полимерные пленки, нанесенные на дисплей) приводит к засвечиванию сегмента. В невозбужденном состоянии ячейки молекулы ЖК расположены хаотично, поляризации нет, сегмент «выключен». Это весьма упрощенное описание процессов в ЖКИ, поэтому заинтересовавшихся прошу самостоятельно ознакомиться с материалами на эту тему, найти их не сложно, например, многие вопросы достаточно подробно рассмотрены здесь.

Казалось бы, в таком случае, для управления индикатором достаточно подать на обкладки постоянное напряжение и вот оно, счастье. Но не все так просто, поскольку при приложении к обкладкам постоянного напряжения в среде между ними начинают протекать электрохимические процессы, что приводит к деградации электродов и самих ЖК и выходу индикатора из строя через некоторое непродолжительное время. Поэтому в простейшем случае для управления сегментом используется меандр, причем если на электроды подается синфазный сигнал – сегмент выключен, а если противофазный – засвечен, что и проиллюстрировано на рисунке выше. Собственно, на этом с теории пока что хватит, посмотрим, что же у нас есть по факту…

А есть у нас следующее: в общем случае ЖКИ бывают с простым управлением (когда на все сегменты ЖКИ приходится один общий электрод) и с мультиплексированием (когда существует несколько общих электродов, а сегменты объединены в группы – образуется матрица столбцов-общих и строк-сегментов). Мультиплексные индикаторы мы пока отложим в сторону и, возможно, вернемся к ним в следующих статьях (страждущие могут ознакомиться с аппнотом AN563 от Микрочипа, описаниями встроенных контроллеров LCD некоторых МК MSP-серии от Texas Instr. или отладочным комплектом AVR Butterfly на Atmega169), а мы пока поподробнее пообщаемся с более простыми представителями этого славного семейства.

Первое, что попало в руки – пара индикаторов от мультиметров M890G (или их клонов, уж не знаю) и дисплей от какого-то мультиметра Uni-T. Все индикаторы способны отображать «3,5» разряда, т.е. имеют 3 полных 7-ми сегментных знакоместа и еще одну «1» старшего разряда, а также массу специальных символов, характерных для мультиметров: Ом, кОм, мА, V и т.д., и т.п.

ЖКИ

Конструктивно представляют собой собственно стекло индикатора, закрепленное в пластиковой рамке с креплениями к печатной плате и снабженное контактным элементом из токопроводящей резины, предназначенным для электрического соединения с той же самой платой. Первый контакт индикатора (отсчитываем слева направо в рабочем положении индикатора) является общим, остальные несколько десятков контактов – сегменты. Индикаторы от M890G пока ждут своего часа, а для Uni-T’овского дисплея была изготовлена переходная плата следующего вида:

Плата

Как видно, ничего особенного, просто способ закрепить индикатор и сделать доступными для пайки все его контакты. Та часть дорожек, которая непосредственно контактирует с индикатором (верхняя половина платы), залужена для обеспечения лучшего контакта. Плата полностью симметрична. Для определения назначения выводов использовался метод высоконаучного тыка, поскольку с документацией на такие компоненты, сами понимаете, дела обстоят довольно грустно. Для «прозвонки» можно использовать и обычный мультиметр, но, как мы уже выяснили, это не сильно полезно для индикаторов (хотя можно не обращать на это внимание при столь непродолжительном воздействии), к тому же, сегменты могут быть неконтрастными либо довольно быстро «рассасываться» (постепенное, но достаточно быстрое пропадание изображения). Поэтому была написана простейшая (даже приводить ее здесь не буду) программа для МК, которая с частотой 100Гц выдавала на два вывода контроллера противофазный меандр: одним из этих выводов касаемся первого контакта индикатора, вторым – поочередно всех остальных, записывая то, что индикатор нам показывает. Всей работы минут на пять.

Ну ладно, индикатор мы как-то подключили, что-то он у нас даже показывает, что дальше? А дальше, поскольку абстрактными изысканиями я заниматься не очень люблю, решено было изготовить на основе (или при участии? :) этого индикатора простейший комнатный термометр. Собственно, контроллер – AТmega8515, датчик – TMP101 (и то, и другое выбрано исходя из наличия), схема – на рисунке:

Схема

Конструктивно это оформлено в виде «бутерброда» из платы с индикатором и платы контроллера, на которой также установлен термодатчик; питается все от внешнего 5В сетевого адаптера (а-ля зарядник для сотового, опять же, ну вот много их у меня :) , а с батарейками не было нужды связываться). Один нюанс: по плате видно, что в данном случае мы не используем многие из сегментов ЖКИ. Такие сегменты лучше соединить с общим электродом ЖКИ, тогда на них будет синфазный с общим сигнал и они никогда не будут засвечены. Если этого не сделать, то при прикосновении к таким выводам или при существенном уровне внешних помех возможна нежелательная паразитная засветка сегментов. На плате разведен ряд дополнительных элементов (кварц, разъем питания с LC-фильтром), которые в конечной версии не используются, что видно на фотографии платы. Устройство упаковано в пластиковый корпус и вроде как вполне пристойно смотрится:

Плата


Внешний вид

Программа для МК написана на Си в среде WinAVR, тоже не отличается сложностью, занимается обслуживанием датчика по шине I2C, расчетом температуры, подготовкой данных для вывода на ЖКИ и, собственно, их выводом. Процедура вывода представляет собой инвертирование портов, подключенных к ЖКИ, в теле прерывания по переполнению таймера с частотой около 100Гц. Визуально я не увидел разницы между частотами от 50 до 400Гц, ну а поскольку рекомендаций производителя для этих ЖКИ я не знаю, остановился на 100. Прошивку с исходниками можно заполучить в конце статьи, схему и платы – там же.

Да, при отрицательных температурах термометр работать отказался по причине банального замерзания индикатора, а при температурах 1-2 градуса выше нуля что-то еще показывал, ме-е-е-е-е-дленно так обновляя показания… Ну да не беда, он все же позиционируется как комнатный.

Далее был приобретен индикатор ITS-E0808 производства Intech: габаритный размер 50.80 x 22.86 мм, видимая область 45.72 x 12.70 мм, 4,5 разряда и немножко спецсимволов: данных по нему тоже не густо, но хоть распиновку угадывать не пришлось – и на том спасибо. Этот индикатор имеет проволочные выводы и может впаиваться непосредственно в печатную плату. Поскольку выводов у него тоже довольно много, в качестве разнообразия решено было для управления им использовать сдвиговые регистры 74HC4094. 5 последовательно соединенных регистров дали искомые 40 линий управления (схему рисовать не буду: стандартное каскадное включение сдвиговых регистров можно подсмотреть во многих конструкциях на нашем сайте, так что это останется домашним заданием), управление осуществляется с помощью МК по трем проводам: Data (загружаем последовательные данные), Clock (тактовая частота) и Strobe (установка данных на выходах регистров). Плата разработана односторонней, все перемычки выполнены проволокой (обрезками от выводов резисторов). Получилась вот такая штука:

Плата

А если заглянуть под индикатор...

Внутри

Программу полностью приводить не буду, поскольку она «заточена» под конкретную макетную плату, но тем не менее, достаточный для понимания принципов работы и повторения конструкции исходник на Си доступен для скачивания в конце статьи. Да и принципы-то не изменились: теперь мы в прерывании не просто инвертируем состояние портов МК, подключенных к ЖКИ, а загружаем в регистры специальным образом подготовленные данные. Только и всего.

К преимуществам описанных ЖКИ можно отнести достаточно простое управление, контрастность изображения, а главное — низкое энергопотребление, которое открывает широкие перспективы по применению подобных индикаторов в портативных устройствах с батарейным питанием. Но об этом мы поговорим уже в следующий раз.

Файлы:
Схема термометра SPlan 6.0
Плата термометра Layout 5.0
Исходники (Си, WinAVR) и прошивка термометра
Плата для ITS-E0808 Layout 5.0
Исходники (Си) для ITS-E0808

Ну а все вопросы, как всегда, в Форум.


ID: 30

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

35 1
4 1
Подробно