Многофункциональные цифровые часы на микроконтроллере Attmega8. Схема и описание. Часы на ATmega8 Часы на микроконтроллере atmega8 шесть индикаторов

Данные электронные часы, построенные на микроконтроллере 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 923)


– будильник.
– термометр.

1. Функции.

– индикация. Поочередная.

PLUS MINUS

2. Настройка.

2.2. Нажатием на кнопку MENU SET

Группа CLOC :

– минуты;

– часы;

PLUS или MINUS );

с ".

Группа ALAr :

On OFF ", если запрещена;

Группа diSP :

tc

tt

EF , А r

P

Группа LiGH :

A ", в младших " On OF

L _ ".

L ¯ ".

L ".

2.4. Удержанием кнопок PLUS / MINUS

3. Примечания.

тема .

Видео работы программы, о т пользователя wolf2000 .

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

1. Функции.

– часы, формат отображения времени 24-х часовый, часы:минуты.

– цифровая коррекция точности. Возможна ежесуточная коррекция ±25 сек. Установленное значение в 1 час 0 минут 30 сек будет прибавлено/вычтено из текущего времени.

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

– термометр. Диапазон измеряемой температуры -55,0 ÷ 125,0 о С. Если температура выше 99,9 или ниже -9,9 о С десятые доли градуса не отображаются.

– индикация. Поочередная.

– настраиваемая анимация смены показаний.

– использование энергонезависимой памяти микроконтроллера для сохранения настроек при отключении питания.

– если в основном режиме нажать на кнопку PLUS , то на индикаторы выводится время, если нажать на MINUS – температура. При отпускании кнопок возобновляется автоматическая смена показаний.

– автоматическая регулировка яркости индикатора в зависимости от освещенности.

2. Настройка.

2.1. При включении питания часы в основном режиме.

2.2. Нажатием на кнопку MENU производится вход в режим настроек и выбора группы параметров для установки. В пределах группы выбор параметра для установки производится кнопкой SET . По-очереди доступны для установки:

Группа CLOC :

– минуты;

– часы;

– секунды (обнуляются при нажатии на кнопки PLUS или MINUS );

– величина коррекции. В старшем разряде символ "с ".

Группа ALAr :

– активация будильника. На индикаторе " On ", если работа будильника разрешена, " OFF ", если запрещена;

– минуты срабатывания будильника;

– часы срабатывания будильника.

Группа diSP :

– время индикации текущего времени. В старших разрядах символы " tc ". Диапазон установки 0÷99 сек. Если установлен 0, то время отображаться не будет;

– время индикации температуры. В старших разрядах символы " tt ". Диапазон установки 0÷99 сек. Если установлен 0, то температура отображаться не будет;

– выбор эффекта анимации. В старших разрядах символы " EF ". Если установлен 0, смена информации будет проводиться без эффектов , если выбран автоматический режим (символ "А "), то будет производиться поочередная смена эффектов. Если выбран режим r , то смена эффектов будет производиться случайным образом.

– выбор скорости анимации. В старшем разряде символ " P ". Диапазон установки 0÷99. Одна единица соответствует примерно 2 мсек, чем выше величина, тем медленнее идет анимация.

Группа LiGH :

– включение автоматического управления яркостью индикатора. В старшим разряде символ " A ", в младших " On ", если автоматическое регулирование разрешено, " OF ", если яркость устанавливается вручную;

– минимальный порог яркости для автоматического режима. В старших разрядах символы " L _ ".

– максимальный порог яркости для автоматического режима. В старших разрядах символы " L ¯ ".

– уровень яркости в ручном режиме. В старших разрядах символы " L ".

2.3. Устанавливаемый параметр мигает.

2.4. Удержанием кнопок PLUS / MINUS производится ускоренная установка параметра.

3. Примечания.

1. Для минимального и максимального порогов яркости диапазон установки 0 ÷ 99, но программой вводятся ограничения: минимальный не может быть больше либо равным максимальному и наоборот.

2. При установке параметров яркости информация на индикаторе отображается с выбранной величиной яркости.

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

Для обсуждения материалов статьи создана тема .

Видео работы программы, о т пользователя wolf2000 .



Предлагаю вашему вниманию простую схему и конструкцию «Двухканальный термометр, часы на ATmega8, DS18B20, DS1307, LCD (ЖК) 1602 «.
Конструкция позволяет выводить на двухстрочный символьный индикатор текущее время, дату, месяц, день недели и текущую температуру с двух цифровых датчиков температуры.

Схема двухканального термометра и часов

Конструкция собрана на микроконтроллере ATmega8-16PU, микросхеме часов реального времени DS1307 в DIP корпусе, цифровых датчиках температуры DS18B20, ЖК индикаторе LCD1602


Схема устройства создана в программе
Датчики температуры подключаются к разъемам DS1 и DS2:
— вывод 1 — к выводу GND датчика
— вывод 2 — к выводу DQ датчика
— вывод 3 — к выводу Vcc датчика

Подключение датчиков на схеме не соответствует печатной плате.
Программа подогнана под печатную плату, необходимо подключать:
— 1-й датчик к РВ1 (15-й вывод)
— 2-й датчик к РВ2 (16-й вывод)

Обращаю ваше внимание на подключение выводов порта D микроконтроллера к выводам индикатора:
— PD0 микроконтроллера — к выводу D7 индикатора
— PD1 микроконтроллера — к выводу D6 индикатора
— PD2 микроконтроллера — к выводу D5 индикатора
— PD3 микроконтроллера — к выводу D4 индикатора
Такое подключение выбрано с целью упрощения разводки дорожек на печатной плате

Детали, примененные в конструкции:

В качестве ЖК дисплея применен 2- строчный, 16-символьный — негативный, белые символы на темно-синем фоне с белой подсветкой. Также можно использовать любой аналогичный знакосинтезирующий (символьный) двухстрочный, 16-символьный индикатор, с поддержкой кириллицы или без поддержки, поддерживающий систему команд контроллера НD44780 типа:
— STN (FSTN) Negative (blue или black) с подсветкой (такой применен в конструкции) — такие индикаторы работают только с подсветкой
— FSTN Positive, TN Positive, HTN Positive — с подсветкой или без нее
Примененный китайский LCD индикатор не имеет встроенной кириллицы, поэтому, для наглядности вывода дня недели на индикатор в ОЗУ знакогенератора (CGRAM) записаны пользовательские символы — «П», «н», «т», «Ч», «б» и два символа в инверсном виде «Д» и «У».

Печатная плата двухканального термометра и часов

Конструкция собрана на односторонней печатной плате, все примененные детали — «выводные»
Печатная плата устройства создана в программе .
На плате имеется три перемычки — П1, П2, П3
Кварцевый резонатор установлен на плате «лежа», корпус резонатора припаивается перемычкой к контактной площадке на плате под резонатором.

Описание работы двухканального термометра и часов

Основой конструкции «Двухканальный термометр, часы» является микроконтроллер ATmega8 в DIP корпусе с тактовой частотой 1 МГц от встроенного генератора с внутренней RC цепочкой. Установка FUSE-битов — по умолчанию, ничего менять не надо.
Для определения текущего времени применена микросхема часов реального времени DS1307 , которая отсчитывает секунды, минуты, часы, дату месяца, месяц, день недели и год с компенсацией високосного года действительной до 2100 года.
На индикацию выводятся только:
— текущее время — часы и минуту
— дата месяца
— месяц
— день недели
В качестве датчиков температуры применены два цифровых датчика температуры DS18В20 , которые позволяют измерить текущую температуру в пределах от -45 градуов до +125 градусов Цельсия с точностью 0,5 градуса.
На индикацию выводится текущая температура каждого датчика с разрядностью 0,1 °С
Перед значением каждой температуры выводятся символы «Д» и «У» в инверсном виде:
— «Д» — температура в доме
— «У» — температура на улице

Работа программы организована по прерываниям по переполнению от таймера Т1 возникающие каждые 4 секунды. Обновление текущего времени происходит каждые 4 секунды, обновление текущих температур с датчиков — поочередно, через каждые 4 секунды.

Питание устройства осуществляется от стабилизированного источника питания напряжением 5 Вольт, можно применить зарядное устройство от сотового телефона, или автономный источник питания — АКБ. Потребляемый ток зависит от яркости подсветки (номинала резистора R3) и в конкретном случае составляет 12 мА.

Управление устройством осуществляется двумя кнопками:
— S1 — «Выбор»
— S2 — «Установка»

При первом включение устройства (или при каждом включении при отсутствии резервного источника питания DS1307 — BAT1) устройство переходит в режим «Полной» установки. При этом необходимо выставить текущие год, месяц, дату, день недели и текущее время — часы-минуты. В этом режиме перевод пояснительной информации на русский не проводился (в отличии от индикации дня недели), все пояснения выводятся на английском (полная установка производится крайне редко, разобраться в ней не трудно):

Установка года «Year»:
Мигающий курсор в виде белого прямоугольника указывает где и что нужно вводить:
— кнопкой «Установка» — выставляем десятки лет
— кнопкой «Выбор» — переходим к установке единиц года
— кнопкой «Установка» — выставляем значение единиц года
— кнопкой «Выбор» — переходим к следующей установке

Установка месяца «Month»
— аналогично установке года

Установка дня месяца «Data»:
— аналогично установке года

Установка дня недели «Week»:
— аналогично установке года, при этом — 1- Пн, 2 — Вт, 3 — Ср, 4 — Чт, 5 — Пт, 6 — Сб, 7 — Вс

Установка текущего времени «Hour_Min»
Для примера, текущее время 17 часов 39 минут:
— кнопкой «Установка» — выставляем десятки часов — 1
— кнопкой «Выбор» — переходим к установке единиц часов
— кнопкой «Установка» — выставляем единицы часов — 7
— кнопкой «Выбор» — переходим к установке десятков минут — 4
— кнопкой «Установка» — выставляем единицы минут -0
— секунды уже обозначены на дисплеи как «00»
— ровно в 17 часов 40 минут нажимаем кнопку «Выбор» и текущее время 17 часов 40 минут 00 секунд запишется в DS1307

В рабочем режиме кнопки «Выбор» и «Установка» позволяют перейти в режимы:
кнопка «Выбор» — коррекция времени (при этом производится установка только текущего времени «Hour_Min» как описано выше)
кнопка «Установка» — «Полная» установка
Для входа в нужный режим необходимо нажать соответствующую кнопку и держать ее до тех пор пока экран дисплея не очистится. После очистки дисплея отпускаем кнопку и через секунду переходим в выбранный режим.

Конструкция была разработана и тестирована на макетной плате, в «железе» не собиралась.
Поступило много комментариев на неработоспособность устройства, несоответствие печатной платы схеме.
Решено было воссоздать устройство в «железе».
Ниже представлены фотографии собранного устройства по схеме, печатной плате и прошивке опубликованных на этой странице.
Устройство заработало сразу, проблем не наблюдается.
Печатная плата выполнена методом ЛУТ. Из-за ошибки установки микросхем на плате, их пришлось выпаивать и переставлять (и на старуху бывает проруха), что привело к повреждению печатных проводников и, как результат, — внешний вид не очень, перемычка П2 установлена со стороны печатных проводников (не просверлил отверстия), датчик DS1 подсоединен кабелем длиной около 1 метра (так, чтобы он был на высоте около 30 см от пола, датчик DS2 подсоединен кабелем длиной 5 метров и выведен за окно. Разъемы для подключения датчиков взяты от куллеров старых компьютеров.

Была одна проблема — не сразу запустилась RTC DS1307, причина — канифоль между выводами кварца. После промывки платы часы заработали.

(10,8 KiB, 1 990 hits)

(27,3 KiB, 1 471 hits)

(390,1 KiB, 1 288 hits)

(51,7 KiB, 2 476 hits)

Скачать с ЯндексДиска (дополнительно — даташиты на русском)

Все необходимые детали для сборки «Двухканального термометра, часов на ATmega8, DS18B20, Ds1307», включая запрограммированный микроконтроллер, вы можете заказать в интернет- магазине сайта

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

1. Функции.

– часы, формат отображения времени 24-х часовый, часы:минуты.

– цифровая коррекция точности. Возможна ежесуточная коррекция ±25 сек. Установленное значение в 1 час 0 минут 30 сек будет прибавлено/вычтено из текущего времени.

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

– термометр. Диапазон измеряемой температуры -55,0 ÷ 125,0 о С. Если температура выше 99,9 или ниже -9,9 о С десятые доли градуса не отображаются.

– индикация. Поочередная.

– настраиваемая анимация смены показаний.

– использование энергонезависимой памяти микроконтроллера для сохранения настроек при отключении питания.

– если в основном режиме нажать на кнопку PLUS , то на индикаторы выводится время, если нажать на MINUS – температура. При отпускании кнопок возобновляется автоматическая смена показаний.

– автоматическая регулировка яркости индикатора в зависимости от освещенности.

2. Настройка.

2.1. При включении питания часы в основном режиме.

2.2. Нажатием на кнопку MENU производится вход в режим настроек и выбора группы параметров для установки. В пределах группы выбор параметра для установки производится кнопкой SET . По-очереди доступны для установки:

Группа CLOC :

– минуты;

– часы;

– секунды (обнуляются при нажатии на кнопки PLUS или MINUS );

– величина коррекции. В старшем разряде символ "с ".

Группа ALAr :

– активация будильника. На индикаторе " On ", если работа будильника разрешена, " OFF ", если запрещена;

– минуты срабатывания будильника;

– часы срабатывания будильника.

Группа diSP :

– время индикации текущего времени. В старших разрядах символы " tc ". Диапазон установки 0÷99 сек. Если установлен 0, то время отображаться не будет;

– время индикации температуры. В старших разрядах символы " tt ". Диапазон установки 0÷99 сек. Если установлен 0, то температура отображаться не будет;

– выбор эффекта анимации. В старших разрядах символы " EF ". Если установлен 0, смена информации будет проводиться без эффектов , если выбран автоматический режим (символ "А "), то будет производиться поочередная смена эффектов. Если выбран режим r , то смена эффектов будет производиться случайным образом.

– выбор скорости анимации. В старшем разряде символ " P ". Диапазон установки 0÷99. Одна единица соответствует примерно 2 мсек, чем выше величина, тем медленнее идет анимация.

Группа LiGH :

– включение автоматического управления яркостью индикатора. В старшим разряде символ " A ", в младших " On ", если автоматическое регулирование разрешено, " OF ", если яркость устанавливается вручную;

– минимальный порог яркости для автоматического режима. В старших разрядах символы " L _ ".

– максимальный порог яркости для автоматического режима. В старших разрядах символы " L ¯ ".

– уровень яркости в ручном режиме. В старших разрядах символы " L ".

2.3. Устанавливаемый параметр мигает.

2.4. Удержанием кнопок PLUS / MINUS производится ускоренная установка параметра.

3. Примечания.

1. Для минимального и максимального порогов яркости диапазон установки 0 ÷ 99, но программой вводятся ограничения: минимальный не может быть больше либо равным максимальному и наоборот.

2. При установке параметров яркости информация на индикаторе отображается с выбранной величиной яркости.

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

4. Особенности схемы.

1. Если предполагается использовать функцию автоматической регулировки яркости индикатора, то вместо RV 1 устанавливается фоторезистор. А значение резистора R 17 следует подобрать для получения нужной чувствительности системы.

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

3. Пищалка BUZ 1 должна быть со встроенным генератором. В зависимости от тока потребления возможно придется установить усилитель (транзисторный ключ).

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

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

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

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

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

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

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

error: Content is protected !!