Часы термометр будильник схема – Часы, будильник, термометр на ATmega8, DS1307, DS18B20

Часы, будильник, термометр на ATmega8, DS1307, DS18B20


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


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


Схема часов не сложная, плюс, я сделал в ней некоторые упрощения. Что получилось, я привожу ниже. Оригинальная и упрощенная схема, разведенная в Proteus, имеется в АРХИВЕ. В данном архиве приведены также прошивки ATmega8, дающие разный функционал часам, пример выставления фьюзов, полная инструкция по настройке часов и их возможностях, а так же разведенная печатная плата в формате *.lay6. Печатная плата разводилась мной под уже имеющийся корпус. В архиве представлены прошивки для индикаторов с общим анодом и катодом.



Хочу признать, что часы получились отлично. В часах есть будильник (как разовый, так и по дням недели), термометр. Для регулировки освещения индикатора в дневное и ночное время, могут использоваться как предустановки в часах, так и специальный датчик (фоторезистор). Есть возможность коррекции времени, если оно отстает или спешит; цифровая коррекция отображения температуры с градацией 0,1ºС.


Большим плюсом является наличие сохранения настроек в энергонезависимой памяти микроконтроллера. Помимо этого, применение микросхемы DS1307, в паре, с батарейкой, делают часы абсолютно энергонезависимыми. Батарейка выполняет дежурное питание часов. Теперь, сколько бы поставка электричества у Вас не обрывалась, при ее возобновлении, часы буду идти, без каких-либо изменений и отклонений, даже останется заведенным будильник(и).



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

best-chart.ru

ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8

Привет всем читателям и почитателям сайта Радиосхемы! Сегодня хочу поделиться с вами очередной простенькой конструкцией «Часы-термометр». Немного предыстории: вечером очень плохо видно показания уличного термометра, чтобы разглядеть положение стрелки, необходимо довольно долго вглядываться и иной раз пользоваться фонариком. Спустя определённое время мне это надоело и решил заменить прибор на электронный, который бы отображал информацию на светодиодных семи сегментных индикаторах. После чего бы не пришлось даже подходить к окну, чтоб узнать уличную температуру. Так как индикацию хорошо видно более чем с трёх метров. Схем данного устройства в сети полно, но я, как человек относящийся к семейству Радиолюбителей, решил собрать свою. Так как с недавних пор пытаюсь осваивать микроконтроллеры, то выбор пал на широко распространённый и дешёвый МК Atmega8. Далее была изготовлена плата по технологии ЛУТ, после чего уже приступил к программной части. Программа написана на языке Си с помощью среды разработки CodeVisionAVR.

Схема принципиальная электрическая

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

Датчиком температуры является микросхема DS18B20. Так как в устройстве «Часы-термометр» нет своей батареи, при пропадании питания естественно показания будут сбиваться. И что бы это не явилось причиной какого-нибудь опоздания человека на жизненно важные дела, имеется интересная «фишка» — при подаче питания вместо времени на дисплее будут отображаться прочерки, пока не нажмёшь одну из двух кнопок настройки.

Корпусом самодельного измерителя температуры послужила подходящая коробочка от запонок. В неё была помещена сама плата часов-термометра и плата вытащенная из телефонного зарядника. Датчик DS18B20 сделан выносным и подсоединяется через разъём.

Список необходимых деталей

  • Микроконтроллер Atmega8 – 1шт.
  • Кварц  32768 Гц – 1 шт.
  • Датчик температуры DS18B20 – 1шт.
  • Семи сегментный индикатор(4 – разряда) – 1 шт.
  • Резисторы SMD типоразмера 0805:
  • 620 Ом – 8шт.
  • 0 Ом (перемычка) – 1шт.
  • 4,7 кОм – 1шт.
  • Тактовые кнопки – 2 шт.

Видео работы устройства на Ютуб-канале

Все файлы проекта (схема, прошивка и исходник) прилагаются. По всем вопросам относительно проекта можно обращаться на форум. До новых встреч на страницах сайта Радиосхемы! С вами был Темыч (Артём Богатырь).

   Форум

   Обсудить статью ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8

radioskot.ru

РадиоКот :: Часы-термометр на микроконтроллере ATmega8.

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

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


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

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

1

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

2

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

3

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

4

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

5

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

6

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

7

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

8

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

9

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

A

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

b

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

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



Кнопка F — выход из режима. Выбор 3 основных режимов.


Кнопка SET — вход в выбранный режим. Далее переход к следующему параметру (мигающему полю).


Кнопка PLUS — плюс/on. В режиме SETUP листать главные меню.


Кнопка MINUS — минус/__(off). В режиме SETUP листать главные меню.

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

Режим 0
нажать F
SET — вход в режим будильников.
F
SET — вход в режим таймера.
F
SET — вход в режим настроек.
F
Режим 0

Режим 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 .

Главные меню режима SETUP.
PORT
PLUS MINUS листать основные режимы меню SETUP.

SET — вход в выбранный режим, далее
переход к следующему параметру.

Что бы выйти из выбранного режима нажать F.
ЧАСЫ
УSt SEE
SIGNAL
LIGHT
DS18B20
DEFAULT


Режим PORT.

Port Установить/сбросить ножку будильника A..H. call a_h.


Режим часы.

Устанавливаются: минуты, часы, день недели, число.
Месяц.
Корректировка секунд. Нажатие MINUS сбрасывает секунды в ноль.
Если секунд было больше 31, то минуты прибавляются на один.
Коррекция хода часов. Данная величина прибавляется или
вычитается каждый час. Шаг 0,03 секунды. Max=0.87.


Режим Уст SEE.

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

P1 выбор режима.


r0 выбор одного из десяти форматов отображения.


r0-003 время, которое будет виден выбранный режим.

При времени равном 000 режим не отображается (выключен).

Форматы отображения.
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.

Датчики температуры DS18B20.

Режим показывает, как определилось подключение датчиков,
и настраивает датчики на разрешение 12 бит.
on — датчик подключен 3 проводами;

PA.- паразитное питание, датчик подключен 2 проводами;

— — датчик отсутствует.

При выходе из этого режима датчики настраиваются на разрешение 12 бит.


Режим DEFAULT.

По нажатию SET: Установка по умолчанию основных переменных в программе, обнуление всех будильников.
Запись этих значений в EEPROM.
Прочие режимы (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 — установка будильников.







Схема clock.spl (7 Kb)


Датчик температуры можно подключить двумя проводами, для этого нужно замкнуть GND c VDD,
при этом датчик переключится в режим паразитного питания. Такой способ удобно применять
для датчика, который расположен на улице. При таком подключении нужен резистор 100 ом
для защиты порта,
на схеме указан. По программе перед каждым циклом чтения температуры выполняется
проверка на замыкание и на присутствие датчика. При любом криминале вывод мк. переводится
в Z состояние, на индикаторе: —.


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


В этой монтажке не установлены транзисторы на вывод таймера и будильника A..H.

lay.rar (12 Kb)


Программа написана на си в WinAvr.

Скачать исходник, HEX и EEP файлы. clock_t.rar (18 Kb)

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

www.radiokot.ru

Часы с анимацией, будильник, термометр на контроллере ATmega8

Решил собрать часы для компьютерного стола на ATmega8. Минимум электронных компонентов. Тем более что все в наличии. Спасибо площадке AliExpress. В качестве индикатора применил 7-сегментный 4-х цифровой зеленый светодиодный индикатор размером 0.56″ с общим катодом. В схеме так же можно применить светодиодный индикатор с общим анодом для этого в контроллер ATmega8 необходимо будет записать соответствующую прошивку. Часы функциональные: 24 формат времени, будильник с возможностью  настроить по дням недели, комнатный термометр. Так же есть ночной режим свечения индикаторов,  звуковой сигнал каждый час — кроме ночного режима работы. Есть коррекция времени и температуры, очень полезная фишка так как часовой кварц и датчик температуры изначально могут иметь небольшую погрешность. Очень красивая анимация смены температуры и времени с поддержкой более 10 скинов, так сказать на любой вкус и с возможностью настройки отображения по времени.

Внешний вид:

Тактильные кнопки специально запаял высокие 17mm высотой, со временем планирую установить тонированное оргстекло перед дисплеем 0.56″. Часы в работе, отображение времени:

Часы в работе, отображение температуры. Есть возможность настроить отображение анимации от 5 сек до 50 сек:

Печатные платы в количесте 2-х штук разведены в программе Sprint Layout 6.0 на одностороннем текстолите и изготовлены с помощью лут технологии.

Первая плата с индикатором и тактильными кнопками. Внизу под светодиодным дисплеем запаян зеленый светодиод. Сигнализирует если включен будильник:

Обратная сторона платы, smd резисторы на 680ом и 2.2ком, плюс соединительные разъемы:

Вторая плата. Сам контроллер Atmega8, часовой кварц на 32768 гц, датчик температуры  Dallas DS18B20, чип реального времени DS1307, бузер, соединительные разъемы, разъем питания:

Обратная сторона. В качестве стабилизатора напряжения на +5 вольт применен smd стабилизатор 78m05 с минимальной обвязкой электронных деталей. Батарея CR2032 в случаи пропадания напряжения, питает чип DS1307 — при этом время и насторойки не збиваются:

 Блок питания для часов использую от старого модема zyxel на 9 вольт.

Скачать с Яндекс Диска прошивку и схему

AliExpress дешевые чипы реального времени DS1307

AliExpress дешевые датчики температуры DS18B20

AliExpress дешевые микроконтроллеры ATMEGA8-16PU

migsat.ru

Схема. Часы-будильник и термометр с бегущей строкой на шестнадцатиэлементных индикаторах


В предлагаемом устройстве используются символьные светодиодные шестнадцатиэлементные индикаторы PSA08-11 с общими анодами. Выбор пал именно на них из-за невысокой стоимости, большого размера отображаемого символа и высокой яркости. Для того чтобы выводить максимум полезной информации, текст перемещается справа налево. На шести знакоместах поочерёдно отображаются текущее время, температура в помещении, температура вне его, число, день недели и месяц прописью, например, “18 МАРТА ЧЕТВЕРГ.

Счёт времени ведёт микросхема DS1307. Она представляет собой часы реального времени (Real Time Clock -RTC) со встроенным календарём. При выключенном общем питании эта микросхема продолжает работать от резервного источника — литиевого элемента CR2032 напряжением 3 В. Поскольку при отсутствии внешних обращений потребляемый микросхемой DS1307 ток не превышает 300 нА, счёт времени в таком режиме может продолжаться до десяти лет. Тактовый генератор этой микросхемы построен с применением внешнего кварцевого резонатора частотой 32768 Гц, что обеспечивает высокую точность хода. Микросхема отсчитывает секунды, минуты, часы, дни месяца (с учётом високосных лет), месяцы, дни недели и годы. Её календарь действителен до 2100 г. Более подробную информацию о ней можно получить в [1].

Для измерения температуры в устройстве применены цифровые термодатчики LM75, имеющие погрешность не более 2 °С в интервале температуры от -25 до +100°С. Более подробную информацию о них можно найти в [2].
Схема часов и термометра с бегущей строкой показана на рис. 1. Все функции, за исключением счёта времени, выполняет микроконтроллер DD2 (PIC16F873A-20I/P), тактируемый встроенным генератором с кварцевым резонатором ZQ2. Для управления устройством предназначены кнопки SB1—SB5. Когда их контакты разомкнуты, резисторы R4—R8 обеспечивают высокий логический уровень на соответствующих входах микроконтроллера. Резистор R11 поддерживает высокий уровень на входе начальной установки микроконтроллера, предотвращая перезапуск программы случайными помехами.

Для питания часов необходим стабилизированный источник напряжения 5 В с максимальным током нагрузки не менее 600 мА. Его подключают к разъёму XS1. В авторском варианте используется зарядное устройство от сотового телефона. Конденсаторы С1 и С2 — сглаживающие, причём ёмкость конденсатора С1 должна быть не менее 1000 мкФ.
В часах предусмотрен будильник. Его звуковой сигнал подаёт пьезоизлучатель со встроенным генератором НА1 (НРА24АХ). По сигналам микроконтроллера им управляет ключ на транзисторе VT7. Подбирая резистор R18 в цепи базы этого транзистора, можно в некоторых пределах регулировать громкость звука.

Для индикации режимов работы предназначены светодиоды HL1—HL3 красного цвета свечения. Их яркость изменяют, подбирая резисторы R15— R17.
Для программирования микроконтроллера, установленного на плату, на ней имеется разъём ХР1. На время выполнения этой операции к нему присоединяют программатор, например, PICkit2, EXTRAPIC или другой подобный [3]. В действующем устройстве этот разъём не нужен. Его можно не устанавливать, если до монтажа на плату запрограммировать микроконтроллер в панели программатора.

Программирование микроконтроллера заключается в загрузке программного кода из НЕХ-файла в его FLASH-память. Для этого требуется управляющая программатором программа, например WinPic800, которая находится в свободном доступе по адресу www.winpic800.com/descargas/WinPic800.zip   в сети Интернет. Подробную инструкцию по программированию микроконтроллера также можно прочитать в [3].
Для упрощения программы микроконтроллера и устройства в целом микросхема RTC DD1 и датчики температуры ВК1 и ВК2 связаны с микроконтроллером по одной и той же шине I2C. Датчик ВК2 подключают к разъёму ХР2 кабелем длиной до нескольких метров по схеме, изображённой на рис. 2.

Резисторы R2 и R9 соединяют линии SCL и SDA шины I2C с плюсом питания, поддерживают на них высокий уровень в паузах передачи информации, как того требует спецификация шины. Более подробно об использовании этой шины можно узнать из [4]. Адресные входы датчиков температуры ВК1 и ВК2 по-разному соединены с плюсом питания и общим проводом, что даёт микроконтроллеру возможность программно различать датчики.

Шестнадцатиразрядные параллельные коды для вывода информации на индикаторы образуются на выходах микросхем DD3 и DD4. Микроконтроллер DD2 заносит информацию в эти микросхемы последовательным кодом, используя для этого всего три линии своих портов В и С. Установив на линии RC6 и информационном входе сдвигового регистра микросхемы DD3 уровень, соответствующий значению (0 или 1) очередного разряда кода, он формирует на линии RC7 и тактовых входах обеих микросхем нарастающий перепад уровня. При этом уже содержащийся в соединённых последовательно сдвиговых регистрах код перемещается на одну позицию в сторону старшего разряда регистра DD4, а в освободившийся младший разряд регистра DD3 записывается значение, установленное микроконтроллером на его входе.

После шестнадцати таких операций весь код записан в образованный микросхемами DD3 и DD4 шестнадцатиразрядный сдвиговый регистр. Однако на выходах микросхем этот код ещё не появился, на них продолжает действовать тот, что был выведен в предыдущем цикле. Чтобы обновить состояние выходов, микроконтроллер формирует нарастающий перепад уровня на своей линии RB0 и входах записи кода из сдвиговых регистров микросхем DD3 и DD4 в их регистры хранения. Более подробно с работой микросхемы преобразователя последовательного кода в параллельный 74НС595 можно ознакомиться, прочитав [5].

После записи кода в микросхемы DD3 и DD4 микроконтроллер подаёт команду включить тот из шести индикаторов, для катодов элементов которого этот код предназначен. Чтобы не перегружать выходы микроконтроллера, аноды индикаторов соединены с ними через ключи на транзисторах VT1—VT6. Схема платы индикаторов показана на рис. 3, а условные обозначения элементов индикатора PSA08-11SRW – – на рис. 4. Разъёмы ХР1 и ХР2 платы индикаторов соединяют соответственно с разъёмами XS3 и XS2 основной платы.

Чертежи основной платы и размещения элементов на ней приведены на рис. 5. Она изготовлена из фольгированного с одной стороны стеклотекстолита. Плата рассчитана на установку датчика температуры ВК1 в корпусе DIP8, однако датчик LM75AD выпускают в корпусе SO8 для поверхностного монтажа, поэтому устанавливать его следует через плату-переходник (рис. 6). На рис. 5 контур переходника показан штрихпунктирной линией. В соответствующие отверстия переходника и платы вставляют и пропаивают с обеих сторон отрезки провода. Можно, конечно, изменив топологию печатных проводников на основной плате, обойтись и без переходника.

Двусторонняя печатная плата индикаторов показана на рис. 7. Обратите внимание, что разъёмы на ней устанавливают со стороны, противоположной той, где находятся индикаторы. При сочленении разъёмов обе платы располагаются одна над другой “этажеркой”, как можно видеть на фотоснимке рис. 8.
Транзисторы КТ502Б можно заменить любыми той же серии. Вместо светодиодов АЛ307БМ подойдут и другие маломощные красного цвета свечения, например АЛ310А.
Правильно собранное устройство с корректно запрограммированным микроконтроллером в налаживании не нуждается и начинает работать сразу после включения.

После подачи питания первым на индикаторы выводится приветственное сообщение. За ним следует время в 12- или 24-часовом формате, который можно выбрать в соответствующем пункте меню. Далее бегущая строка с текущим временем на 10с останавливается. По их истечении выводятся температура в помещении (показания датчика ВК1), температура на улице (показания датчика ВК2) и выдерживается ещё одна десятисекундная пауза, в течение которой индикатор показывает уличную температуру. После этого выводится число, за ним месяц и день недели прописью, после чего цикл (за исключением приветственного сообщения) повторяется.

Для установки текущего времени и других параметров переходят в режим “Меню” кратковременным нажатием на кнопку SB3 “М”. Включается светодиод HL2, показывая, что этот режим включён. На индикаторе после сообщения “НАСТРОЙКА” выводится и останавливается строка “ЧАС XX”, где XX — текущее значение часа, которое можно увеличить нажатием на кнопку SB1 “+” или уменьшить нажатием на кнопку SB5 “-“.
Для того чтобы перейти к следующему пункту меню, нажимают на кнопку SB2 “>”. С её помощью меню можно “листать” в указанном далее порядке, с помощью кнопки SB4 “<” – в противоположном. После первого нажатия на кнопку SB2 “>” выводится строка “МИН XX”, затем “ГОД 20ХХ” (по умолчанию 2011), далее “МЕСЯЦ XX”, “ЧИСЛО XX”, “ДЕНЬ НЕДЕЛИ XX”, “БУД_ЧАС XX” (час срабатывания будильника), “БУД_МИН XX” (минуты срабатывания будильника).

Затем на индикаторе появляется одна из строк “БУД ВЫКЛ” или “БУД ВКЛ”, отображая текущее состояние будильника. Его можно менять, нажимая на кнопку SB1 “+” или SB5 “-“. Когда будильник включён, горит светодиод HL1, сигнализируя об этом.
Далее выводится строка “ФОРМАТ XX”, где XX равно 12 или 24 в зависимости от выбранного нажатиями на кнопку SB1 “+” или SB5 ” формата отображения времени. После очередного нажатия на SB2 “>” выводится строка “ПОКА”, выключается светодиод HL2, часы переходят в обычный рабочий режим.

Когда текущее время совпадает с заданным временем срабатывания будильника, включаются светодиод HL3 и излучатель звука НА1. Чтобы отключить световую и звуковую сигнализацию, достаточно нажать на любую кнопку. Электрический сигнал для управления внешним исполнительным устройством при необходимости можно снять с выхода RB5 микроконтроллера, к которому через резистор R17 подключён светодиод HL3.
При выключенном внешнем питании устройство продолжает счёт времени — микросхема DD1 работает от литиевого элемента G1.

Прилагаемые файлы: source.zip

ЛИТЕРАТУРА
1. DS1307 – 64 X 8 часы реального времени с последовательным интерфейсом. – www.piclist.ru/D-DS-DSB1 “+”307-RUS/D-DS-DS1307-RUS.html
2. LM75A Digital tem- perature sensor and thermal watchdog. www.alldatasheet.com/datasheet-pdf/pdf/100962/PHILIPS/LM75AD.html
3. Долгий А. Программаторы и программирование микроконтроллеров. – Радио, 2004, № 1, с. 53.
4. Семёнов Б. Ю. Шина I2C в радиотехнических конструкциях. – М.: “СОЛОН-Р”, 2002.
5. 74НС595; 74НСТ595 8-bit serial-in, serial or parallel-out shift register with output latches; 3-state. — www.nxp.com/documents/data_sheet/74HC_HCT595.pdf

В. БАЛАНДИН, с. Петровское Тамбовской обл.
“Радио” №9 2012г.

radioelectronika.ru

Часы-календарь-термометр на ATMega8 — Меандр — занимательная электроника

Хочу представить еще одни часы с термометром на микроконтроллере. В основе устройства лежит микроконтроллер фирмы ATMEL серии AVR  — ATMega8. Микроконтроллер работает с микросхемой реального времени DS1307 и цифровым датчиком температуры DS18B20.

Микросхема DS1307 представляет собой экономичные часы реального времени с последовательным интерфейсом, которая содержит часы-календарь с представлением информации в двоично-десятичном коде и 56 байт энергонезависимого статического ОЗУ. Адрес и данные передаются по двунаправленной двухпроводной последовательной шине. Информация о реальном времени и календаре представляется в секундах минутах, часах, дне, дате, месяце и годе. Если текущий месяц содержит менее 31 дня, то микросхема автоматически определит количество дней в месяце с учетом высокосности текущего года. Часы работают или в 24-часовом или 12-часовом формате с индикатором AM/PM (до полудня/ после полудня). DS1307 содержит встроенную схему контроля уровня основного источника питания и при его недопустимом значении автоматически переключается к резервной батареи.

Датчик DS18B20 — цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора. DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются центральным микропроцессором.

Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite power”), при отсутствии внешнего источника напряжения.

Индикация реализована на семисегментном LED-дисплее с общим анодом. Принципиальная схема часов-термометра показана на рисунке.

Часы-термометр. Принципиальная схема

При кратковременном нажатии кнопки S1 начинают поочередно мигать разряды для осуществления настройки времени и даты. Для этого используем кнопки S2 и S3 («+» и «-» соответственно). При нажатии кнопки S3 на табло высвечивается температура окружающей среды.

Часы-термометр. Индикация времени

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

Точность часов в основном зависит от примененного кварца. У меня погрешность времени составляет около двух секунд в месяц (спешат).

Прибор «Часы-календарь-термометр на ATMega8» собран на двух печатных платах (см. фото).

В дальнейшем прибор будет усовершенствован, будут добавлены функции будильника и таймера.

Фьюзы для прошивки микроконтроллера:

Архив к проекту (печатные платы, прошивка, исходник):
[hidepost] Прошивка и печатные платы;
Исходник [/hidepost]

Внимание! Есть научная работа по этому проекту написанная на 25 страниц (на украинском языке). Оформление идеально подходит под дипломную или курсовую работу. Скачать содержание.
Связь с автором

Возможно, вам это будет интересно:

meandr.org

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

Подробности
Категория: Микроконтроллеры
Опубликовано 15.06.2016 13:34
Автор: Admin
Просмотров: 1641

Простые часы с термометром на микроконтроллере 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 разряда и имеют общий анод.

Вместо указаных на схеме вернхних включающих транзисторов платы можно использовать другие к примеру KT361B.

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

  • < Назад
  • Вперёд >
Добавить комментарий

radio-magic.ru