Куток

Обкладинка для допису VFD Годинник з Індикатора Покупця
Ілля
Ілля

Додано

VFD Годинник з Індикатора Покупця

Індикатор Покупця

Дисплей покупця, індикатор покупця, індикатор клієнта, назв багато, але суть одна - це саме той "ламповий" дисплейчик який в багатьох магазинах відображає для Вас багато інформації, на кшталт решти, суми до сплати, позиції яку Ви купуєте, і тд. Через оновлення обладнання, банкрутство магазинів, і ще купу різних причин, такі дисплейчики дуже часто опиняються на смітниках, в гіршому для нас випадку, або на вторинному ринку, і це, як не дивно, кращий для нас випадок, так як по перше не зростає кількість електронних відходів, а по друге - дає можливість нам купити такий дисплейчик, і, наприклад, зробити з нього годинник :)

Подібні теми мабуть нетипові для данного сайту, тому в данній статті я пропоную лише познайомитись з одним з таких дисплеїв. До речі, українського виробництва! А якщо комусь подібна тема буде цікава, то я з радістью поділюсь усім необхідним для того щоб повторити такий проект(наразі він нажаль дуже сирий та заточений саме під мене).

ІКС-Л-2х20

ІКС-Л-2х20

Як нам каже сам виробник (ТОВ "ІКС-Техно"):

Індикатор "ІКС-Л-2х20" (IKC-L-2-20) призначений для роботи у складі блокових реєстраторів розрахункових операцій будь-якого призначення. Індикатор виконує функцію прийняття та відображення інформації та є пасивним пристроєм щодо РРО, у складі якого працює.

Він живиться від 9В до 27В, та сприймає команди по протоколу RS232. Коли ми чуємо RS232, то в голові одразу виникає образ COM або Serial порту, але в цьому дисплеї замість нього - RJ11.
Пропоную поглянути, що нас чекає всередині!
Величезний дисплей!
А всередині нас чекає дуууже великий(особливо після дисплеїв типу 1602) символьний вакуумно-люмінісцентний індикатор! "Символьні" дисплеї, це такі дисплеї, в котрих заздалегідь обозначено місце під кожний символ. Цей дисплей наприклад має, 2 лінії по 20 символів. Кожен символ являє собою двовимірний масив пікселів. Зазвичай це 5х8, але в нашому випадку - 5х7. Проте не вийде малювати там будь-що (поки що). Є певна таблиця символів, котрі дисплей може виводити. І в цьому криється ще один плюс конкретно цього, українського дисплею, адже так як він був розроблений для українського ринку, він вміє виводити українські літери! Так, в китайських дисплейчиках типу 1602 це можна зустріти доволі нечасто. Символьну таблицю для цього дисплею ви можете побачити в паспорті цього дисплею за ЦИМ ПОСИЛАННЯМ, або нижче:

Символьна таблиця для ІКС-Л-2х20

Так, це всі символи які може вивести цей дисплей. Насправді можна ще програмувати свої, але судячи з всього, в цьому дисплеї цього не реалізували, а свою прошивку я ще не написав(але планую!).
Дисплеєм полюбовались, тепер подивимось що там позаду нього.

Купа мікросхем

А позаду нас чекає ціла купа мікросхем! Потикавши в них мультиметром, і пошукавши даташити пару десяток хвилин, я зрозумів що є що, тому зараз розповім і вам.

Основні блоки дисплею

PT6314LQ-009

PT6314LQ-009

Це драйвер, який і керує самим дисплеєм. Якщо подивитись на фотографіях вище, можно помітити, що від самого дисплею на плату йде дуже багато виводів/контактів. І от щоб керувати дисплеєм з великою кількістю контактів, потрібна мікросхема з великою кількістю контактів :D
PT6314LQ це назва самої мікросхеми, а от 009 - це вже номер модифікації, від якої залежить та сама символьна таблиця, наприклад якщо б тут було 001, то символи були б зовсім інші, а саме англійські + японські. Але цікаво що про 009 в даташиті на цю мікросхему немає жодної інформації, як і будь де. Можливо це було якесь приватне замовлення лише для подібних дисплеїв від цього виробника, хто зна. Тому єдина інформація про символьну таблицю є в паспорті до цього дисплею. Ну і тепер також тут :)

Atmega8A

Atmega8A

Це мікроконтролер. Це такий собі мікро комп'ютер, сюди залили певний код, і він виконує певні функції. А саме - обробка команд які приходять по RS232, і комунікація з драйвером, щоб драйвер виводив на дисплей саме те що нам потрібно. Саме цю мікросхему треба замінити на інший мікроконтролер, з іншим кодом, і тоді можливо на дисплей можна буде виводити нові символи, і робити ще низку прикольних речей. Можливо мікроконтролер можна і не міняти, адже на платі навіть є виводи для програмування мікроконтролеру.

Піни програмування

Але це може не спрацювати якщо на мікроконтролері стоїть захист від запису/читання. Або якщо в решті решт не вийде написати код, то для відновлення роботи дисплею знадобиться дуже багато зусиль. Тому краще експериментувати на окремому мікроконтролері, щоб в разі невдачі, просто впаяти на місце старий.

ST232C

ST232C

Задача цієї мікросхеми одна - вона є сполучною ланкою між RS232 та мікроконтролером. Справа просто в тому, що щоб не вбити мікроконтролер, на нього слід подавати не більше 5В. А в RS232 часто гуляє напруга набагато(по міркам мікроконтролеру) вища, тому ST232C перетворює "високовольтні" команди на звичні для мікроконтролеру.

063AC

063AC

Ну і сама нецікава, але не менш важлива мікросхема. Вона займається перетворенням напруги. Справа в тому, що якщо подати 9В на цей дисплейчик, то цього буде забагато для мікроконтролеру, але замало для самого дисплею. Тому тут на платі 2 такі мікросхеми, та що зліва на загальному фото(DC-DC Step Down) - понижує напругу до напруги живлення мікроконтролеру, а та що справа(DC-DC Step Up) - підвищує напругу для дисплею.

Виводимо дані!

З мікросхемами розібрались, але як же тепер на нього вивести хоч щось? Тут є 2 шляхи. Перший - просто підключити його до Serial порту(якщо він у вас ще є звісно) за допомогою дроту RS232-RJ11. Порт в мене є а от дроту немає, тому я пішов другим шляхом - випаяти ST232C.

Демонтаж мікросхеми

Після таких манипуляцій ми зможемо напряму підключитись до ліній RX/TX мікроконтролеру, і посилати на нього дані, наприклад за допомогою іншого мікроконтролеру або USB-UART перехіднику. Адже вони вже не будуть посилати "високовольтних" команд, це будуть або 3.3В, або 5В.
Ну а інформація щодо вигляду самих даних, є вже у паспорті дисплею:
Кожной символ ASCII передається:

  • – 1-м стартовим бітом;
  • – 8-ма інформаційними бітами;
  • – 1-м стоповим бітом;
  • – без контролю парності

Якщо Ви програмуєте мікроконтролер в середовищі Arduino IDE, або наприклад PlatformIO, то для англійських і багатьох інших символів це просто Serial.print(); Baud Rate, або швидкість Serial-у, кому як зручно, повинна бути 9600. З українськими символами вже складніше, тут нам допоможе таблиця символів про яку ми говорили раніше. Давайте наприклад знайдемо там символ У. Це стовбець 9, і рядок 3. Тому щоб вивести символ У, нам треба зробити Serial.write(0x93); А для символу Ї наприклад це буде Serial.write(0xF4); І тд.
Після виводу хоча б декількох символів, ви скоріш за все зіткнетеся з необхідністю перемістити курсор. Наприклад щоб перекрити раніше написані дані, або ще для чогось. Команда на пересування курсору зазначена в паспорті на цей дисплей:

Команда для пересування курсору

Для цього я реалізував таку просту функцію. Звісно можна було ще заморочитись щоб вона приймала не байт, а інт, але мені і так годиться.

// byte place from 0x31 to 0x58 (1-40)
void setCursorVFD(byte place)
{
    //                        EOT  SOH      P           ETB
    byte cursor_position[] = {0x04, 0x01, 0x50, place, 0x17};
    Serial.write(cursor_position, sizeof(cursor_position));
}
Увімкніть повноекранний режим Вийти з повноекранного режиму

І нажаль це все. Більше ніяких команд в паспорті не зазначено! Навіть команди для очищення дисплею! Для цього довелося городити ось такий жах:

void clearVFD()
{
    setCursorVFD(0x31);
    Serial.print("                                        ");
    setCursorVFD(0x31);
}
Увімкніть повноекранний режим Вийти з повноекранного режиму

Це звісно і є основним приводом для того щоб переписати код в мікроконтролері дисплею. Все таки драйвер підтримує очищення, і очистити дисплей буде набагато швидше і доречніше ніж друкувати 40 разів ' '! Перш ніж робити такі висновки, що команди немає, я звісно багато чого перепробував - і команди від аналогічних японських дисплеїв, і команди іншого дисплею від "ІКС-Техно", але всюди мене чекала невдача. Я навіть написав онлайн листа до "ІКС-Техно", з проханням надати можливо якийсь більш детальний паспорт чи типу того, але відповіді поки що не було. Єдине що я знайшов, це команду на перевірку дисплею. Коли на дисплей будуть виводитись різноманітні символи, щоб переконатись що дисплей справний, і горять лише ті пікселі, які повинні горіти. Але то не цікаво.

Годинник!

Але, не зважаючи на все це, дисплеєм можна користуватись! Повертаючись до того, з чого ми починали - годинник.

Годинник
Годинник
Реалізацій можна придумати безліч, і навіть додати відображення погоди! Якщо мікроконтролер підтримує технологію Wi-Fi.

Погода

Але як я і казав, проект дуже сирий, і заточений під мене, так як я використовував там бракований RTC модуль, щоб його не викидати. Але якщо ця тема Вам буде цікава, я залюбки напишу дуже докладний гайд виду "Купив, спаяв, запрограмував", щоб кожен бажаючий міг зробити собі такий годинник, або ще щось! Все таки тут вже є корпус, і коштує це щастя на ОЛХ не дуже багато. Я наприклад купував за 375 грн.
Але якщо хтось хоче прямо зараз цим зайнятись, не чекаючи поки я зроблю гайд, то при винекнинні будь яких питань - можете писати мені, я залюбки вам допоможу чим зможу!

Не тільки годинник!

Але не лише для годинника можна використовувати цей дисплей. Все таки це після наших манипуляцій майже звичайний символьний дисплей. Тому і робити з ним можна все, що зазвичай роблять з китайськими символьними LCD дисплеями. Головне щоб символів вистачало ;)

Кімнатний термометр, годинник, погодна станція, вольтметр, амперметр, відображувач навантаження ОЗП, ЦП, Відеокарти і тд.
Навіть лічильник підпсників для ютуб каналу зробити можна :D

Привіт Ternox ;D
(Історична фотографія, коли на каналі "Твій Семпай" ще немає мільйонів підписників)

Топ коментарі (3)

Звернути
 
yonabeef_dev profile image
yonabeef

Дуже мила штука

Звернути
 
__67b8a3b8a profile image
Вадим Титаренко

а, можна весь код купив 3 таких ындикатора

Звернути
 
__67b8a3b8a profile image
Вадим Титаренко

Гарний матеріал, дякую.

Куток

Підписуйтеся на наші соціальні мережі:
Telegram
Twitter
Facebook


Тепер у нас також є Youtube канал!