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 запрещен)

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

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

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий
На ардуино переход на лето/зиму нельзя напрограммить?
раскрыть ветку (9)
Автор поста оценил этот комментарий

Можно все! 😎

Только предполагались часы вообще без кнопок - раз включил и на всю оставшуюся жизнь ;)

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

На ds1302 нельзя без кнопок и коррекции хода. У них время плывет ойойой.А выходы адруинки такими семисегментниками вы не боитесь попалить?

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

Попалить оригинальную атмегу трудно, но можно, правда не в этой схеме.

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

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

Я, честно говоря, не понял, в чем проблема. Варианты: устанавливать время по gps, wifi (ntp-сервера), кнопками, по синезубу. Все решения имеют свои плюсы и минусы. В плате точности показаний также хвалят ds3231, правда, я с ней не работал.

DELETED
Автор поста оценил этот комментарий
Можно тогда синхронизацию с гпс/ГЛОНАСС встроить
раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Не.. Не надо. Гпс/глонасс - это надо открытое небо и как минимум от 3х спутников запеленговаться. Еще там приемник гигагерцовый. Проще RDS на FM ловить, или сейчас можно служебку DVB-T2 с первого мультиплекса брать. Там и частоты меньше и декодинг проще.

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

Антену поближе к окну выставил вот тебе и приём. При этом точному времени от GPS я доверяю. Там атомные часы плюс отвественность выше (на GPS очень много систем завязано, а следовательно им приходится отвествено подходить к работоспособности системы). А вот всяким теле и сотовым сетям доверия нет. Я уже сталкивался с тем, что по сотовым сетям передавалось время минут на 40 отличающееся от реального.


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

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

Ага! А зачем? у меня часы две недели работали рядом с образцовыми и за это время даже на секунду не ушли в сторону! Батарейка служит 10 лет, да за это время индикатор выгореть успеет ;)

Тут весь цимус в простоте и дешевизне.

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