→ Часы на Atmega8 и семисегментном индикаторе. Двухканальный термометр, часы на ATmega8, DS18B20, DS1307, LCD1602 Часы на atmega8 с общим катодом

Часы на Atmega8 и семисегментном индикаторе. Двухканальный термометр, часы на ATmega8, DS18B20, DS1307, LCD1602 Часы на atmega8 с общим катодом

  • 10 будильников на каждый день недели.
  • Отсрочка сигнала, если будильник не отключить, срабатывает примерно через 5 мин.
  • 8 будильников на отдельную ножку мк, вкл\откл нагрузки.
  • Два датчика температуры DS18B20 (дома и на улице).
  • Таймер 99 часов.
  • Яркость индикатора настраивается для дневного и ночного времени.
  • Изменяемый параметр плавно меняет яркость, как в АОН.
  • При пропадании 220 вольт потребление от батарей 40 микроампер.
  • Будильник срабатывает при любом режиме питания.
  • Часы могут последовательно показывать до 4 режимов.

В часах есть возможность последовательно показывать 4 режима, для которых выбирается один из десяти форматов отображения и время его показа.

Форматы отображения.
0
1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5
6
7
8
9
A

b

Температура 1 датчик, Температура 2 датчик.

Кнопка F - выход из режима. Выбор 3 основных режимов.
Кнопка SET - вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).
Кнопка PLUS - плюс/on. В режиме SETUP листать главные меню.
Кнопка MINUS - минус/__(off). В режиме SETUP листать главные меню.

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

Режим CALLS

on/__-будильник вкл/откл.
Дни недели, в которые сработает будильник (здесь в 6 и 7 день будильник выключен).
Будильники A B C D E F G H вкл/откл. вывод call a_h мк. Будильник пригодится для управления нагрузкой. С его помощью вывод call a_h можно устанавливать на любое количество минут.
___-выключен, SET-ножка буд. A-H уст в 1, CLS уст в 0.
n-сработает один раз, o-вкл. всегда.

Режим SETUP.
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT ->SET-> L.ooooo ->SET-> НО4Ь L.2 ->SET-> LIGHT .

Режим PORT.

Режим часы.

Режим Уст SEE.

Форматы отображения.
0

Число, День недели, Часы-минуты.

1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5

Температура 1 датчик, Температура 2 датчик.

6

Температура 1 датчик (датчик дома).

7

Температура 2 датчик (датчик на улице).

8

Температура 1 датчик, Часы-минуты.

9

Температура 2 датчик, Часы-минуты.

A

Температура 1 датчик, Температура 2 датчик.

b

Температура 1 датчик, Температура 2 датчик.

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


Режим УSt Буd. Установки будильника.

Bip сигнал будильника - ШИМ.
Pin сигнал будильника - уст в 1 вывод буд.
Oba Шим и вывод.
Отсрочка сигнала.
При откл. отсрочке будильник выключается нажатием любой клавиши.
При вкл. отсрочке сигнала будильник откл. кнопкой F, при нажатии кнопок SET PLUS MINUS сигнал отключается, но опять сработает примерно через 5 минут, если будильник не выключать, то после 8 раз срабатывания он откл. автоматически.
При активной отсрочке сигнала, в нулевом режиме, мигает точка последнего разряда.
Отключение отсрочки (при отсутствии сигнала). В режиме 0, нажатие SET вкл. этот режим. Наличие активной отсрочки индуцирует символ о на 4 знакоместе. Нажатие PLUS MINUS выключает отсрочку.

Режим DS18B20.

Режим DEFAULT.

Прочие режимы (SETUP).
LIGHT L ooooo - дневная яркость индикатора.
НОЧЬ L2 - яркость с 23-00 до 6-00.
SIGNAL после входа в режим кнопками плюс/минус выбирается:
budil. S или button. S
соответственно частота ШИМ для будильника и кнопок.
При входе в эти подрежимы на индикаторе:
H004.L000.
Частота генерируется в режиме быстрой шим(CTC mode). Верхний порог задается регистром OCR1A1. H004-старший байт L000-младший байт.
Что бы отключить сигнал от нажатия кнопок - установить H000 L000.
Если в режиме УSt Буd.выбрана опция PIN, для будильника шим сигнал выводится не будет.

Действия в нулевом режиме.

F - выбор режима.
SET - режим отмены отсрочки сигнала
PLUS - режим Уст SEE.
MINUS - установка будильников.

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

Программа написана на си в WinAvr.
Скачать исходник, HEX и EEP файлы. clock_t.rar (18 Kb)

При прошивке мк установите биты CKSEL3..0 в 0011 (внутренний RC генератор 4 Meg). Запрограммировать бит CKOPT (подключение внутренних конденсаторов). Затем прошить EEPROM, или сбросить основные переменные в программе таким образом - SETUP -> DEFAULT -> SET.

Часы на ATmega8.

  • 10 будильников на каждый день недели.
  • Отсрочка сигнала, если будильник не отключить, срабатывает примерно через 5 мин.
  • Два будильника на отдельную ножку мк, вкл\откл нагрузки.
  • Два датчика температуры DS18B20 (дома и на улице).
  • Выбор отображения температуры (гашение не значащего нуля).
  • Таймер 99 часов.
  • Яркость индикатора настраивается для дневного и ночного времени.
  • Изменяемый параметр плавно меняет яркость.
  • При пропадании 220 вольт потребление от батарей меньше 40 микроампер.
  • Будильник срабатывает при любом режиме питания.
  • Часы могут показывать до 8 режимов.
  • В схеме можно использовать индикаторы с общим анодом или катодом.

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

Форматы отображения.
0

Число, День недели, Часы-минуты.

1

Часы-минуты-секунды.

2

Часы-минуты.

3

Часы-минуты, День недели.

4

Число_месяц_день недели.

5

Число месяц год.

6

Число месяц год день недели.

7
8

Температура 1 датчик (датчик дома).

9

Температура 2 датчик (датчик на улице).

A

Температура 1 датчик, Часы-минуты.

b

Температура 2 датчик, Часы-минуты.

C

Температура 1 датчик, Температура 2 датчик.

d

Температура 1 датчик, Температура 2 датчик.

E

День недели число месяц год.

F

Число месяц год.

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

Кнопка F — выход из режима. Выбор 3 основных режимов.
Кнопка SET — вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).
Кнопка PLUS — плюс/on. В режиме SETUP листать главные меню.
Кнопка MINUS — минус/__(off). В режиме SETUP листать главные меню.

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

Режим CALLS

Режим SETUP.
Для записи значений в EEPROM нужно все значения в подрежиме подтвердить нажатием SET.
Пример: LIGHT ->SET-> L.ooooo ->SET-> НО4Ь L.2 ->SET-> LIGHT .

Режим PORT.

Режим часы.

Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль. Если секунд было больше 31, то минуты инкрементируются.
Далее идет установка минут и часов.
Устанавливаются:
число, месяц, год и день недели.
Коррекция хода часов. Данная величина прибавляется или вычитается каждый час. Шаг 0.008 секунды. (50 значений), максимальное значение 0.391. Пример расчета: при коррекции равной нулю измеряется уход часов, например за 5 дней часы убежали на 3 секунды, тогда коррекция ровна 3/(5*24)=0.025.

Режим Уст SEE.

В нулевом режиме часы показывают попеременно до 8 режимов, для которых выбирается один из десяти форматов отображения и время его показа (верхняя таблица) .
1 выбор режима.
r5 выбор одного из пятнадцати форматов отображения.
с03 время в секундах, которое будет виден выбранный режим.
n0 сколько раз пропускать (не показывать) режим. Пример:
1 r0 c03n0
2 r5 c03n0
3 r4 c02n1
r0; r5; r4; r0; r5; r4; r0; r5; r4; r0; r5; r4; ..
r4; — виден, r4; — пропущен.
При времени равном 00 режим выключен.

Режим УSt Буd. Установки будильника.

Bip сигнал будильника — ШИМ.
Pin сигнал будильника — уст в 1 вывод буд.
Oba Шим и вывод.
Отсрочка сигнала.
Задаётся число отсрочек сигнала.
При откл. отсрочке (00) будильник выключается нажатием любой клавиши.
При вкл. отсрочке сигнала будильник откл. кнопкой F, при нажатии кнопок SET PLUS MINUS сигнал отключается, но опять сработает примерно через 5 минут.
При активной отсрочке сигнала, в нулевом режиме, мигает точка последнего разряда.
Отключение отсрочки (при отсутствии сигнала). В режиме 0, нажатие SET вкл. этот режим. Наличие активной отсрочки индуцирует символ о на 4 знакоместе. Нажатие PLUS MINUS выключает отсрочку.

Режим DS18B20.

Режим Light.

Режим Сигнал.

Режим Сброс настроек.

Действия в нулевом режиме.

F — выбор режима.
SET — режим отмены отсрочки сигнала
PLUS — режим Уст SEE.
MINUS — установка будильников.

Каждый час, на одну секунду, устанавливается вывод PB2(16).

Для экономии, в режиме питания от батарей запрещается отсрочка сигнала. Так же останавливается работа таймера.

Исходник WinAVR-20060421. Прошивки анод, катод и прошивка для схемы с большими индикаторами. C автоматическим переходом на летние зимние время.
Без перехода на летние зимние время.
Схема для больших индикаторов. Прислал Алексей.

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

Характеристики часов

  • формат отображения времени: часы, минуты;
  • будильник с функцией повтора;
  • простое управление с помощью 2 кнопок;
  • поддержка работы от батарейки;
  • напряжение питания: 7…12В / 0,2 A;
  • размеры двух печатных плат: 60×21 мм, 58×44 мм.

Принципиальная схема часов показана на рисунке ниже. Схема часов должна быть запитана постоянным напряжением в диапазоне 7…12В. Это может быть любой с нагрузкой по току не менее 200 мА.

К разъему CON5 платы можно подключить зуммер с генератором, который будет выступать в качестве звукового сигнала будильника. К клеммам SA1 и SA2 печатной платы подключаются кнопки, которые служат для ввода настроек и обслуживания часов.

Настройка времени и будильника

При нажатии кнопки SA1 попадаем в меню часов «Set1», где у нас есть возможность установки текущего времени, а еще одно короткое нажатие кнопки SA1 переводит нас в меню установки времени будильника «Set2».

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

Очередное нажатие SA1 вызовет мигание второй цифры и с помощью SA2 можно установить единицы часов. Последующие два нажатия SA1 позволят установить десятки минут и единицы минут. Во время установки часов и минут устанавливается всегда только одна цифра. Пятое нажатие SA1 возвращает часы к нормальной работе. Также продолжительное время отсутствия нажатия кнопок завершает процедуры установки.

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

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

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

Работа часов протестирована в Proteus:

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

(34,7 Kb, скачано: 1 931)

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

Дисплей построен на шести 7-сегментных светодиодных индикаторов с регулировкой яркости. Часы также оснащены резервным питанием от батарей.

Описание конструкции микроконтроллерных часов

Как уже было сказано выше, часы имеют шестизначный дисплей, состоящий из двух трехзначных дисплеев T-5631BUY-11, работающий в мультиплексном режиме. Аноды индикаторов сгруппированы по разрядам и переключаются с помощью транзисторов Т1…Т6.

Катоды сгруппированы в сегменты и питаются непосредственно от микроконтроллера IO1 Attmega8. Частота мультиплексирования составляет 100Гц.

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

В случае возникновении проблем с запуском генератора, можно попробовать подключить 2 конденсатора по 22пф. Для еще большей точности часов можно вообще отключить внутренние конденсаторы (сбросить бит СKOPT) и оставить только внешние.

Пъезоизлучатель REP1 издает звуковой сигнал будильника и сигнализирует о завершении работы таймера. Во время звукового сигнала на выводе 16 (порт PB2) появляется лог.1. Этот сигнал можно использовать для управления какой-либо нагрузкой.

Управление часами производится тремя кнопками — минуты, часы и режим. Кнопки подключены через резисторы, которые защищают порты микроконтроллер Attmega8. Схема питается от источника 5 вольт (7805). Потребление тока в основном зависит от числа активных индикаторов, а так же от степени настройки яркости.

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

Напряжение резервного питания от 3 до 4,5 В. Это может быть одна батарея на 3В, три NiMH или NiCd по 1,2 В или один аккумулятор Li-Pol или Li-Ion (от 3,6 до 3,7 В). Ток потребления от 3В батареи составляет всего лишь 5…12мA. Время автономной работы часов в экономичном режиме от батареи 3В типа CR2032 со стандартной емкостью 200mAh теоретически должно хватить примерно на 2,5 — 3 лет.

Программное обеспечения для микроконтроллера находится в конце статьи. Биты конфигурации необходимо выставить следующим образом:

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

Часы управляются с помощью 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» = будильник звонит каждый день

Режим 6-й – Установка дня недели и даты

Кнопка часов позволяет установить день месяца. Кнопка минут позволяет установить месяц.

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

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

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

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

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

(скачено: 812)

 

 

Это интересно: