Недавно столкнулся с тем, что нужный мне датчик для Arduino уже прибыл из Китая, а цифровой индикатор задержался. И неизвестно, сколько еще он пробудет в пути. Немного поразмыслив и вспомнив, сколько индикаторов на старых ненужных платах лежит в моей кладовке, было принято решение выпаять и задействовать один из них. Беды ничего не предвещало – план действий был простой и обычно безотказный: выпаять детальку, посмотреть маркировку, вбить ее в гугл, прочитать документацию и, собственно, подключить на макетной плате для теста. Но все, кроме первого пункта, оказалось не так просто, как я предполагал.
В качестве подопытного был выбран образец из блока управления микроволновкой. Индикатор был 4-х-разрядный, по работе микроволновки помню, что светился он приятным зеленым светом и имел посередине точку (даже две, как потом оказалось!). Т.е. устраивал меня по функциональности и выглядел довольно стильно. На его переднем крае я прочитал марку: MD-EG80EPE. Отлично, выпаиваем! Отпаяв индикатор, я понял, что меня ждала еще одна неожиданность: он всеми ногами четко вставал в макетную плату. Но на этом приятные бонусы закончились. Найти разводку этого устройства в гугле у меня не получилось – максимум ссылки на продажи блоков управления микроволновками, где он использовался. Немного загрустив, переключился на другие индикаторы, но результат поиска даташитов к ним оказался схожим, вне зависимости от типа устройства и где оно использовалось. Загрустив совсем, вернулся к выпаянной штуковине, взял в руки блок питания с килоомным ограничительным резистором на выходе и начал попарно перебирать контакты индикатора. Все оказалось просто: 5 левых верхних контактов отвечали за выбор позиции цифры (или точек посередине, + питания), остальные верхние – за выбор сегмента (- питания). Два нижних контакта не использовались:
Что ж, линии выбора сегмента подключим – к D1-D7 и A0, а выбор позиции – к D8-D12 ардуинки. Сказано – сделано. Была написана функция outDigit (тестовый код будет целиком ниже) для вывода нужных мне символов. Каждый отдельный символ выводился отлично, но неудача меня постигла при попытке вывода сразу нескольких символов: они выводились одинаковыми, поскольку выводы выбора сегмента были общими. Тогда я задумался о предназначении двух нижних выводов: может быть они выбирают и фиксируют набор выбранных сегментов при подаче на них значений от нуля до трех. Но нет, чуда не случилось. Но ведь он работал в микроволновке, с выводом разных 4-х-разрядных значений. Как?! Да все гениальное просто – как телевизор, покадрово. Сначала выводим первую цифру, очищаем, потом вторую, очищаем и т.д. С высокой частотой. Так и сделал. Работает отлично. Датчик подключил.
В заключение хочу сказать, что почти все остальные индикаторы, которые у меня есть, работают на том же принципе, только ножки другие. В общем, не выбрасывайте их, они подключаются за пару минут с мультиметром в режиме прозвона или простым пробником (5+ вольт с резистором). Еще немного хочу добавить по коду: если цифра 1 светится ярче, чем, например, 8, то в выводе цифр надо добавить микросекундные задержки, пропорциональные количеству горящих сегментов. Для моего индикатора это не принципиально, но для некоторых старых моделей это не лишено смысла. Поскольку экран индикатора должен обновляться динамически, то функцию delay стоит заменять на функцию outNumber, где точность по времени не сильно критична. Либо повесить отображение на прерывание, статей на эту тему много.
Удачи в творческих экспериментах!
Прикрепленные файлы:
- MD-EG80EFE.ino (4 Кб)
Комментарии (5) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
[Автор]
[Автор]