Реклама ⓘ
Главная » Arduino
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Arduino и динамические индикаторы

Недавно столкнулся с тем, что нужный мне датчик для Arduino уже прибыл из Китая, а цифровой индикатор задержался. И неизвестно, сколько еще он пробудет в пути. Немного поразмыслив и вспомнив, сколько индикаторов на старых ненужных платах лежит в моей кладовке, было принято решение выпаять и задействовать один из них. Беды ничего не предвещало – план действий был простой и обычно безотказный: выпаять детальку, посмотреть маркировку, вбить ее в гугл, прочитать документацию и, собственно, подключить на макетной плате для теста. Но все, кроме первого пункта, оказалось не так просто, как я предполагал.

В качестве подопытного был выбран образец из блока управления микроволновкой. Индикатор был 4-х-разрядный, по работе микроволновки помню, что светился он приятным зеленым светом и имел посередине точку (даже две, как потом оказалось!). Т.е. устраивал меня по функциональности и выглядел довольно стильно. На его переднем крае я прочитал марку: MD-EG80EPE. Отлично, выпаиваем! Отпаяв индикатор, я понял, что меня ждала еще одна неожиданность: он всеми ногами четко вставал в макетную плату. Но на этом приятные бонусы закончились. Найти разводку этого устройства в гугле у меня не получилось – максимум ссылки на продажи блоков управления микроволновками, где он использовался. Немного загрустив, переключился на другие индикаторы, но результат поиска даташитов к ним оказался схожим, вне зависимости от типа устройства и где оно использовалось. Загрустив совсем, вернулся к выпаянной штуковине, взял в руки блок питания с килоомным ограничительным резистором на выходе и начал попарно перебирать контакты индикатора. Все оказалось просто: 5 левых верхних контактов отвечали за выбор позиции цифры (или точек посередине, + питания), остальные верхние – за выбор сегмента (- питания). Два нижних контакта не использовались:

Что ж, линии выбора сегмента подключим – к D1-D7 и A0, а выбор позиции – к D8-D12 ардуинки. Сказано – сделано. Была написана функция outDigit (тестовый код будет целиком ниже) для вывода нужных мне символов. Каждый отдельный символ выводился отлично, но неудача меня постигла при попытке вывода сразу нескольких символов: они выводились одинаковыми, поскольку выводы выбора сегмента были общими. Тогда я задумался о предназначении двух нижних выводов: может быть они выбирают и фиксируют набор выбранных сегментов при подаче на них значений от нуля до трех. Но нет, чуда не случилось. Но ведь он работал в микроволновке, с выводом разных 4-х-разрядных значений. Как?! Да все гениальное просто – как телевизор, покадрово. Сначала выводим первую цифру, очищаем, потом вторую, очищаем и т.д. С высокой частотой. Так и сделал. Работает отлично. Датчик подключил.

В заключение хочу сказать, что почти все остальные индикаторы, которые у меня есть, работают на том же принципе, только ножки другие. В общем, не выбрасывайте их, они подключаются за пару минут с мультиметром в режиме прозвона или простым пробником (5+ вольт с резистором). Еще немного хочу добавить по коду: если цифра 1 светится ярче, чем, например, 8, то в выводе цифр надо добавить микросекундные задержки, пропорциональные количеству горящих сегментов. Для моего индикатора это не принципиально, но для некоторых старых моделей это не лишено смысла. Поскольку экран индикатора должен обновляться динамически, то функцию delay стоит заменять на функцию outNumber, где точность по времени не сильно критична. Либо повесить отображение на прерывание, статей на эту тему много.

Удачи в творческих экспериментах!

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (5) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
DJ_DL #
На narodstream-е ещё в ноябре 2016 года уже была написана статья AVR Урок 11. Динамическая индикация. Ардуинщики нынче пошли...
Ответить
+2

[Автор]
popoveo #
Эту статью я не видел, но дело не в этом. Динамическая индикация была известна очень давно, еще до появления самих индикаторов. Дело в том, что "ардуинщики нынче" просто бросают делать устройство, если не имеют стандартных схем подключения модуля или библиотеки, хотя можно элементарно определить ножки и функционал, и написать алгоритм обработки самостоятельно. Знаю ни одного такого знакомого. Конкретный пример - SSD1306, когда еще не было для него библиотеки (а вообще для I2C уже были) - люди просто откладывали модуль в долгий ящик, не зная, как к нему подступиться. Для таких начинающих и предназначена статья. Это, скорее призыв не бояться пробовать что-то новое, чем руководство.
Отредактирован 26.09.2020 05:36
Ответить
+1
kotto #
Если это статья о динамической индикации, то она плохая, объективно плохая, в ней ничего не рассказывается
Ответить
0

[Автор]
popoveo #
Плохо читали. Выше комментарий - динамическая индикация здесь ни при чем.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
UNI-T UT-61A Квадрокоптер Syma X11
вверх