Цифровые часы на микроконтроллере Attiny2313

СХЕМА

Цифровые часы на микроконтроллере Attiny2313

Кнопка SW1 предназначена для подключения датчика температуры. Можно подключить несколько датчиков, каждый через свою кнопку, например для измерения температуры в доме и на улице, или подключить один датчик напрямую, без кнопки, все эти варианты поддерживаются программой. Кнопками SW2 и SW3 выполняется настройка часов как описано выше. Резисторы R1-R8 должны быть расчитаны на мощность 0,5 Вт. Конденсатор С5 надо разместить на минимальном растоянии от выводов питания микроконтроллера, для дополнительной защиты от помех в схему можно также добавть еще два таких же конденсатора подключеных паралельно выводам питания микросхем D2, D3 (выводы 7 и 14). Точность можно дополнительно настроить изменением емкости конденсаторов С3 и С4.

В качестве датчика температуры исползьзуется микросхема DS18B20 или ее полный аналог. Использовать неполный аналог, например DS1820 нельзя, т.к. из-за различий в протоколе температура будет отображаться неправильно.

Светодиодные индикаторы должны быть с общим катодом, в зависимости от их мощности подбираются номиналы резисторов R1-R8.

Для работы часов необходим блок питания обеспечивающий ток не менее 300 мА при напряжении 12-15 вольт.

LM8560 must die!

И на это даже не успеваешь рассердиться, т.к. напряжение у нас периодически вырубается (микрорайон новый, кругом стройка) на несколько секунд или минут и приходится заново ручками восстанавливать время на часах. В качестве бэкапа производитель предлагает использовать недешёвую батарейку «Крона», которая очень быстро и неожиданно сдыхает, а узнаёшь об этом только по абракадабре на индикаторах часов после очередного отключения.


Спасибо за внимание!

16/02/14 ️ 4,17 Kb ⇣ 31
Здравствуй, читатель!
Уже более 10 лет наш журнал существует только на мои средства.

Хорош! Халява кончилась. Хочешь файлы и полезные статьи — помоги мне!


Спасибо за внимание!
Игорь Котов,
главный редактор журнала «Датагор»

(моё произведение) — Даташит LM8560:

Часы – таймер на DS1307,ATtiny2313,74hc595+4LED + Энкодер

Предлагаем вашему вниманию  проект с часами_таймером для духовки (можно как склерозник на кухню ) на ATtiny2313 +74hc595 + 4LED +DS1307 + энкодер для перевода времени .

https://youtube.com/watch?v=q1ooptXahQI

Часто в нашей бытовой технике для приготовления пищи (духовка , СВЧ печь , гриль и т.п.) применяют механические таймеры …

Принцип действия их основан на часовом механизме , приводимом в действие пружиной , от степени завода которой зависит промежуток времени до останова .

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

и работает .

Работает он до первой поломки , а если ломаться упорно не хочет — до надоедания от при-

митивности .У меня он не сломался , а стал застревать посередине , и никакая

смазка и т.п .ему не помогала. Вот так и родилась идея сделать его электронный аналог .

Минимум органов управления и аналогичный функционал – требования к проекту.

Исходя из первого требования подошел энкодер , у него нет упора и его не скрутишь.

Вместо тиканья — мигающая точка , вместо шкалы–цифровой индикатор , ну и звонок

меняем на пищалку с генератором . Вместо контакта цепляем реле или симистор .

А раз есть индикатор , то почему бы не сделать еще и часы , естественно , с автономным

ходом . Ну еще максимальная простота — тоже не помешает .

режима настройки времени .

Для инициализации таймера надо повернуть ручку по часовой стрелке .При этом на

индикаторе появляется надпись «on» и время таймера ,подается «1» на выход управления и начинается обратный отсчет минут .Вы можете добавлять или отнимать выдержку

вращением ручки как и в механическом аналоге .При достижении значения 1 на табло

пишется «оFF» , прерывисто пищит сигнал и на выход управления подается «0».

Через минуту переходит на индикацию времени .Во время сигнала вращение ручки в

сторону уменьшения приводит к прекращению сигнала и переходу на индикацию времени.

Во время работы таймера кратковременное нажатие ручки приводит к переключению

индикации на текущее время и наоборот .

В данной прошивке на один щелчок энкодера происходит 2-х минутное изменение

выдержки времени таймера в ту или другую сторону.

Сколько на щелчок минут или секунд – под конкретное изделие легко подгоняется , даже реакцию на поворот можно сделать нелинейной ,к примеру (от 1 до 5 -по 1 , до15 -по2 , от 15- по 5 и т.д) .Ну это – для желающих .

Схема с добавлениями:

Ну а что получилось посмотрите : 

Коротко о деталях . Индикатор на 4 цифры с Общим Анодом .Энкодер – Pec-12 , 16 или

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

Пищалка на 5 вольт с встроенным генератором .

Устройство в корпусе и с двухцветным светодиодом. 

автор Haimovich

НАСТРОЙКА И ИСПОЛЬЗОВАНИЕ

Установка времени и поправки

Для цифровой коррекции хода изменяется продолжительность самой первой минуты каждых суток. Ее продолжительность равна 110 минус значение поправки.

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

Эта фукнция позволяет сделать точность хода не хуже 1 секунды за сутки, или около 6 минут за год.

  1. Нажать кнопку SW2 для входа в режим настройки (при включении питания часы автоматически переходят в режим настройки, этот пункт нужет только если часы уже работают и требуется откорректировать их показания).
  2. Кнопкой SW3 установить требуемые показания разряда часов.
  3. Нажать кнопку SW2.
  4. Кнопкой SW3 установить требуемые показания разряда минут.
  5. Нажать кнопку SW2.
  6. Кнопкой SW3 установить предварительно расчитаное значения цифровой поправки хода.
  7. Нажать кнопку SW2 для возврата в режим отображения времни. В момент возврата внутренний счетчик секуд будет обнулен.

Регулировка яркости

Кнопка SW3 также используется для выбора дневного или ночного режима яркости, при нажатии на нее в обычном режиме работы яркость индикаторов уменшается. Востановление яркости произойдет автоматически примерно через 8 часов, или при повторном нажатии.

Использование термометра

Если датчик температуры подключен к микроконтроллеру через кнопку, при ее замыкании, микроконтроллер определяет наличие датчика и выводит на индикатор измеренное значение температуры. При размыкании кнопки происходит возврат в режим отображения времени, если же датчик подключен напрямую или кнопка остается замкнутой в течении длительного времени, то температура отображается в течении 30 секунд, после чего каждые 5 секунд будет происходить переключение режима отображения часы-термометр.

Установка текущего времени, будильников и ежечасового сигнала.

Цифровые часы на микроконтроллере Attiny2313

А: Установка показаний часов текущего времени

При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю B.Цифровые часы на микроконтроллере Attiny2313

Популярные статьи  Миниатюрный преобразователь 12 в 220 вольт

B: Установка показаний минут текущего времени
Цифровые часы на микроконтроллере Attiny2313

C: Включение ежечасного звукового сигнала

По умолчанию включено (ON) – каждый час с 8:00 до 20:00 подается звуковой сигнал. При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в подменю D.Цифровые часы на микроконтроллере Attiny2313

D: Включение\выключение первого будильника

По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю E и F пропускаются.Цифровые часы на микроконтроллере Attiny2313

E: Установка показаний часов первого будильника

При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю F.Цифровые часы на микроконтроллере Attiny2313

F: Установка показаний минут первого будильника

При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для перехода в подменю С.Цифровые часы на микроконтроллере Attiny2313

G: Включение\выключение второго будильника

По умолчанию будильник включен (ON). При нажатии кнопки S2 значение изменяется между ON (Вкл.) и OFF (Выкл.). После установки значения необходимо нажать S1 для перехода в следующее подменю. Если будильник выключен, то подменю H и I пропускаются и происходит выход из меню настроек.Цифровые часы на микроконтроллере Attiny2313

H: Установка показаний часов второго будильника

При нажатии кнопки S2 значение часов изменяется от 0 до 23. После установки часов необходимо нажать S1 для перехода в подменю I.Цифровые часы на микроконтроллере Attiny2313

I: Установка показаний минут второго будильника

При нажатии кнопки S2 значение минут изменяется от 0 до 59. После установки минут необходимо нажать S1 для выхода из меню настроек.Цифровые часы на микроконтроллере Attiny2313

Коррекция секунд

В режиме («МИНУТЫ: СЕКУНДЫ») необходимо удержать кнопку S2 для обнуления секунд. Далее коротким нажатием на кнопку S2 запустить отсчет секунд.Цифровые часы на микроконтроллере Attiny2313

LED часы на Attiny2313 и DS1307

Ну собственно сложностей при сборке часов возникнуть не должно. И так, принципиальная схема часов:

И так, составим список что нужно для сборки часов:

1. Микроконтроллер Attiny2313 (с любыми буквенными индексами, в DIP корпусе) – 1шт.
2. Микросхема DS1307 (в DIP корпусе) – 1шт.
3. Панелька DIP-20 – 1шт.
4. Панелька DIP-8 – 1шт. 
5. Часовой кварц на 32768 Гц – 1шт.
6. Пенал для двух пальчиковых батареек типа AAA – 1шт.

7. Пальчиковые батарейки 1,5v AAA – 2шт.
8. Резисторы 4,7 кОм – 2шт.
9. Резисторы 1 кОм – 4шт.
10. Резисторы 10 кОм – 3шт.
11. Резистор 150 Ом – 1шт.
12. Резисторы 10 Ом – 7шт.
13. Транзисторы КТ315 – 4шт.
14.

Семисегментные индикаторы REC-S12101AG с общим анодом – 4шт.
15. Конденсатор электролитический 100 мкф – 1шт.
16. Конденсатор керамический 100 нф – 1шт.
17. Кнопки тактовые, без фиксации – 2шт.
18. Корпус пластмассовый (по желанию) – 1шт.
19. ИБП RS-25-5 – 1шт.
20.

Сетевой шнур с вилкой – 1шт.
21. Текстолит (для ПП)

Платы вместе соединял шлейфом, вот так:

В ход можно пустить компьютерный IDE шлейф. Вот фото основной платы:

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

Как вы уже заметили внутри корпуса я закреплял всё с помощью термо клея. После сборки часов необходимо прошить микроконтроллер  прошивкой ClockFirmware.HEX. Как прошить микроконтроллер и сделать программатор я писал тут и тут. После прошивки не забудьте установить следующие фьюз-биты:

Для программы SinaProg:

Я прошивал микроконтроллер с помощью программатора USBtiny и программы SinaProg. Программу (прошивку) для часов писал в среде BASCOM-AVR, исходник прилагается. У меня часы работают уже почти неделю и не на секунду не отстают. Точность хода часов зависит от кварца, его лучше купить новый.

 При первом включении часов либо после смены батареи резерного питания, зажмите обе кнопки S1, S2 и включите часы. Часы сбросятся на 00:00 и начнут идти.

Кстати, ночью часы смотрятся просто отлично:

Описание работы простых часов на Attiny2313

Тактируется кварцевым резонатором с рабочей частотой 16 МГц. В качестве счетчика времени, в схеме микроконтроллера Attiny2313 запущен 16 битный таймер с предделителем 256, сконфигурированный на создание прерывания по достижении счетчиком значения 625. Следовательно, получилось прерывания 100 раз в секунду.

Временной интервал находится в глобальных переменных, и при каждом прерывании необходимо увеличить значение миллисекунд на 1. В том случае если число миллисекунд доходит до 100, то необходимо увеличить на 1 величину секунд, а величину миллисекунд сбросить. И далее в той же последовательности до десятков часов, которые сбрасываются по достижении 24 без прибавления следующего разряда. Часы на микроконтроллере Attiny2313 максимально простые, поэтому они не отображают ни дату, ни переход на зимнее/летнее время и т.д.

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

Быстро переключая порт B микроконтроллера, к которому подключены катоды и быстро переключая аноды, можем организовать видимость, что отображаются все 4 цифры, несмотря на то, что единовременно работает всего лишь одна. Другими словами, если текущее время 10:43, то выводим цифру 1 на первый индикатор часов, через небольшой интервал времени (порядка 1 мс) выводим цифру 0 на второй индикатор, через 1 мс отображаем 4 на 3 индикатор, спустя 1 мс отображаем 3 на 4 индикатор и снова по кругу.

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

(1,2 Mb, скачано: 6 504)

Принцип работы программы на МК ATtiny2313

Сама программа состоит из 3-х классов (USART, Queue, CmdExecutor) и основного файла main.cpp, который содержит функцию main(). Класс USART отвечает за инициализацию протокола и получения данных, в нашем случае данные — это команды. После получения, команда добавляется, push(cmd), в очередь Queue. Класс Queue, он же очередь, имеет два метода push(cmd) и pop(cmd). С помощью первого метода, как мы уже сказали, добавляем команды в очередь, а вторым, соответственно берём первую команду из очереди. В функции main() и проверяется если в очереди есть команды. Если команда нашлась main() берёт её и передаёт классу CmdExecutor, он же исполнитель команд, выполняет её — execute(cmd).Цифровые часы на микроконтроллере Attiny2313

Для чего нужна была очередь команд, нельзя было просто выполнять команды сразу после получения, а не тратить время и ресурсы не очень-то и мощного ATtiny2313? Да, можно было, можно было вообще сделать этот пример из двух функций: main() и ISR(USART_RX_vect), и гуляй Вася. Однако не так, во первых, если одна команда выполняется очень много времени, а другая уже на подходе, то как тут быть? Во вторых, если микроконтроллер помимо команд выполняет ещё и другую работу, тоже очень важную, а мы эту работу будем остановить очень часто, тогда может выйти так, что результат будет не тот, да и команды не правильно могут выполнятся, особенно тогда, когда и команда и работа используют те же ресурсы.

Популярные статьи  Модель самолета LASY BEE из потолочной плитки своими руками

Почему микроконтроллер ATtiny2313

Микроконтроллер ATTiny2313 улучшенный вариант старого микроконтроллера AT90S2313. Внутри у него 120 инструкций оптимизированных для программирования на языках высокого уровня, 32 регистра общего назначения, 2 килобайта флеш-памяти для программ, 128 байт EEPROM (энергонезависимая память) и 128 байт SRAM (оперативная память). Из периферии: один 8 битный таймер/счетчик, один 16 битный таймер/счетчик, четыре ШИМ канала, 2 из которых будут использованы для управления колёсами, аналоговый компаратор, Watchdog таймер, USI универсальный последовательный интерфейс и, самое главное для данного проекта, USART. Если фьюзы выставлены на работу от внешнего кварца, кварц должен быть установлен на частоту, не превышающей максимальную по даташиту, это 20МГц.

Все вышеперечисленные характеристики более чем достаточно для наших задач. К тому же ATTiny2313 не дорогой и доступный микроконтроллер, в отличии от Arduino.Цифровые часы на микроконтроллере Attiny2313

Термометр дом—улица на ATtiny2313A

Рейтинг:   / 5

Подробности
Категория: схемы на ATtiny
Опубликовано: 30.01.2019 13:13
Просмотров: 3188

Н. Салимов, г. Ревда Свердловской обл. Предлагаемый термометр способен работать с двумя датчиками температуры и может измерять её в двух местах (например, в жилом помещении и на улице) с дискретностью 0,1 °С в пределах от -55 °С до +99,9 °С. На страницах журнала за последние годы были опубликованы описания нескольких подобных устройств. В частности, статья Е. Лукьяненко и др. «Термометр повышенной точности с датчиком DS18S20» («Радио», 2014, № 5, с. 48, 49). Но описанный в ней прибор, на мой взгляд, имеет существенные недостатки. В частности, применённый микроконтроллер ATmega8515-16PU избыточен для столь простого устройства, а трёх разрядов индикатора недостаточно для полноценного отображения информации. Эти недостатки устранены в термометре, схема которого изображена на рис. 1.

Его основные элементы — двадцативыводной микроконтроллер ATtiny2313A-PU (DD1), четырёхразрядный светодиодный индикатор СС56-12GWA (HG1) с общими катодами элементов каждого разряда и соединёнными для динамической индикации анодами одноимённых элементов всех разрядов и два цифровых датчика температуры DS18B20 (ВК1 и ВК2). Выводы анодов индикатора подключены к восьмиразрядному порту В микроконтроллера через ограничивающие ток резисторы R9—R16. Общие катоды разрядов индикатора, амплитуда импульсов тока которых может достигать 120 мА, коммутируют транзисторы VT1—VT4. Сигналы управления поступают на их базы с четырёх линий порта D микроконтроллера через резистивные делители напряжения. Датчики температуры подключены к двум раздельным линиям порта А, сконфигурированным в программе как обычные линии дискретного ввода-вывода. Светодиод HL1 показывает, какой из двух опрашиваемых поочерёдно датчиков активен в данный момент. Он включён при работе датчика ВК2 и выключен при работе с ВК1. Но если установить перемычку S1, программа станет работать только с датчиком ВК1. Интервал обновления информации о температуре — 6 с. Если измеренная температура ниже нуля, в крайний левый разряд индикатора выводится знак минус. При температуре выше нуля этот разряд погашен. Для питания термометра нужен источник стабилизированного постоянного напряжения 5 В, способный отдавать ток не менее 100 мА. Чертёж печатной платы термометра показан на рис. 2. Она изготовлена из фольгированного с двух сторон стеклотекстолита. В переходные отверстия, показанные на рис. 2 залитыми, необходимо вставить и пропаять с двух сторон отрезки лужёного провода. Если изготовление платы с двухсторонней печатью покажется слишком сложным, можно сделать её односторонней, оставив печатные проводники только на стороне, противоположной той, где будут установлены детали. Печатные проводники на стороне деталей в этом случае нужно заменить перемычками из тонкого изолированного монтажного провода, установить которые можно и на стороне печатного монтажа. Все резисторы в термометре — С1 -4, конденсатор С2 — оксидный, остальные конденсаторы — керамические К10-7 или плёночные К73-17. Микроконтроллер ATtiny2313A-PU можно заменить на ATtiny2313V-10 или ATtiny2313-20 с последними индексами PL) или PI. К статье приложены два варианта программы микроконтроллера: Тermometr2 и Termometr2M которые можно скачать в ZIP архиве. Они различаются лишь тем, что во втором варианте не предусмотрено управление светодиодом HL1. Конфигурация микроконтроллера должна быть запрограммирована согласно таблице. Перед выводом показаний каждого датчика на индикаторе появляется сообщение, состоящее из номера датчика (цифры 1 или 2), пробела и знака градуса Цельсия (°С). Если установкой перемычки S1 датчик ВК2 заблокировать, это сообщение выводиться не будет

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

Это позволяет использовать датчики температуры DS18B20, не зная их индивидуальных идентификационных кодов. Но считанные из датчиков результаты их работы далее обрабатываются и выводятся на индикатор одними и теми же подпрограммами. Термометр проверен в действии с одним и двумя датчиками температуры, в том числе при соединении их с платой жгутами свитых изолированных многожильных проводов длиной до 4,5 м. Собранная плата термометра показана на рис. 3 в режиме работы с одним датчиком. Радио №4 2018Четырёхканальный термометр на ARDUINO UNOПростой цифровой термометр на PIC16F628A и датчике DS18B20Двойной термометр на ARDUINO UNO

Оставлять комментарии могут только зарегистрированные пользователи

Часы с термометром на микроконтроллере

Простые часы с термометром на микроконтроллере AVR ATtiny2313 с выводом информации на семисегментный индикатор. Часы используют для отсчета времени микросхему DS1307 – часы реального времени и источником резервного питания в 3 В. Температура измеряется при помощи датчика температуры DS18B20.

 Текущее значение времени и температуры происходит поочередно сначала время а потом температура с нтервалом в 4 секунды. Формат отображения времени ЧЧ.ММ (часы,минуты). Первый ноль не отображается. О ходе отсчета времени сигнализирует мигающая точка.

 Точность отображения температуры составляет десятые доли градуса. Погрешность в интевале температуры от -10 до 85 градусов составляет порядка +/- 0.5. В другом диапазоне точность уже +/- 2 градуса.

Температура замеряется 1 раз в минуту. Измеренное значение отправляется в память контроллера в которой может хранится пять послених измеренных значения.

Измеренная температура округляется до целого значения.

 Если нажать на кнопке “меньше” то на дисплее сразу отобразится время.

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

Схема часов с термометром на микроконтроллере

Представленные схемы отличаются только общим выводом индикатора анод и катод. Индикаторы работают в динамической индикации. Динамическая индикация раелизована программно. Каждый семисегментный индикатор включается с интервалом 100 раз за 1 секунду. остальное время выключен. 

Прошивка для микроконтроллера

В архиве имеются файлы Proteus и сама прошивка написана на ассемблере. Прошивка может работать для двух вышеприведенных схем, для схемы с индикатором с общим катодом и схемы индикатора с общим анодом

При прошивке микроконтроллера важно выствыить fuse-биты: CKSEL3, CKSEL1, CKSEL0, SUT0, BODLEVEL1, BODLEVEL0

Скачать: прошивка микроконтроллера

Вход в режим усановки времени осуществляется нажатием и удерживанием кнопки “ввод”. После того как пройдет 3 секунды начнется режим установки минут. Для того чтобы устаноыить новое значение времени нужно использовать кнопки “больше” и “менеше”.

Если после этих всех операций в течении 10 секунд не будет нажата какия нибудь кнопка то часы перейдут в рабочее состояние и новое значение времени не будет сохраненно.

Популярные статьи  Простая и надежная стойка для болгарки из велосипедных деталей

Для устройства необходимы две печатные платы из одностороннего стеклотекстолита который имеет размеры 50 на 100 мм, на одной плате устанавливаются индикатор с кнопками, а на другой сами часы. Равзодка платы в формате SpringLayout.

Индикатор или дисплей собран на двух семисегментных индикаторах FYD-8021BS-11, каждый имеет 2 разряда и имеют общий анод.

Исходник статьи: Часы-термометр

Схема электронных часов на микроконтроллере

Микроконтроллер является единственной микросхемой, используемой в данном устройстве. Для задания тактовой частоты используется кварцевый резонатор на 4 МГц. Для отображения времени использованы индикаторы красного цвета с общим анодом, каждый индикатор состоит из двух цифр с десятичными точками. Можно применить любые индикаторы с общим анодом, лишь бы каждая цифра имела собственный анод. Чтоб электронные часы были хорошо видны в темноте и с большой дистанции — старайтесь выбрать АЛС-ки чем покрупнее.

Цифровые часы на микроконтроллере Attiny2313

Индикация в часах осуществляется динамически. В данный конкретный момент времени отображается лишь одна цифра, что позволяет значительно снизить потребление тока. Аноды каждой цифры управляются микроконтроллером PIC16F628. Сегменты всех четырех цифр соединены вместе и через токоограничивающие резисторы R1 … R8 подключены к выводам порта МК. Поскольку засвечивание индикатора происходит очень быстро, мерцание цифр становится незаметным.

Цифровые часы на микроконтроллере Attiny2313

Для настройки минут, часов и будильника — используются кнопки без фиксации. В качестве выхода для сигнала будильника используется вывод 10, а в качестве усилителя — каскад на транзисторах VT1,2. Звукоизлучателем является пьезоэлемент типа ЗП. Для улучшения громкости вместо него можно поставить небольшой динамик. Питаются часы от стабилизированного источника напряжением 5 вольт. В часах реализовано 9 режимов индикации. Переход по режимам осуществляется кнопками «+» и «-«. Перед выводом на индикацию самих показаний, на индикаторы выводится короткая подсказка названия режима. Длительность вывода подсказки примерно секунда.

Цифровые часы на микроконтроллере Attiny2313

Кнопкой «Коррекция
» часы переводятся в режим настроек. При этом кратковременная подсказка выводится на пол секунды, после чего корректируемое значение начинает мигать. Коррекция показаний осуществляется кнопками «+» и «-«. При длительном нажатии на кнопку, включается режим автоповтора, с заданной частотой. Все значения, кроме часов, минут и секунд, записываются в память и восстанавливаются после выключения питания. Если в течение нескольких секунд ни одна из кнопок не нажата, то электронные часы переходят в режим отображения времени. Нажатием на кнопку «Вкл/Выкл
» включается или выключается будильник, это действие подтверждается коротким звуком. При включенном будильнике светится точка в младшем разряде индикатора. Вот прошивка и рисунок платы часов.

Управление часами

Часы управляются с помощью TL1-минута, час-TL2 и TL3-режим. Кнопки часы и минуты используются в режиме часов для назначения часов и минут. В других режимах они имеют различные функции. Кнопка режима переключает между различными режимами, которых в общей сложности 8:

Режим 1-й — Часы

В этом режиме на дисплее отображается текущее время в формате «ЧЧ.ММ.СС». Кнопка часов используется для установки часов. Кнопка минут для установки минут. При ее нажатии происходит сброс секунд.

Режим 2-й — Включение перехода на летнее время и установки года

Здесь Вы можете включать и выключать автоматический переход между летним и зимним временем и установить год. Данные следующего формата «AC ‘RR» (АС – автоматическое время, пробел, последние две цифры года).

Режим 3-й — Таймер обратного отсчета

Это режим позволяет организовать обратный отсчет от заданного значения до нуля. По истечении этого времени раздастся звуковой сигнал и светится светодиод LED1. Звуковой сигнал может быть остановлен нажатием кнопки Режим. Данные следующего формата «ЧЧ.ММ.СС». Максимально возможное значение составляет 99.59.59 (почти 100 часов).

Режим 4-й – Комбинированный вывод информации

В этом режиме, попеременно показывается:

  1. текущее время в формате «ЧЧ.ММ.СС»
  2. дата в формате «AA.DD.MM.»

Каждый формат отображается в течение 1 секунды. В этом режиме используются кнопки Часов и Минут, для регулировки яркости дисплея (Часы-, Минуты+). Яркость изменяется логарифмически в 6 этапов: 1/1, 1/2, 1/4, 1/8, 1/16 и 1/32-й. По умолчанию установлено 1/2

Режим 5-й — Установка дня недели и режим работы будильника

В этом режиме можно установить день недели — с понедельника по воскресенье (отображается как пн, вт, ср, чт, пт, сб, вс), включать будильник и выбирать его режим работы. Данные следующего формата «AA AL._» (день недели, пробел, AL., Настройка будильника).

Кнопка часов устанавливает день недели. Кнопка минут используется для включения/выключения звукового сигнала будильника и выбора режима его работы: «AL._» = будильник не активный, «AL.1″ = будильник сигналит 1 раз (затем автоматически переходит в положение»AL._»), «AL.5» = сигнал будильника только в будние дни (пн-пт, кроме сб-вс), «AL.7» = будильник звонит каждый день

Режим 7-й — Секундомер

Секундомер позволяет измерять время с точностью 0,1 сек. Максимальное время измерения составляет 9.59.59.9 (почти 10 часов). Данные следующего формата «H.MM.SS.X». Кнопка минут используется для запуска и остановки секундомера. Кнопка часов используется для сброса.

Режим 8-й — Будильник

Этот режим используется для отображения и установить время будильника (ALARM). Данные следующего формата «HH.MM.AL». Кнопка Минуты устанавливает минуту будильника, кнопку Часы устанавливает час будильника.

Ниже приведена схема аналогичных часов, имеющие индикатор с общим катодом

Цифровые часы на микроконтроллере Attiny2313

(скачено: 765)

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

Конструктор покупался на ebay.com за 1.38 фунтов (0.99+0.39 доставка), что эквивалентно 2.16$. На момент покупки это самая низкая цена из всех предложенных.

Доставка заняла около 3х недель, набор пришел в обычном полиэтиленовом пакетике, который в свою очередь был упакован в небольшой «пупырчатый» пакет. На выводах индикатора был небольшой кусочек пенопласта, остальные детали были без какой либо защиты.
Из документации только небольшой листочек формата А5 со списком радиодеталей с одной стороны и принципиальной электрической схемой с другой.Цифровые часы на микроконтроллере Attiny2313

Сборка конструктора

Много картинок — сборка конструктора спрятана под спойлером

Я начал с панельки, так как она единственная не является радиодеталью:Цифровые часы на микроконтроллере Attiny2313

Следующим шагом я припаял резисторы

Перепутать их невозможно, они оба на 10кОм:
После этого установил на плату соблюдая полярность электролитический конденсатор, резисторную сборку (также обращая внимание на первый вывод) и элементы тактового генератора — 2 конденсатора и кварцевый резонатор. Следующим шагом припаиваю кнопки и конденсатор фильтра питания:

Следующим шагом припаиваю кнопки и конденсатор фильтра питания:Цифровые часы на микроконтроллере Attiny2313

После этого очередь за звуковым пьезоэлементом и транзистором. В транзисторе главное установить правильной стороной и не перепутать выводы:Цифровые часы на микроконтроллере Attiny2313

В последнюю очередь припаиваю индикатор и разъем питания:Цифровые часы на микроконтроллере Attiny2313

Подключаю к источнику напряжением 5В. Все работает!!!Цифровые часы на микроконтроллере Attiny2313

Оцените статью
Денис Серебряков
Добавить комментарии

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Цифровые часы на микроконтроллере Attiny2313
Светящаяся клавиатура