Проект под кодовым названием "БИНАРНЫЕ ЧАСЫ ARDUINO"

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY
Ответить
idealsoul
Сообщения: 26
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва
Контактная информация:

Проект под кодовым названием "БИНАРНЫЕ ЧАСЫ ARDUINO"

Сообщение idealsoul »

В процессе создания своего робота нашлась свободная неделя. Как известно, "Природа не терпит пустоты" (Аристотель), вот и захотелось сделать что-то простое и быстрое. То есть что-то, что легко изготовить. Идей было куча, радиоприемник, андронный коллайдер и кипятильник я отмел сразу, осталось заняться часами. И не простыми, а бинарными. В таких часах время отображается в двоичном коде (1100 - 12, где 1 - горящий светодиод). В сети есть куча примеров, в основном ручные. На такой уровень я пока не способен, поэтому получились , так сказать, карманные.

Теперь детально...

Используемые компоненты:
- ATmega328 в TQFP корпусе с загрузчиком Arduino;
- кварц на 16 МГц, два конденсатора на 22 пФ, один резистор smd на 10 кОм;
- часовая микросхема реального времени RTC DS1307;
- часовой кварц 32,768 кГц;
- SMD резисторы на 3,3 кОм (11 шт.) и 4,7 кОм (5 шт.);
- SMD светодиоды красные (4 шт.), желтые(3 шт.), белые(3 шт.) и синие(4 шт.);
- две батарейки типа "таблетка" на 3 В размером 1620 и одна 1632;
- кнопка;
- какой-нибудь самодельный (подходящий) корпус.

Вот как выглядят часы в сборе и изнутри:
фото 1 обзорное.jpg
фото 1 обзорное.jpg (356.62 КБ) 19983 просмотра
Алгоритм работы.

Батарейка 1632 на 3 В питает часовую микросхему DS1307 и та беззвучно "тикает" в полуспящем режиме, отмеряя дату и время, но ни кому ничего не сообщает. Производитель утверждает, что микросхема верно "считает" время и дату до 2100 года, а на "таблетке" способна работать несколько лет. Меня это устраивает вполне. ))) В это время ATmega328 отключена от питания и индикации времени нет. В момент нажатия на кнопку питание с двух "таблеток" 1620 (3+3=6В) подается на ATmega328 и DS1307, оба включаются на полную. На одной ножке часовой микросхемы ежесекундно происходит смена состояния с низкого на высокий и обратно, к этой ножке подключен светодиод 7, которые мигает, показывая, что часы идут. ATmega328 опрашивает часовую микросхему DS1307 по поводу времени и даты, которые, затем, отображает в двоичном коде. Красные светодиоды 3,4,5,6 - часы 0-12 (значение месяца 1-12), желтые светодиоды 8,9,10 - десятки минут 0-5 (десятки дней 0-3), синие светодиоды 11,12,13,14 - единицы минут 0-9 (единицы дней 0-9). Сначала часы отображают время в 12-часовом формате, одновременно светодиоды 1(после полудня) и 2 (до полудня) показывают время суток. Через 5 секунд часы переходят в режим отображение даты (день, месяц). Еще через 5 секунд отображение прекращается, мигает только светодиод, показывающий ход часов. Для повторного просмотра времени нужно отпустить и нажать кнопку.
Для удобства считывания значений на обороте корпуса есть подсказка. Если использовать часы регулярно, то необходимость в подсказке отпадает.

Вот пример отображения времени 19 часов 42 минуты:
фото 3 время.jpg
фото 3 время.jpg (299.12 КБ) 19983 просмотра
А это отображение даты 19 августа:
фото 2 дата.jpg
фото 2 дата.jpg (303.88 КБ) 19983 просмотра
Внешний вид устройства оставляет желать лучшего, но ведь и времени ушло всего несколько дней с момента задумки и до окончательной сборки.
В результате эксплуатации часов на протяжении 2 недель выяснилось, что от качества кнопки многое зависит, иногда переходные процессы при нажатии приводят к сбою в программе и время не отображается. Наверное, еще и питание 6В (с копейками) сказывается.
Но главное не это... Главное, что работает!
Конечно, нужно отметить, что пользы от этих часов крайне мало. Время узнавать по ним весьма сложно и не очень-то удобно. Но эффект, производимый внешним видом часов на моих знакомых стоит потраченного времени и сил на изготовление. )))) Еще ни одни не угадал, что это за штука, пока я не рассказал сам. Но даже после этого во взгляде было недоверие и осторожность. ))))))) Полное непонимание. )))))) Эх...

Дальше будет лучше....
Последний раз редактировалось idealsoul 28 дек 2013, 09:53, всего редактировалось 1 раз.
Проживи эту жизнь счастливо и получи вторую в подарок!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Бинарные часы на ATmega328 ("Arduino Uno")

Сообщение Mr.Kubikus »

Класс! А на руке их носить можно?
С уважением, Григорий
GitHub FB ВК
idealsoul
Сообщения: 26
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва
Контактная информация:

Re: Бинарные часы на ATmega328 ("Arduino Uno")

Сообщение idealsoul »

Хотел было предусмотреть петельки на плате для ремешка, но это уж совсем странно будет. )))) Хотя, модернизировать корпус проще простого. Вот если кто купить такое захочет, то буду выпускать в двух вариантах - на ремешке на руку и на цепочке в карман. ))))
Проживи эту жизнь счастливо и получи вторую в подарок!
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Бинарные часы на ATmega328 ("Arduino Uno")

Сообщение Mr.Kubikus »

В результате эксплуатации часов на протяжении 2 недель выяснилось, что от качества кнопки многое зависит, иногда переходные процессы при нажатии приводят к сбою в программе и время не отображается.
Может быть такое поведение связано с "дребезгом" контактов кнопки в момент нажатия? Есть разные алгоритмы для подавления этого эффекта. Например, такой.
С уважением, Григорий
GitHub FB ВК
idealsoul
Сообщения: 26
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва
Контактная информация:

Re: Бинарные часы на ATmega328 ("Arduino Uno")

Сообщение idealsoul »

Я уверен, что глюки связаны с дребезгом, но программным путем дребезг не убрать, ведь микроконтроллер в момент дребезга только включается. И если он все же включился, значит дребезг уже позади. Была мысль впаять конденсатор 0,1 мкФ между +5В и GND, но заранее не планировалось, и теперь нет места для конденсатора. А вот параллельно кнопке впаять могу, может поможет. Сегодня попробую.
Проживи эту жизнь счастливо и получи вторую в подарок!
cotonec
Сообщения: 1
Зарегистрирован: 01 фев 2014, 23:17

Re: Проект под кодовым названием "БИНАРНЫЕ ЧАСЫ ARDUINO"

Сообщение cotonec »

а можешь печатку скинуть хочу попробовать собрать
Ответить