вторник, 13 марта 2018 г.

ИН-12Б и Arduino. Начинаем собирать часы на газоразрядных индикаторах.

Газоразрядный индикатор ИН-12Б

Добрый день:).

"Может быть сделать на них часы?" - этот вполне предсказуемый вопрос задал я самому себе, случайно наткнувшись в одной из пыльных коробок на газоразрядные индикаторы ИН-12Б. И также сам себе ответил: "конечно!". Давно хотел собрать что-нибудь просто так, "для души", и светящиеся часики подойдут для этого идеально:)


Впрочем, пока непонятно как пойдет дело. Сам по себе проект несложный, но он "для себя", а значит, всегда будет находиться что-то более нужное, срочное, важное.... О всех подвижках буду рассказывать вот такими же, как этот, фотоотчетами. Подробно останавливаться на технической стороне дела не стану. Если возникнут вопросы - спрашивайте, с удовольствием отвечу :).

А началось все с них:

Газоразрядный индикатор ИН-12Б

Газоразрядные индикаторы ИН-12Б. Способны отображать 10 цифр от 0 до 9 и, вроде бы, точку. "Вроде бы" - потому что я так это и не проверил :). 

Управление индикаторами очень простое. На общий анод лампы подается напряжение 150 - 170 В. А катод цифры, которую необходимо "зажечь", подключается к минусу источника. Вот и все! 

Газоразрядный индикатор ИН-12Б

Очевидных сложностей две:

1. Нужен источник высокого напряжения (150 - 170 В).
2. Нужны ключи управления высоковольтными сигналами на катодах индикаторов.

Первую задачу временно решил откопав в ящике с прототипами макет импульсного повышающего стабилизатора. Его я собирал для экспериментов с ламповыми схемами, но так и не пристроил к делу. 

Примечание: схему источника обязательно приведу в следующей заметке. 

С ключами также не возникло сложностей: решил поставить высоковольтные транзисторы MPSA44. Они давным-давно лежали у меня без дела и ждут своего часа. Потом может быть заменю их на что-нибудь помельче.

Примечание: а еще можно воспользоваться специализированными дешифраторами - К155ИД1. 

Подключается все просто:

Схема управления газоразрядным индикатором ИН-12Б 

Каждой цифрой управляет свой транзистор. А вот так это выглядит на макете.

Макет схемы управления газоразрядным индикатором ИН-12Б

Мне нравятся эти разноцветные провода - очень удобно и красиво :)

Красивые проводочки :)

Кстати, их разъемы типа "мама" идеально подошли на ножки газоразрядного индикатора:

Подключение газоразрядного индикатора ИН-12Б

После того как с управлением индикатором все стало ясно, пришла пора подумать о "мозгах" часов. Может быть, чтобы выглядеть умнее, стоило выбрать серьезный контроллер, и воспользоваться профессиональными средствами разработки и отладки... Или пойти еще дальше и применить ПЛИС. Но я решил рискнуть навлечь на свою голову критику профессиональных программистов и воспользоваться ARDUINO. Простая среда разработки и простые аппаратные средства - именно то, что нужно для простого и нетребовательного ни к скорости, ни к ресурсам проекта:).

"Железо" копеечное: клон платки ProMini с контроллером ATMega328 на борту и преобразователь USB-UART. А больше, пока, ничего не нужно:

Arduino ProMini и преобразователь USB-UART

Модуль МК расположил на той же макетной плате и подключил к транзисторам управления:

Arduino ProMini на макете часов на газоразрядных индикаторах ИН-12Б


Немного о динамической индикации

У меня есть микроконтроллер, десять управляемых им транзисторов и один индикатор. Все в порядке, только индикаторов для часов маловато:). Нужно еще три. Но прежде чем их добавлять я решил выяснить как лучше это сделать.

Ставить по десять транзисторов на каждый из индикаторов - плохая идея. Во-первых, это дорого, во-вторых, габаритно и в-третьих, у контроллера для управления ими просто не хватит ножек (понадобится 40 штук).

Лучше организовывать динамическую индикацию, используя десять транзисторов для управления всеми индикаторами поочередно, и выбирая нужный индикатор подачей на его анод напряжения. 

Со светодиодными индикаторами этот прием работает отлично, но будет ли он также эффективен с газоразрядными? Я не знаю. Переключение индикаторов должно происходить очень быстро, и вдруг за это время разряд не будет успевать зажечься? Вот это то и нужно проверить прежде чем двигаться дальше.

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

Что из этого получилось - на видео:

   
Все отлично! Хотя индикатор и погашен большую часть времени - это не заметно. Кстати, если немного изменить частоту включения/выключения, то связанное с нею мерцание, все также незаметное для глаза, станет отлично заметным на видео:


Вывод: динамическая индикация работает. Теперь можно смело подключать недостающие индикаторы и схему управления анодными напряжениями. Но об этом в следующий раз :)

С уважением, Константин М.

Буду рад пообщаться с Вами в соц.сетях :). Мой аккаунт на G+ и на Faсebook'е.
И в наших сообщества: на G+, на FB и VK
Присоединяйтесь! )