Подключение и использование ЖК сегментного индикатора
- Войдите на сайт для отправки комментариев
Вс, 09/12/2012 - 08:08
Привет всем.. нашел в закромах сегментный жк индикатор с контроллером HT1621B
Подключил по статье китайцев, но показывает пока только статичные сегменты
#include "HT1621.h" #define DATA_PIN 2 #define WR_PIN 13 #define RD_PIN 4 #define CS_PIN 5 HT1621 ht1621(DATA_PIN, WR_PIN, RD_PIN, CS_PIN); void setup() { Serial.begin(9600); if (! ht1621.begin()) { Serial.println("Could not init device!\n"); } //degrees celsius // ht1621.writeMem(1, 0b1000); // ht1621.writeMem(2, 0b1011); } int i = 0; void loop() { ht1621.writeMem(0, 40); // ht1621.writeMem(1, 0x1100); // ht1621.writeMem(2, 0xfe); // ht1621.writeMem(3, 0x7e); // ht1621.writeMem(4, 0b1111); // ht1621.writeMem(5, 0b1111); // ht1621.writeMem(6, 0b1111); // ht1621.writeMem(7, 0b1111); ht1621.writeMem(6, 40); // ht1621.writeMem(6, 41); // ht1621.writeMem(1, 13); // Serial.println(i); // i++; // delay(20000); }
как запустить индикацию в динамике - ?
Это понятно но как допустим запустить отображение
к примеру
lcd.print(millis() / 1000);
те сформировать из сегментов цифру
Добрый вечер!
Интересно, получилось ли запустить индикатор?
А то и у меня таких парочка валяется (от старых кассовых аппаратов). Хотелось бы как-то их пристроить в дело.
Кто в теме, отпишитесь, пожалуйста!
Конечно получилось.
Только что вам писать?
Хотелось бы узнать источник вышеприведенного кода, схему подключения, описание библиотеки HT1621. Попытки поиска в сети дали скудные результаты. Видимо, довольно редкий контроллер. Прошу прощения за, может, наивные вопросы.
Я не волшебник - я только учусь...(С)
Пример, библиотека, как подключать понятно из примера.
Спасибо, Макс!
Завтра попробую раскурить тему.
Вопрос подключения ЖК от ККМ для меня тоже очень интересен.
У самого пока ничего не вышло.
Вот ссылка на схему моего модуля идикации от ЭКР 2102
Вопрос подключения ЖК от ККМ для меня тоже очень интересен.
У самого пока ничего не вышло.
Вот ссылка на схему моего модуля идикации от ЭКР 2102
И не выидет, если будете пытаться использовать "родной драйвер дисплея" собранный на микроЭВМ КР1820, потому как какой там протокол обмена знает только тот кто его придумал.
Сейчас на руках модуля нет, но там стоит HT1621+ плюс дополнительные элементы (1 транзистор и резисторы)
Следующим шагом планирую все отрезать, оставив лишь индикатор и HT1621
А зачем тогда ссылку левую дали?
Я подключал дисплей от 130-го меркурия (у byteman наверное он и есть), на этом драйвере, все работает, но очень криво (я бы даже сказал через ж..пу) разнесена память по сегментам, поэтому "плюнул на него" и выбросил.
Макс есть твой пример чет не могу разобратся как сегменты задавать
Доброго здоровья, уважаемые единомышленники!
С праздником Победы!
Символично, что именно в такой день получилось написАть о том, как я всё-таки "победил" это злополучное устройство - плату ЖК индикатора от старого ЭКР-3102 на контроллере HT1621B (тип самого ЖКИ установить не удалось, да и не очень-то хотелось :), обычный 8-разрядный с децимальными точками в каждом разряде). Вот он, красавец:
и
С "наскока" заставить его работать так, как я хотел, не получилось ;( пришлось немного повозиться.
Итак, я хотел, подключив данное устройство к Ардуине, с помощью несложных команд типа "позиция-цифра" выводить на индикатор нужную информацию. Для реализации задуманного пришлось изучить даташит на контроллер HT1621B
http://www.alldatasheet.com/datasheet-pdf/pdf/96976/HOLTEK/ht1621b.html
схему подключения его к ЖКИ
https://dl.dropboxusercontent.com/u/70315839/HT1621_LCD.tif
а также библиотеки HT1621.h и HT1621.cpp:
http://code.google.com/p/wirejungle/source/browse/trunk/libraries/HT1621/HT1621.cpp
В результате получилась небольшая программка, смысловым "стержнем" которой является функция writeDigit(pos, val), где pos - номер позиции 1...8 (слева направо), а val - цифра или знак, который требуется там отобразить.
Вот скриншот работающей программы вывода 4-значного числа, полученного с аналогового входа 0 (если, как у меня, вход не подключен, выводит "шумовые" случайные числа):
В скетче есть кое-какие поясняющие комментарии. Извиняйте, что на русском языке. Я не думаю, что данное устройство доступно где-нибудь за пределами русскоязычного пространства. Хотя там и без комментариев всё понятно.
Может быть, нужны какие-то пояснения по десятичной точке. Дело в том, что каждая точка "привязана" к своему знакоместу, и отобразить её независимо от цифры нельзя. Поэтому для отображения цифры с точкой пользуйтесь функцией writeDigitPoint(pos, val).
Символ "минус" в массиве констант находится под номером 16, пробел - под 17, поэтому отображать их надо через writeDigit(pos, 16) и writeDigit(pos, 17) соответственно.
Всё работало на версии Arduino 0022. На более поздних не проверял.
Всем успехов, ещё раз с праздником!
PS: Не пинайте сильно, если где чего не так. Буду очень рад, если поступят ещё какие предложения по улучшению и усовершенствованию.
Спасибо! Вечером попробую. Отпишусь.
Да, забыл сказать о подключении:
Провода с номерами 5 и 6 (маркировка на разъёме) извлекаются из фишки, "одеваются" в синюю и красную термоусадку и втыкаются в "-" и "+" Ардуины соответственно. А провода с номерами 1...4 подключаются соответственно к портам 2...5 Ардуины. На фотке видно.
Может потребоваться небольшая подстройка напряжения регулировки контрастности, т.к. +5 вольт, выдаваемые Ардуиной, могут немного отличаться от тех +5, которыми ЖКИ питался раньше.
А вот скетч для отображения миллисекунд во всех 8-ми разрядах, как спрашивал VovaRino:
Здравствуйте всем! У меня в закромах валяется такой-же индикатор от экр2102. Хочу его тоже запустить. Но пишу на бейсике. Не могли бы рассказать "на пальцах", как его инициализировать. Т.е. какие команды подать на 1621,прежде чем выводить информацию на экран. При включении сразу выводить не получается. Спасибо.
Лучше, чем написано в фирменном даташите (ссылку на него ищите выше в посте #14), рассказать "на пальцах" Вам не сможет никто. В-частности, там на стр. 14 приведены временнЫе диаграммы команд управления, а на стр. 18-19 - список всех доступных команд. Я пользовал штатную библиотеку HT1621.h/HT1621.cpp. Естественно, на С++. Что касаемо Бейсика, я помню его только 25-летней давности (ZX-Spectrum) и вряд ли он имеет много общего с современным Бейсиком. По крайней мере, мне было проще изучить С++, чем пытаться переучиваться со старого Бейсика на новый.
Ну это понятно. Пишу в БаскомАВР, команду в 1621 я могу послать. Вопрос как его заставить работать с данным индикатором. Какой BIAS включать?. библиотеки нет, поэтому делаю так shiftout bias, shiftout sys_en, shiftout lcd_on. После чего включаются все сегменты. При команде lcd_off он отключается. Если отправляю команду b101000111111111......(т.е. обращаюсь к озу с адреса(), и заношу туда еденици, ну или нули(пробовал по разному)) - реакции нет. Что ещё я не включил, какой мультиплекс у индикатора?
А посмотрите схему, она в отличном качестве; хорошо видно, что используются 3 линии COM (COM0, COM1 и COM2) и 24 линии адреса сегментов (с 8 по 31). Там же приведена таблица посегментной распиновки ЖКИ. Например, чтобы отобразить цифру "0", скажем, в 3-м разряде, надо по адресам 14, 15, 16 (0b01110, 0b01111, 0b10000) записать соответственно 6, 12, 6 (0b0110, 0b1100, 0b0110).
Таким образом, для того чтобы включились все сегменты, надо последовательно (хотя не обязательно по порядку) по адресам с 8 по 31 записать все единицы (0b1111). Почему у Вас сразу после команды инициализации включаются сразу все сегменты, я не знаю. Могу только посоветовать попробовать поизменять напряжение управления контрастностью (вывод 16 контроллера).
Может кому понадибится.
Моя моделька этого индикатора для Proteus.
http://kazus.ru/forums/showpost.php?p=691031&postcount=1539
Спасибо! Кстати На этом контроллере есть ещё индикатор от ккм "Меркурий 130" . В нём 10 знакомест, нет чёрточек и размер всего блока- размер индикатора. Я такой уже заюзал.
Не завёл, пробывал 0022 ругается и не компилит...
ЗАвёл. Не скажу, что с первого раза.
https://www.youtube.com/watch?v=OKxM_Um8YhQ
Я даже немного доработал
тоже давно валялся данный дисплей,стало интересно-заведется или нет - запустился!!! надо будет изготовить что нибудь из измерительного,темпер или вольтметр или часики сделать...
по поводу последнего дисплея я уже находил проект часов на мега8
Вот ссылка http://sxem.org/forum/chasy/298-chasy-na-zhki-ht1621b?start=75
В протеусе работает эта прошивка TC_ATM8_LCD1621B1
как ее прицепить в среду Ардуино подскажите в этом я ещё новичек
хотелось бы ещё что-нибудь сделать с этим индикатором