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

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

Сей пробел по мере сил я немного осветил ;)

ARDUINO часики с динамической индикацией Arduino, Программирование, Arduino Nano V3, Длиннопост

Схема часов предельно простая - 4-х разрядный 7-ми сегментный дисплей, собранный на суперярких 1,5" дюймовых индикаторах с общим анодом FYS-15011BD-11. В каждом сегменте индикатора стоят по 2 последовательных светодиода.

Аноды идут соответственно на выводы А2-А5 (в скетче они зовутся 16-19), катоды через резисторы 220 Ом. Ток получается мизерный, а яркость в вечернее время даже чрезмерной.

Я сначала на точку поставил тоже 220 Ом, но она светится значительно ярче, потому надо поэкспериментировать с большим номиналом, в схеме уже стоит 470 Ом.

Катоды идут с D2 до D9 - шесть выводом относятся к PORTD и два к PORTB. Скорее всего можно задействовать весть PORTD на вывод, включая 0 и 1 выводы, на плате обозначаются как выводы последовательного порта, индикатор по идее мешать прошивке не будет. Но я тестировал программу с выводом в последовательный порт, поэтому не задействовал их.


В качестве часов реального времени выбрана DS1302 (впрочем я собираюсь все возможные протестировать). На схеме видно что куда подключать.

Для начальной установки точного времени нужно найти и раскомментировать в коде строчку :


// rtc.setTime(12, 00, 0); // Set the time to 12:00:00 (24hr format)


Естественно поставив нужные значения времени в формате часы : минуты : секунды, после первого запуска опять нужно убрать строку под комментарий и еще раз загрузить скетч. В противном случае время будет  при каждом включении часов начинать отсчет с выбранного времени.


Код с использованной библиотекой реального времени https://yadi.sk/d/PirwXVqzB-1nRw

ARDUINO часики с динамической индикацией Arduino, Программирование, Arduino Nano V3, Длиннопост

Вот так оно выглядит вживую.

ARDUINO часики с динамической индикацией Arduino, Программирование, Arduino Nano V3, Длиннопост

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

ARDUINO часики с динамической индикацией Arduino, Программирование, Arduino Nano V3, Длиннопост

А вот такой корпус будет у этих часиком, корпус от советских электромеханических часов Слава, ну точнее не сам корпус, а декоративные элементы.


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

Arduino & Pi

1.4K поста20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Херовая идея подключать сверхяркий 7сегментник к ардуине напрямую.

Между ардуиной и резисторами поставьте хотя бы шинный формирователь типа 74xx245 или 74xx244. А лучше вобще 8 транзисторов в режиме ключа-повторителя.

Ибо суммарно-максимальный ток у вас 22*7 мА, а это для выводов ардуины много... Что сказывается на ее ресурсе.

раскрыть ветку (15)
Автор поста оценил этот комментарий

Откуда вы взяли такое потребление? Напомню индикатор большой, светодиоды последовательно, почти 4В, резистор 220 ом, у меня получается в среднем 5мА на весь индикатор...

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

I=U/R на выводе мк если замкнуто накоротко будет 20мА.

Падение напряжения сегмента у этого индикатора - почти 5 В, что эквивалентно КЗ.

Динамическая индикация = импульсный режим.

С учетом что тестер проводит измерения примерно 3 раза в секунду, среднее потребление будет маленьким, а вот моментальное, может быть большим.


Учитывая эффекты при переключении, на фронтах сигналов может наблюдаться не слабый переходный процесс... Усугубив паразитной индукцией, и температурным изменением ВАХ светодиодов в индикаторе - скачок на фронтах сигнала может быть значительным...


Для понимания - лучше конечно посмотреть падение напряжения на выводах ардуины при помощи осциллографа.)))

Приложил фотки осциллограм, похожих на случай динамической индикации... Много импульсов, и фронт этих же импульсов...


А буферок все же добавьте с панелькой "кроваткой" для DIP корпуса... Если чтото с индикатором будет не так, то сгорит буфер за 50 рэ, а не ардуина за 600.


(на днях брал в лабазе, срочно надо было)

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (2)
1
Автор поста оценил этот комментарий
питание ардуины 5 В. падение на сегменте, как говорит тс, 4 В. отсюда падение на резисторе - 5-4=1 В, что на резисторе 220 Ом даст меньше 5 мА.
итого при всех засвеченных сегментах через ардуину потечет меньше 40 мА. напомню, атмега 168 допускает 40 мА на вывод порта (запас более чем восьмикратный) и до 200 мА на вывод питания (запас более чем пятикратный).
единственный тонкий момент - питание разрядов. они тоже питаются от ардуины и в импульсе могут потреблять около 40 мА, т.к. питают по восемь сегментов. вот тут я бы поставил усилители даже несмотря на одноразовость устройства. либо - параллелить выводы через резисторы.
кстати, ардуина, которой хватит для этой поделки, стОит около стольника. ставить буфера на сегменты при такой цене - напрасная возня
Автор поста оценил этот комментарий

Вы видимо совсем редко сталкивались с электроникой фирмы ATMEL. Есть популярная схема часов на ATMEGA8, в которой между индикатором с контроллеров вообще нет светодиодов! И это работает годами, при пониженном напряжении, но работает. Суть в том что как-то атмел призналась что в 8-ках хоть как изгаляйся, но больше 40 из одного порта не поднять... Так что даже закоротив (что мы конечно делать в реале не будем, хотя ардуинки у нас гораздо доступнее буферных мелкосхем) ничего не случится ;)

Впрочем это я читал лет 10 назад, и про 8-ки, 328-х тогда было просто не достать и али не рассылали все бесплатно по миру 😍

Автор поста оценил этот комментарий

а там вроде до 50 mA по каждому выводу?

раскрыть ветку (10)
2
Автор поста оценил этот комментарий

Если мне не изменяет память то 40, а не 50. Но помимо ограничения порта каждого порта есть суммарное ограничение по всем портам. Грубо говоря если у тебя 100500 ног это вовсе не значит что все 100500 ног могут одновременно выдать 40мА. Если мне не изменяет память, то в сумме там может быть 200 или около того мА. Причем это с учётом собственного потребления чипа.

Автор поста оценил этот комментарий

Не более 40 мА на ногу, но не более 200 мА через чип, т. е. сумарно.

Учитывайте, что сам чип тоже жрет. Причем не мало...по моей практике порядка 10 мА.

// уточнил в даташите на atmega328, с сайта microchip

раскрыть ветку (8)
Автор поста оценил этот комментарий

UPD: В общем схема предлагаемая ТСом по току "на пределе"

раскрыть ветку (5)
Автор поста оценил этот комментарий

У меня потребление ВСЕМ индикатором не превышает 5 мА ! Что на порядок меньше паспортных параметров. Сам в шоке 😉

раскрыть ветку (4)
Автор поста оценил этот комментарий

Что то ты явно не так считаешь. От 5 мА даже один сегмент не будет ярко светиться. А ты наверное одновременно можешь сразу несколько сегментов зажигать.

раскрыть ветку (3)
Автор поста оценил этот комментарий

Судя по калькуляторам, на сегмент больше 5 получается. А вот БП с амперметром мне говорит что все меньше чем в 10-ку укладывается (нижний порог у усб ампер/вольтметра)

Впрочем пока разбирался с плохим контактом часов, нашел что напряжение на выходе +5 ардуины (идет на часы) всего 4,6В.


Можно поставить транзисторы в анодные цепи, так многие делают, хотя у самого контроллера есть внутренние резисторы и ограничения по току (сведениям не менее 10 лет и про младшую версию контроллера)

раскрыть ветку (2)
Автор поста оценил этот комментарий

Что то ты явно не правильно считаешь. Ибо большой яркий светодиодный индикатор с током потребления менее 10мА это из разряда фантастики.

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

Блин как все запущено! Молодой человек! запомните Ардуино на чипах фирмы ATMEL, а MicroChip - это совсем из другой оперы!

раскрыть ветку (1)
Автор поста оценил этот комментарий

Молодой человек!

В январе 2016 года фирма Microchip покупает Atmel за 3,56 млрд долларов.

См. microchip.com


Мамкины ардуиншики! Блин! Даже не знают какая контора клепает кристаллы для их ДиАйВаев!

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку