Тел. (495) 972-27-12

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

Обсуждаем Arduino, Raspberry Pi и другие электронные компоненты и проекты DIY

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

Сообщение idealsoul » 19 авг 2013, 21:42

В процессе создания своего робота нашлась свободная неделя. Как известно, "Природа не терпит пустоты" (Аристотель), вот и захотелось сделать что-то простое и быстрое. То есть что-то, что легко изготовить. Идей было куча, радиоприемник, андронный коллайдер и кипятильник я отмел сразу, осталось заняться часами. И не простыми, а бинарными. В таких часах время отображается в двоичном коде (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


Алгоритм работы.

Батарейка 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


А это отображение даты 19 августа:

фото 2 дата.jpg


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

Дальше будет лучше....
Последний раз редактировалось idealsoul 28 дек 2013, 09:53, всего редактировалось 1 раз.
Проживи эту жизнь счастливо и получи вторую в подарок!
idealsoul
 
Сообщения: 26
Изображения: 0
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва

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

Сообщение Mr.Kubikus » 19 авг 2013, 21:48

Класс! А на руке их носить можно?
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

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

Сообщение idealsoul » 19 авг 2013, 21:51

Хотел было предусмотреть петельки на плате для ремешка, но это уж совсем странно будет. )))) Хотя, модернизировать корпус проще простого. Вот если кто купить такое захочет, то буду выпускать в двух вариантах - на ремешке на руку и на цепочке в карман. ))))
Проживи эту жизнь счастливо и получи вторую в подарок!
idealsoul
 
Сообщения: 26
Изображения: 0
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва

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

Сообщение Mr.Kubikus » 19 авг 2013, 22:03

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


Может быть такое поведение связано с "дребезгом" контактов кнопки в момент нажатия? Есть разные алгоритмы для подавления этого эффекта. Например, такой.
С уважением, Григорий
GitHub FB ВК TW
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
 
Сообщения: 880
Изображения: 49
Зарегистрирован: 22 окт 2010, 23:57
Откуда: Москва

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

Сообщение idealsoul » 20 авг 2013, 07:27

Я уверен, что глюки связаны с дребезгом, но программным путем дребезг не убрать, ведь микроконтроллер в момент дребезга только включается. И если он все же включился, значит дребезг уже позади. Была мысль впаять конденсатор 0,1 мкФ между +5В и GND, но заранее не планировалось, и теперь нет места для конденсатора. А вот параллельно кнопке впаять могу, может поможет. Сегодня попробую.
Проживи эту жизнь счастливо и получи вторую в подарок!
idealsoul
 
Сообщения: 26
Изображения: 0
Зарегистрирован: 29 ноя 2012, 17:33
Откуда: Москва

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

Сообщение cotonec » 01 фев 2014, 23:24

а можешь печатку скинуть хочу попробовать собрать
cotonec
 
Сообщения: 1
Зарегистрирован: 01 фев 2014, 23:17


Вернуться в Arduino и Ко. ♥♥♥



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron