Во время бурного развития электроники и повсеместного внедрения во все устройства TFT экранов может показаться странным и мезозойским покупка светодиодного 7ми сегментного индикатора, но для своего проекта я искал именно его. Почему и как он мне продинамил мозг я хочу поделиться в этом кратком обзоре. Желающих прошу подкат.
В одном из моих проектов, а именно в контролере управления электродуховкой, для визуализации интерфейса требовалось использование какого-то экрана. Так как устройством будет «рулить» моя бабушка, которой уже под девятый десяток, то интерфейс должен быть максимально простым, интуитивно понятным и наглядным. Потому экраны с изменяемым углом обзора и всемозможными меню и мелким текстом были исключены сразу. Главные параметры в управлении устройством — это температура и время работы. Соответвенно температура 3 знака и время столько же, плюс несколько дополнительных знаков. Прогуглив я быстро нашет то что нужно было — 7 сегментный индикатор на контролере фирмы MAXIM — MAX7219.
Индикатор состоит из двух матриц с 4мя 7ми сегментными светодиодными индикаторами.
Цвет свечения — красный. Индикаторы припаяны к плате на обратной стороне которой установлен сам контролер MAX7219. Характеристики контролера можно посмотреть
здесь.
Потребление самого дисплея:
PeakCurrent=(8 x LedCurrent) + MAX72XX-Supply
PeakCurrent=(8 x 20mA) + 10mA = 170mA
Плата имеет отверстия для установки штыревого разъема — с одной стороны для подключения к контролеру, с другой — для подключения еще такого же индикатора. Получается паравозиком друг к дружке можно подключить до 15 таких устройств (вроде так если я чего не напутал). Подключение — 5 проводов: 3 провода управление, 2 провода питание.
Мне разъем не нужен, потому я индикатор подключил припаяв куском IDE шлейфа — очень дешевый и гуманный способ продления «жизни» старым компьютерным комплектующим.
Платформа работает на базе Arduino и для работы экрана была использована библиотека «LedControl.h»
Библиотека достаточно простая, имеет некоторые ограничения на отображение символом, но на то она и библиотека ;) Описание и возможности библиотеки можно прочесть
здесь.
Библиотека леко устанавливается через Arduino IDE, там же в примере LCDemo7Segment можно подсмотреть подключение и вывод информации на индикатор.
Все просто и красиво если бы небольшой казус. У меня индикатор работал как то не стабильно. При изменении информации на экране могли хаотично зажигаться какие то сторонние сегменты или же индикатор мог просто отключиться. Я долго не мог понять в чем дело. Пересмотрел и переписал код, перемерил напряжение питания и сигналов — все было в норме. В коде я уменьшил частоту вывода информации на экран — это помогло, экран работал стабильнее. Но все-равно в какой то момент экран мог отключиться. У меня уже было желание выбросить этот экран и поставить старый проверенный ЖК 16х2.
Сегодня утром на свежую голову я еще раз почитал описание
библиотеки и обратил внимание на схему подключения. Вернее на часть текста:
Both capacitors must be placed as near as possible to the V+ and the Gnd pins of the MAX72XX.
На моей плате был лишь один керамический конденсатор.
Прозвонив и выяснив полярность цепи питания к которой подключен этот конденсатор, я паралельно ему подпаял первый попавшийся электролитический конденсатор (47mF x 50v).
Экран заработал отлично без малейших сбоев и выключений. Эврика!!! ©
Вот уже весь день экран работает на максимальной яркости и без задержек обновления, а мой проект движется к завершению.
Потому имейте ввиду если будете использовать аналогичный контролер и возможно такие же казусы, теперь Вы осведомлены и вооружены.
Товар не предоставлен магазином, потому пришлось покупать за свои без применения П. 18.
Всем отличного здоровья и минимального delay.
PS
КЫШ ОТ МОНИТОРА — НА УЛИЦЕ ЛЕТО!!! ;)
И в данном случае не так важен обзор, а то как этот товар полечить в случае его применения.
ТТХ присутствуют в открытом доступе и кому нужно будет тот их увидит.
все же что с потреблением у предмета обзора?
В описании библиотеки в пункте Power supply issues ттх описаны не китайцами.
А зачем они Вам можно поинтересоваться?
ЗЫ: у меня потребление всего устройства с индикатором 12В 40мА.
PeakCurrent=(8 x 20mA) + 10mA = 170mA
это измерено на данном конкретном индикаторе при питании от +5?
общего у них только контроллер, вклад которого невелик.
Standard Led's and 7-Segment displays are often rated with a DC forward current of 25-30mA. Limiting to 20mA would make a good choice.
wayoda.github.io/LedControl/pages/hardware.html
какой еще «стандартный»… что, за чушь? ток определяется сопротивлением, напряжением питания и падением на диоде (может еще и скважностью). что тут «стандартного»?
не хотите измерять — так и напишите, но не надо всякие левые цифры давать.
На какой яркости?
В каком режиме отображения индикатора?
Потому я привел Вам данные которые указаны разработчиками библитеки, а также даташит на контролер. Если этого мало — посмотрите еще даташит на индикаторы. Там все точно указано ;)
И тогда поймете где чушь.
Как в старом советском анекдоте:
— можете порезать сто грамм колбасы?
— приносите — порежем…
Опять же тут многие бухтят мол это сайт о покупках, а не поделок ардуино потому я привел именно описание этого индикатора и его укрощение, чего в сети я не нашел. Возможно это еденичный случай но я на его потратил два вечера.
На чисто ардуинных сайтах — тяжело. Туда надо только когда задачу какую-то решить назо.
Относительно обзора устройства, то возможно он и появится если я успею его сваять.
Дело в том что духовка находится за полторы сотни километров от меня и как только я закончу magic box так он сразу уедет на свадьбу с духовкой.
В общем там ничего сверхестественного: обозреваемый экран отображает температуру и время работы, изменение показателей 20ти шаговым энкодером. пищит в некоторых режимах и держит температуру. Измерение температурой при помощи термопары с MAX6675.
+ кнопка с тремя предустановленными параметрами температура/время.
Повторюсь, это нужно не для того, чтобы повторить ваш девайс, а чтобы подчерпнуть идеи и концепции. В этом сила «сделайсама»!
От меня плюс!
было бы интересно глянуть на эту конструкцию и повторить.
Ну и аккуратно уложить платы в коробочку.
Тогда уже можно будет и сделать обзор всего устройства если это кому то будет интересно.
www.ti.com/lit/ds/symlink/uln2003a.pdf
High-Voltage Outputs: 50 V
Коробка будет находиться рядом с духовкой в температуре окружающей среды.
,
Может, сейчас что то более приличное и появилось (хотя и вряд ли), но тогда тот же С кушал память, как свинья помои.
Ребята из соседнего отдела пробовали на С — в результате я им напаял эмулятор ПЗУ на 64 кБ — и им все равно не хватило.
Это были те времена, когда флешь-памяти программ не было — или ОТП или с УФ стиранием.
Так что только хардкор :)
Сейчас проще: 32х разрадные контроллеры с кучей памяти по пять рублей ведро. Ардуины, чтоб светодиодом мигать, и т.д.
У меня на первой РС памяти было… не помню сейчас, сколько, то ли метр, то ли два, но ДОС летала.
А сейчас не хватает памяти — значит, повысим системные требования.
То же самое и с контролерами: мне всегда хватало на 51-м 2к программ и 2к данных — один раз пришлось расширять память данных, просто не влезали данные по 16-ти обрабатываемым входным каналам.
Писать проги для любого контроллера не зная его архитектуры — не есть правильно, а иногда просто невозможно.
Писал как то код для младшего SHARC, там ассемблер весьма специфический — зная архитектуру, можно сократить время выполнения программы в разы.
При правильном построении обработки за один такт может выполняться до четырех команд — но надо знать и понимать.
А когда мне умные люди (я тов программировании самоучка) подсказали пару финтов — вроде длина кода увеличилась, а скорость выполнения выросла еще раза в два.
Так что надо знать и понимать архитектуру.
Если, конечно, планируется делать что то более серьезное, чем моргание светодиодами…
Как раз думал, чем ИВ-11 управлять. А эти микросхемы у меня даже есть.
И какой размер индикаторов?
Display Scan Rate 8 digits scanned
MIN TYP MAX
500 800 1300
Hz
А так микросхема удобная конечно.
У Вас просто особенное зрение(2кГц увидеть), я бы на Вашем месте за докторскую сел ;)
Или в Вашем шиме нет 2к или так 2к размазано на весь индикатор.
И как понять «размазано»? Индикация статическая, т.е. загорается и гаснет полностью весь индикатор (аноды все соединены и управляются P-канальным полевиком)
Не путайте, во-первых там есть инерция, во-вторых соседние кадры никогда не меняются резко по яркости. Если вам показать последовательно серию из чёрного кадра и белого кадра вы тоже увидите.
Увы у меня все гораздо хуже. может потому и не мерцает.
Во всем есть свои плюсы :)
А вот когда как на всяких микроволновках, меньше 100Гц — тут беда :)
2000гц ВЫ КТО и ОТКУДА из ящеров???
Я имею в виду те, в которых по нескольку последовательно включенных светодиодов на сегмент?
1.8" напрямую подключал
mySKU.me/blog/taobao/35487.html
В мониторе СО на ардуине этот экран тухнет через 5-10 минут и всё, думал брак и поменять пора, а сейчас просто кондёр припаяю.
Вот значит еще немного миллионов нервных клеток спасено. Так невольно почувствую себя брюсомвылисом )))
mySKU.me/blog/aliexpress/33686.html
Трудится уже год, проблем с индикатором не было
Подошел более опытный товарищ, пару раз ткнул осцилом и показал бяку при разводке питания.
Вторые грабли — когда начали применять ПЛИС Altera, там в даташите было прописано: блокировать каждый вывод питания мелкосхемы (а их там чаще заметно больше двух — штук 6, 8 и т.д.) кермикой.
Но мы же грамотные — зачем так много?
Пара месяцев ушла на то, что бы понять: не дурак писал даташиты…
С тех пор ремонт цифры при неустойчивой работе (и не только) начинаю с проверки питания осцилом…
А тут вполне понятно: питание на индикатор подано довольно хлипким проводом, а потребляемый ток изменяется весьма резко.
Так что, скорее всего, можно было продублировать питание двумя проводами с приличным сечением, и можно было бы обойтись без электролита.
Потому на цепи питания я обратил внимание в последнюю очередь.
Просто, видимо, нигде не прописали минимальное сопротивление питающих проводов…
Провода ведь в комплект не входят?
Дополнительно сделал программный ресет экрана каждые 30 сек.
Пока работает.
У меня одна программа работала на эмуляторе (аппаратном) без проблем, но не работала в реальном контроллере.
Каким макаром помогло дополнительные шесть после инициализации всего нутра перед телом основной программы — до сих пор не знаю.
16-ти разрядный брат MCS'51-го :)
mySKU.me/blog/taobao/35487.html
Обнаружил, что сбивается режим микросхемы из-за помех. Конденсаторы спасали но не до конца
Поставил в цикле (0.5 сек, мигание точек) такую функцию:
Теперь максимум — разок мигнет индикатор, потом восстанавливается
Дополнительно еще установил по питанию керамику 0.47мФ, но все-равно раз за сеанс работы (подключил коробку к духовке — уже печет хлеб) экран засыпало мусором.
Добавил в скрипт
if (millis() — previousMillis_c5 > 30000) {
previousMillis_c5 = millis();
lc.clearDisplay(0);
}
Пока проблем нет. Возможно на этом и остановлюсь.
Светофильтр — вдвое сложенная полоса из пет бутылки.
По-моему получилось хорошо.