Главная » Микроконтроллеры
Призовой фонд
на январь 2017 г.
1. 1000 руб.
Radio-Sale
2. Регулируемый паяльник 60 Вт
Паяльник
3. 600 руб.
От пользователей
4. Тестер компонентов LCR-T4
Паяльник

Похожие статьи:


Двоичные часики на ATmega8

Двоичные часы – это часы показывающие время в двоичном (бинарном) виде.

В двоичной системе счисления используются только два числа (0 и 1), в отличии от десятичной, которой принято пользоваться людьми.

Так, например, время 11:33.06 в двоичной системе счисления будет выглядеть так: 1011 : 100001 : 000110

Индикация времени в данных  часах осуществляется светодиодами,

при этом свечение светодиода означает 1, а отсутствие свечения - 0.

Двоичные часы - это хорошее средство для обучения счету в уме детей, приобщения их, в некой игровой форме, к информатике, математике, электронике и программированию.

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

Так как у меня завалялось около десятка микросхем ATmega8 в DIP-корпусе, её было и решено использовать в этом устройстве.

Принципиальная схема представлена на следующем рисунке:

Принципиальная схема часов

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

Для питания часов я решил использовать зарядное устройство с USB-разъемом, с напряжением на выходе 5 Вольт.

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

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

Микроконтроллер и вся обвязка (благо ее не много) был распаян навесным монтажом, от нужных ножек контроллера был припаян шлейф к светодиодам. Все это тоже вставилось в кабель канал, и было приклеено. Под кнопки сбоку были просверлены два отверстия, кнопки также приклеены. С помощь скотча и лазерного принтера были сделаны все необходимые надписи на корпусе.

Дабы не травмировать психику пользователей и не оторвать чего либо во время разборки данной конструкции фото “потрохов” я выкладывать не буду, а приведу лишь фото и видео работы законченного устройства. Часики были повешены вертикально на стену, над компьютерным столом ребенка.

Ну и в заключении расскажу как установить правильное время, все очень просто,

после нажатия кнопки  “mode”, светодиоды, отвечающие за показания часов, начнут мигать. Кнопкой “set” необходимо установить нужное время. Последующие нажатия на кнопку “mode” приведут к редактированию показаний минут и затем секунд.

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

Если микроконтроллер новый, то фьюзы можно оставить по умолчанию.

Он тактируется от встроенного RC-генератора на частоте 1МГц.

На всякий случай приведу скрин, как должны быть выставлены фьюзы.

В прилагаемом архиве содержится исходный код в WinAVR, файл прошивки и проект в программе Proteus.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U1 МК AVR 8-бит
ATmega8A-AU
1 Поиск в FivelВ блокнот
Q1-Q3 Биполярный транзистор
S8550
3 Поиск в FivelВ блокнот
X1 Кварцевый резонатор32768 Гц1 Поиск в FivelВ блокнот
C1, C3 Конденсатор100 нФ2 Поиск в FivelВ блокнот
C2 Электролитический конденсатор47 мкФ1 Поиск в FivelВ блокнот
R1-R3 Резистор
4.7 кОм
3 Поиск в FivelВ блокнот
R4 Резистор
10 кОм
1 Поиск в FivelВ блокнот
Светодиод16 Поиск в FivelВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.9 Проголосовало: 1 чел.

Комментарии (13) | Я собрал (0) | Подписаться

0
hardbar #
Супер часы с не правельным ходом времени.
По схеме atmega8 тактируется часовым кварцем, а в описании она работает на заводских настройках.
Ответить
0

[Автор]
Pavel #
На заводских настройках работает внутренний тактовый генератор микроконтроллера, а таймер работает в асинхронном режиме и тактируется от часового кварца.
Ответить
0
hardbar #
Так и нужно было написать, а то такой как я, будет устраивать допросы.
Ответить
-1
black #
Ну наконец-то хоть кто-то обошелся одним МК для подсчета времени! А то даже в простейших часах ставят отдельную МС для счёта времени... Когда в МК можно реализовать куда больше возможностей, хотя бы ту же коррекцию хода.
Ответить
0
hasl #
Не путайте. Микросхемы времени ставят для автономности. А не ставят их, если у контроллера есть вход под батарейку. Как то так
Ответить
0
Antares #
Не обязательно, я резервировал питание своих часов на ATMega8 батарейкой, хотя у этого МК и нет выхода под батарейку - погружал его в глубокий сон, а асинхронный таймер на часовом кварце продолжал идти и будить МК каждую секунду. Ионистора на 0.22Ф хватает на 12 часов (пока напряжение на нём упадёт с 5 до 3.3Вольт).
Ответить
0

[Автор]
Pavel #
Не обязательно контроллер должен иметь вход под батарейку, можно поставить ионистор и детектор напряжения питания (делитель, на вход АЦП или компаратора контроллера), и при пропадании питания МК переводить в спящий режим.
Ответить
0
Zecher #
Дело не только в автономности микросхемы RTC, но и автоматический подсчёт времени, даты, дня недели с учётом разной продолжительности годов и месяцев! Программно реализовать это в МК геморно. А без достойного RTC, часы - не часы, а детская игрушка.
Ответить
0

[Автор]
Pavel #
Программно реализовать RTC, нет особого гемора. Для AVR есть апноут AVR134_Real Time Clock. Там уже все написано, достаточно вставить код в обработчик прерывания таймера работающего в режиме RTC.
Ответить
0
black #
Полностью согласен, к тому же реализовать можно куда больше чем в МС RTC, например лунный календарь, будильники, напоминалки, синхронизацию из вне и т.п. Я реализовывал часы на ATmega168A, он есть еще меньше ATmega8. Делал следящий дозиметр, а часы там жизненно необходимы для подсчета дозы, так при работе DC-DC высоковольтного и фоновой радиации устройство работает 2-3 месяца на одной подзарядке. Просто обычно если даже часы батарейные, то в любом случае индикатор съест львиную долю энергии.
Ну и экономически, на стоимость одной МС RTC можно купить 2 МК. Станите в последствии разработчиками коммерческой продукции - поймете что такое экономия. Т.к. сэкономив в схеме даже дешевую детальку на партии в 1000 штук можно заработать...
Ответить
0
Smelter #
Отдельная МС имеет больше возможностей при несоизмеримо меньшем энергопотреблении
Ответить
0
Семён #
Не понял часы в 12-ти часовом формате или 24-х.
Ответить
0
Тарас #
Возможно ли организовать батарейное питание с минимальным потреблением (то бишь спящий режим) в случае пропадания основного? К сожалению в программировании не силён
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
ELM327 OBD II — адаптер с поддержкой CAN iMAX B6 - зарядное для Lion, LiPo, LiFe, Pb, NiCd и NiMH аккумуляторов
вверх