Подключить lcd дисплей к компьютеру
Несколько лет назад прикупил себе LCD дисплей 4x40 с целью подключить к компьютеру и выводить на него всякое полезное. Тогда о микроконтроллерах я ещё не знал, поэтому дисплей был подключен к LPT порту по схеме и успешно работал все это время.
Программа для управления дисплеем — LCD Smartie, очень удобная и функциональная.
Когда же я занялся микроконтроллерами и собрал программатор STK200, дисплей пришлось отключить.
А потому как я к нему привык, и без него мне не удобно, было решено собрать LCD2USB, для подключения его к USB порту, к тому же, автор предлагает плагин для LCD Smartie, что для меня тоже очень важно.
Однако после сборки схемы на макете, обнаружилось несколько неприятных моментов, которые на первый взгляд незначительны, но в реальности делают невозможным использование устройства без лишних телодвижений (в особенности первый и второй).
- Устройство напрочь отваливалось после выхода компьютера из спящего режима. (В диспетчере устройств есть, но на запросы не реагирует)
- Устройство начинало работать только после такой последовательности действий:
Сначала подключаем его к usb, затем запускаем управляющую программу.
Только так и никак иначе. Если подключить его к компьютеру с уже запущенной программой, то чтобы оно заработало, надо программу перезапустить. - Русские символы выводились крякозябами.
Далее фотки процесса (кликабельны):
Схема, изменения из п.1 выделены красным. Транзистор подсветки заменен полевиком. Нумерация выводов для микроконтроллера в TQFP корпусе.
Оригинальная схема есть на сайте автора.
Заготовки для лута на фотобумаге. Плата получилась миниатюрная (2.5 x 3.5 см), двухсторонняя, для установки прямо на пины дисплея.
Бутерброд из предыдущих заготовок и текстолита, для одновременного переноса дорожек на обе стороны
До травления
После травления. Шесть круглых пяточков, для подпайки программатора. Кнопки не разведены за ненадобность.
Готовая, собранная схема (отсутствуют стабилитроны, ибо пока нет в наличии)
Ну а вот, собственно, конечный результат.
Плата в sprint layout, прошивка и плагин к LCD Smartie в аттаче, там же все исходники.
Буду рад, если кому окажется полезным.
Сопряжение LCD дисплея c компьютером, через LPT
Подключение LCD дисплея к компьютеру, не представляет не какой сложности. Этот процесс не дорогой и эффективный способ повысить функциональность вашего ПК.
Будем использовать наиболее распространенный тип LCD индикаторов с микро контроллером HD44780 или на его аналоге KS0076 или KS0066 и т.д. я использовал wh2004A-YYB-GT стоимость около 240 рублей.
Существует несколько способов подключение LCD к компьютеру, в данной статье рассмотрен наиболее простой из них: подключение к LPT по 7ми линиям управления. Это 4 линии данных, 3 линии управления, также у индикатора есть 5 выводов для подключения питания и настройки. Почему я не задействовал все 8 линии данных – потому что при написании программы я использовал стандартные 8 линий данных LPT порта (4 из которых на данные и 3 на управление), с регистрами данных я связываться не захотел.
- LCD дисплей
- 2 переменных резистора
- провод Bitronics (применяется для подключения принтера через LPT).
- Провод для подключения питания. Тут несколько вариантов откуда можно запитать девайс не прибегая к посторонним источникам питания, а используя питание от компьютера: от Molex (внутренние разъёмы питания в компьютере, используются для подачи питания на дисководы и винчестеры), от USB порта.
Выбор дисплея
Начнём с выбора дисплея, т.к. это самая важная часть нашего устройства. Он должен быть на микроконтроллере HD44780, возможны и аналоги KS0076 или KS0066…, но я с ними не проверял. Они бывают с подсветкой и без подсветки, различного цвета символов и подсветки, отличаются количеством строк и символов в строке, размером символа и корпуса…
Вот распространенные размеры дисплеев
1х10 1х16 1х20 1х24
1х40 2х16 2х20 2х24
2х40 4х16 4х20 4х40
Маркировка дисплеев фирмы МЭЛТ:
Подбор деталей
Переменные резисторы
Понадобится 2 любых переменных резистора, но лучше и целесообразнее использовать подстрочные т.к. они более компактные и после настройки дисплея вряд ли понадобятся.
Один для регулировки контрастности (примерно 10 кОм (10-36кОм), я использовал 22 кОм) и яркости подсветки дисплея (примерно 100 Ом)
Bitronics
Нам понадобится не весь кабель, а только его часть.
Провод для подключения питания.
Если конструкция располагается вне корпуса компьютера то удобнее запитаться от USB разъёма, их в компьютерах обычно много и большинство из них обычно простаивают. Приобретём USB провод формата A->B или USB удлинитель
Если конструкция будет установлена внутри компьютера (например: в отсеке 5 дюймового дисковода) то её удобнее запитать будет от MOLEX разъема
Также можно приметь любой другой источник питания выходным напряжением 5 вольт.
Приступим к сборке
Выводы на LCD дисплее могут, располагается несколькими вариантами:
1 Земля (черный провод на Molex) Земля
2 +5V (красный провод на Molex) Power
3 Земля (черный провод на Molex) Регулятор контраста дисплея. Заземление дает максимальный контраст. Для плавной регулировки используйте 10кОм подстроечный резистор.
4 Контакт 16 на LPT (Зеленый/белый провод) Выбор регистра
5 И снова земля… Селектор Read/Write. Так как мы не собираемся ничего считывать с LCD, можем смело его заземлять — это будет держать LCD постоянно в режиме Write.
6 Контакт 1 на LPT (розовый провод) Enable — Strobe
7 Контакт 2 на LPT (красный провод) Бит 0
8 Контакт 3 на LPT (желтый провод) Бит 1
9 Контакт 4 на LPT (зеленый провод) Бит 2
10 Контакт 5 на LPT (белый провод) Бит 3
11 Контакт 6 на LPT (голубой провод) Бит 4
12 Контакт 7 на LPT (пурпурный провод) Бит 5
13 Контакт 8 на LPT (розовый провод) Бит 6
14 Контакт 9 на LPT (серый провод) Бит 7
Можно воспользоваться приведённой выше таблицей, но не все провода могут быть сделаны по стандарту, поэтому лучше прозвонить.
Питание конструкции
При питание от MOLEX разъема потребуются один чёрный и красный провод (подключаться к разъёму или откусывать его и напрямую использовать провода – ваше дело).
При питании от USB потребуются два крайних вывода.
Проверка
Если конструкция была правильно собрана и подключена к компьютеру, то индикатор должен реагировать следующим образом на регулировку движков переменных резисторов:
Резистор на 10 кОм будет менять контрастность дисплея: в крайнем положении на индикаторе потемнею сегменты, в противоположном положении индикатор нечего не будет отображать;
Резистор за 100 Ом должен менять яркость подсветки дисплея.
Резисторы не должны нагреваться – если это происходит то при сборки были допущены ошибки и их следует устранить.
Программа
Существует множество программ для подключения LCD дисплея к компьютеру, но они у меня либо отказались работать, либо не понравились – поэтому была написана своя программа — AL LPT to LCD.
Комментарии ( 124 )
Понравилось.
Еще можно было сделать плату чуть шире и использовать крепежные отверстия дисплея для фиксации. Меньше нагрузки на разъем.
Думал рамочку из оргстекла сделать, оставил отверстия для её крепления.
А платка маленькая, в пинах сидит плотно.
Гм, а ты уверен, что V-USB не поддерживает спящий режим шины? Мож ты плохо гуглил? А то какое-то некрасивое решение.
Алсо, по идее, если шина ушла в спячку — следует умерить аппетит до 100мкА. Хотя на это часто забивают, особенно китайцы, ти в спящем режиме хабики и прочее все так же радуют глаз своими светодиодиками.
Не думаю, что из за этого. Было опробовано несколько устройств на V-USB. Все себя так ведут.
Решение, согласен, не самое изящное, но в данном случае другого помоему нет.
Похоже кроме меня никто этим вопросом не задавался, гугление ни к чему не привело.
Может это такой «баг» библиотеки?
Возможно просто ни одно из устройств это состояние правильно не обрабатывает. Хотя, возможно, и библиотека. А что, на официальном форуме V-USB на эту тему ничего нет?
Сломанный ноутбук или планшет бывает жалко выкидывать, тем более если у него сгорела материнка/видеокарта/процессор, а дисплей в полном порядке. В этом случае есть выход: можно подключить ЖКИ от мобильного устройства как второй/третий экран к персональному компьютеру. Лучше всего для этого подходит ЖК-дисплей от последних моделей iPad с размером 9,7" и разрешением сторон 2048х1536. Студент Варшавского университета Анджей Суровец (Andrzej Surowiec) сумел подключить retina-дисплей от iPad к ПК через DisplayPort на максимальном разрешении.
Сломанный iPad с рабочим дисплеем можно купить за смешные деньги. Более того, можно напрямую заказать эту деталь из Китая, она обойдётся примерно в 55 долларов. Так что этот трюк даже экономически выгоден: вы не сможете купить дисплей для ПК с таким разрешением ещё дешевле.
Польский студент для своего концептуального проекта купил панель LP097QX1-SPA1 производства LG. Это не эксклюзивная деталь для Apple. Кроме планшетов iPad, она ставится и в некоторые другие планшеты китайского производства.
ЖК-панель оснащается интерфейсом eDisplayPort, который пришёл на смену LVDS, и суть этого хака заключается в том, чтобы подключить eDisplayPort к стандартному DisplayPort на видеокарте персонального компьютера.
Автор не смог найти в интернете доказательства, что eDisplayPort совместим с DisplayPort, поэтому решил проверить это самостоятельно, соединив провода из кабелей через самодельную интерфейсную плату.
Самый дешёвый переходник для ЖК-панели iPad — это Molex 502250-5191 стоимостью около 7 долларов. Затем провода с каждой стороны просто припаиваются к соответствующим контактам на самодельной плате. Схему можно взять на github.
Сама электроника ЖК-панели может запитываться непосредственно через интерфейсную плату, ей нужно всего 3,3 В на 500 мА. Но для подсветки экрана требуется какой-то внешний источник питания, потому что подсветка потребляет до 4,4 Вт. Покопавшись в схемах iPad 3, автор сумел найти информацию, что подсветка экрана состоит из 12 рядов белых светодиодов по 6 штук в каждом, и все вместе им требуется источник питания на 20 В. В экспериментальной модели автор не заморачивался с красивой схемой, а просто поставил по резистору 68R на каждый катод, так что каждый ряд светодиодов тянул по 17 мА. Напряжение 20 В можно получить из пятивольтного источника через повышающий конвертер TPS61175.
Как ни странно, вся эта конструкция заработала без глюков как обычный компьютерный дисплей.
AL LPT to LCD – Программа для управления LCD дисплеем подключенным к LPT
Основная идея
Часто возникает необходимость во время работы компьютера узнать информацию о состоянии некоторых процессов компьютера, но не всегда есть возможность приостановить работу текущей программы, свернуть её, чтобы посмотреть состояние машины.
Описание
Программа поддерживает подключение дополнительного дисплея на основе микроконтроллера HD44780 через LPT порт компьютера. Интерфейс между компьютером и LCD дисплеем обеспечивается по 3 служебным линиям дисплея и по половине линии данных (4 линии из 8).
Плагины
- Часы
- CPU
- ОП
- WinAMP — Title
- WinAMP — Time
- WinAMP — Lengt
- Звук
Трафик : - Трафик входящий
- Трафик исходящий
Преимущества:
Поддерживает Windows XP, не требует установки
Недостатки:
Требовательна к процессору, малое количество плагинов
Системные требования:
Windows XP; 8МБ RAM(потребляет); установки не требует, работает сразу после скачивания; подключенный индикатор к LPT порту компьютера (на переходниках USB->LPT не проверялась) по схеме из статьи см. ссылку ниже (статья пока не готова)
Статья обновлена 9 марта 2011 года.
5 комментариев на « Сопряжение LCD дисплея c компьютером, через LPT»
А где, собственно говоря, программа?
А с 18 по 25 землю вместе спаять или можно просто оставить эти провода как на других схемах,?
Кстати 15 и 16 контакт на схеме задействованы, а описание подключения до 14. Остальные схемы найденные в интернете, так же не используют 15 и 16 контакт дисплея. Так все же они обязательны?
Комментарии ( 124 )
Понравилось.
Еще можно было сделать плату чуть шире и использовать крепежные отверстия дисплея для фиксации. Меньше нагрузки на разъем.
Думал рамочку из оргстекла сделать, оставил отверстия для её крепления.
А платка маленькая, в пинах сидит плотно.
Гм, а ты уверен, что V-USB не поддерживает спящий режим шины? Мож ты плохо гуглил? А то какое-то некрасивое решение.
Алсо, по идее, если шина ушла в спячку — следует умерить аппетит до 100мкА. Хотя на это часто забивают, особенно китайцы, ти в спящем режиме хабики и прочее все так же радуют глаз своими светодиодиками.
Не думаю, что из за этого. Было опробовано несколько устройств на V-USB. Все себя так ведут.
Решение, согласен, не самое изящное, но в данном случае другого помоему нет.
Похоже кроме меня никто этим вопросом не задавался, гугление ни к чему не привело.
Может это такой «баг» библиотеки?
Возможно просто ни одно из устройств это состояние правильно не обрабатывает. Хотя, возможно, и библиотека. А что, на официальном форуме V-USB на эту тему ничего нет?
Сломанный ноутбук или планшет бывает жалко выкидывать, тем более если у него сгорела материнка/видеокарта/процессор, а дисплей в полном порядке. В этом случае есть выход: можно подключить ЖКИ от мобильного устройства как второй/третий экран к персональному компьютеру. Лучше всего для этого подходит ЖК-дисплей от последних моделей iPad с размером 9,7" и разрешением сторон 2048х1536. Студент Варшавского университета Анджей Суровец (Andrzej Surowiec) сумел подключить retina-дисплей от iPad к ПК через DisplayPort на максимальном разрешении.
Сломанный iPad с рабочим дисплеем можно купить за смешные деньги. Более того, можно напрямую заказать эту деталь из Китая, она обойдётся примерно в 55 долларов. Так что этот трюк даже экономически выгоден: вы не сможете купить дисплей для ПК с таким разрешением ещё дешевле.
Польский студент для своего концептуального проекта купил панель LP097QX1-SPA1 производства LG. Это не эксклюзивная деталь для Apple. Кроме планшетов iPad, она ставится и в некоторые другие планшеты китайского производства.
ЖК-панель оснащается интерфейсом eDisplayPort, который пришёл на смену LVDS, и суть этого хака заключается в том, чтобы подключить eDisplayPort к стандартному DisplayPort на видеокарте персонального компьютера.
Автор не смог найти в интернете доказательства, что eDisplayPort совместим с DisplayPort, поэтому решил проверить это самостоятельно, соединив провода из кабелей через самодельную интерфейсную плату.
Самый дешёвый переходник для ЖК-панели iPad — это Molex 502250-5191 стоимостью около 7 долларов. Затем провода с каждой стороны просто припаиваются к соответствующим контактам на самодельной плате. Схему можно взять на github.
Сама электроника ЖК-панели может запитываться непосредственно через интерфейсную плату, ей нужно всего 3,3 В на 500 мА. Но для подсветки экрана требуется какой-то внешний источник питания, потому что подсветка потребляет до 4,4 Вт. Покопавшись в схемах iPad 3, автор сумел найти информацию, что подсветка экрана состоит из 12 рядов белых светодиодов по 6 штук в каждом, и все вместе им требуется источник питания на 20 В. В экспериментальной модели автор не заморачивался с красивой схемой, а просто поставил по резистору 68R на каждый катод, так что каждый ряд светодиодов тянул по 17 мА. Напряжение 20 В можно получить из пятивольтного источника через повышающий конвертер TPS61175.
Как ни странно, вся эта конструкция заработала без глюков как обычный компьютерный дисплей.
22 комментария на « AL LPT to LCD – Программа для управления LCD дисплеем подключенным к LPT»
Подключил дисплейчик по вашей схеме, заюзал вашу программу — не работает.
Пробовал и 4-строчный и 2-строчный — не работает.
Распиновку проверял, ошибок в пайке точно нет, дисплеи рабочие (переставляю в схему от куда их выдрал — работают).
Подскажите в чем может быть дело, куда копать?
Сам понимаю — ЛПТ не выводит, но он точно рабочий, у меня на нем принтер висит.
Мона вопросик: а точнее сразу гораздо лучьше СХЕМУ подключения.
Спасибо, дисплейчик заработал, правда, только с программой Smartie 5.1 , и после установки Port95NT.exe
А с вашей прогой работать отказывается, но Smartie устраивает меня по функционалу.
Добавил схему подключения. Когда размешал статью, забыл её выложить.
Спасибо ПАША, что указали на недочёт.
А я подключал по схеме из статьи про LCD дисплей, видимо по этому и не заработало с вашей программой.
Прога конечно рабочая и 4bit LCD пашет нормально но хотелось бф функционала
Программа писалась давно.
Посмотрел исходники, к сожалению, две последние версий повреждены. Если найду резервные копии, то кое-что можно будет добавить.
Как там с добавлением новых функций в прогу было бы не плохо как в Smartie спектро анализатор воткнуть да и возможность вывода более крупного шрифта было бы прекрасно. А если не жалко то скинь исходники на мыло.
Пока, к сожалению, не выйдет. Сейчас сильно занят другими вещами. Но могу вас заранее огорчить: шрифт увеличить не получиться и хороший спектроанализатор сделать не смогу, т.к. используемый индикатор является знакогенерирующим и при выводе текста возможно использование только содержащихся в нём символов.
Исходники выслать не могу.
Странно но ведь ты выводиш уровень звука а спектро анализатор можно сделать также только столбы в верх. Жаль что вы заняты.
Но тогда (при использование 4-х строчного дисплея) всего будет 4 уровня, ну 8 с землёй (хотя это будет не очень красиво), если этого будет достаточно — то тогда можно будет сделать.
Другие программы для дисплеев видел, но не пользовался.
Есть способы, что бы прошить в дисплей свои символы, но в рамках этого проекта от этой идее отказался.
По ссылке представлена интересная конструкция.
Идея подключить LCD дисплей к компьютеру по другому интерфейсу у меня не раз возникала. Сейчас, как раз, потихоньку начинаю работать с USB. Так что в планах есть подключение дисплея по USB, но не ближних.
О класно давай вместе продумывать я сам хочу разработать свой проэкт но пока штопор так как я сам в програмировании почти чайник было время когда в 90 стые я писал проги на бэйсике но щя тупо стараюсь повторить то что сделали другие но интерес сощдать своё не пропадает просто нужен умный чел который поможет и направит.
Здравствуйте,программа заработала только дисплей 1х16 делит на две строки,и при отображении любого плагина бегущая строка виснет на 3-м символе.дисплей bc161-d
можно ли как-то запустить дисплей bc1602egplwb сколько не пытался не одна программа не хочет нормально работать,идут блики по экрану и всё(
буду признателен за любую помощь.
Забыл про настройки написать:
Рядом с исполняемом файлом есть файл ini.ini
Задать размеры дисплея (количество символов по горизонтали и вертикали) – раздел Setting, поля Length_X и Length_Y.
Функционал на вкладках Программы и Строка не предназначен для одновременной работы был.
По проблемному дисплею нечего найти не удалось.
Добрый вечер, Запустил вашу программу с двухстрочным ЖК (16Х2). В общем работает, но нолевой уровень громкрсти отображается не по центру, а снесен в право на 2 знака. Пробовал менять настройки X;Y; не помогает. Дисплей: WH1602D-YYK-CTK. Заранее спасибо.
Может быть у вас смещён уровень между правым и левым каналами звуковой карты.
Стардатный контроллер.У меня 2х24 .Показывает:строка 1 часы_загрузку ЦП_ОЗУ_потом непонятно что(вернее i000)
‘строка 2 пустая только два полностью засвеченых знакоместа
Спасибо за программу! Правда на win7 не заработало какие драйвера и программы только не ставил, зато на другом древнем селероне с winXP заработало сходу без всяких драйверов! Дисплей синий с Китая qapass 1602A, подключение по 4 бит по схеме выше, резистор в цепи подсветки поставил 240 Ом. Ещё добавлю, что выводы с 18 до 25 не надо все соединять, достаточно одного из них.
Добрый день!
Подключил древний 2х-строчный дисплей WM-1602 к старинному ноутбуку с windows XP по 4- битной схеме, при включении всё заработало сразу за исключением одного: проблема такая же, как и у Руслана — индикатор уровня звука смещён на 2 знакоместа вправо и не перемешается по оси Х (по Y перескакивает, всё остальное — тоже перемещается).
P. S. Хотелось бы покопаться в исходниках, прога очень полезная.
Рис. 1. Преобразователь напряжения.
Рис. 2. Временная диаграмма передачи данных в LCD.
На рис. 2 показана самая «крупномасштабная» временная диаграмма передачи данных, изображающая передачу данных одной строки изображения. Передача происходит по фронту сигнала CLK, и сопровождается высоким уровнем сигнала разрешения данных DEN. Передача происходит в формате RGB, при этом биты Data0 — Data7 соответствуют синему цвету, Data8 — Data15 — зеленому, Data16-Data23 — красному.
Перед передачей данных строки и после передачи данных вставляются «пустые», не несущие информации импульсы CLK. Передача строки предваряется импульсом горизонтальной синхронизации HSYNC (LCD_LP).
Тактовая частота индикатора составляет 6,4 МГц (её можно уменьшить, но тогда становится заметным мерцание кадров).
Рис. 3. Временная диаграмма передачи кадра в LCD
Временная диаграмма передачи полного кадра в LCD показана на рис. 3. Передача кадра начинается с 13 «пустых» строк, далее следуют 240 строк с изображением, после которых опять идут «пустые» строки. Передача кадра начинается с импульса вертикальной синхронизации.
Также подключим к микроконтроллеру резистивный сенсор. Описание этого подключения будет приведено ниже.
Полную схему подключения индикатора к микроконтроллеру я приводить не буду, в силу ее очевидности, приведу лишь таблицу соответствия выводов индикатора и пинов контроллера.
Таблица 1. Соответствие сигналов LCD и выводов контроллера
Рис. 4. Платы макета устройства
Рис. 5. Макет устройства (частично собран)
Рис. 6. Макет устройства в сборе
Теперь, когда всё подключено, можно приступить к написанию кода. Первое, что нужно сделать, это сконфигурировать и протестировать внешнюю SRAM память:
Теперь записываем в ROM тестовую картинку и копируем ее в RAM:
Рис 7. Тестовая картинка
Рис. 8. Результат работы.
Подключение резистивного сенсора
Рис. 9. Схема подключения резистивного сенсора к микроконтроллеру.
Идея, лежащая в основе такого подключения, состоит в следующем. Каждый вывод микроконтроллера может находиться в одном из следующих состояний: выход с логическим 0, выход с лог. 1, вход (т. е., фактически, неподключенный вывод), и вход, подтянутый к напряжению питания через резистор. Выводы YU и XL могут также служить входами АЦП.
Вся процедура определения координат нажатия может быть условно разделена на три фазы. В первой фазе выводы, к которым подключен сенсор, находятся в следующем состоянии: (рис. 10).
Рис. 10. Определение координат нажатия. Фаза 1.
При замыкании пленок сенсора на вход микроконтроллера поступает сигнал лог. 0, и программа переходит к фазе 2, определению x-координаты нажатия (рис. 11). Затем следует фаза 3, определение y-координаты. (рис. 12).
Читайте также: