Двухканальный термометр, часы на ATmega8, DS18B20, DS1307, LCD1602

Admin 03.07.2016

Доброго дня уважаемые друзья!
Приветствую Вас на сайте «Мир микроконтроллеров»


Двухканальный термометр, часы
на ATmega8, DS18B20, DS1307, LCD 1602

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


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

Двухканальный термометр и часы на ATmega8, DS18B20, DS1307, LCD1602


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

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

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

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

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

Примененные детали

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


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

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

(На схеме ошибка: необходимо вывод DQ DS2 соединить с 14 выводом МК)
Печатная плата двухканального термометра с часами


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

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

Двухканальный термометр и часы на ATmega8, LCD

Работа программы организована по прерываниям по переполнению от таймера Т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» как описано выше)
кнопка «Установка» — «Полная» установка
Для входа в нужный режим необходимо нажать соответствующую кнопку и держать ее до тех пор пока экран дисплея не очистится. После очистки дисплея отпускаем кнопку и через секунду переходим в выбранный режим.


  Программа устройства в НЕХ файле (10,8 KiB, 72 hits)

  Программа в Algorithm Builder (27,3 KiB, 38 hits)

  Схема двухканального термометра, часов в "Cadsoft Eagle" (390,1 KiB, 363 hits)

  Печатная плата двухканального термометра, часов в "Sprint Layout" (51,7 KiB, 728 hits)

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


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

Набор для сборки двухканального термометра и часов на ATmega8 и LCD1602


Другие конструкции на микроконтроллерах:
1. Простые электронные часы на микроконтроллере ATyni26, с использование микросхемы часов реального времени DS1307
2. Простой термометр на микроконтроллере ATmega8 и датчика температуры DS18B20
3. Двухканальный термометр на микроконтроллере ATmega8 и датчиках температуры DS18B20
4. Двухканальный термостат, терморегулятор на ATmega8 и датчиках DS18B20
5. Двухканальный термометр, термостат, терморегулятор с возможностью работы по времени, одноканальный таймер реального времени на ATmega8 и датчиках DS18B20


(31 голосов, оценка: 4,94 из 5)
Загрузка...
Схема и конструкция двухканального термометра, часов на ATmega8, DS18B20, DS1307, LCD 1602
Published by: Мир микроконтроллеров
Date Published: 07/03/2016

Комментарии

Двухканальный термометр, часы на ATmega8, DS18B20, DS1307, LCD1602 — 42 комментария

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

  2. Здоравствуйте!
    Изменённая прошивка не работает, выходит только заставка.
    А на яндекс диске старая (с глюком при минусовой температуре) прошивка.

    • Здравствуйте Михаил!
      Проверьте правильность подключения DS1307 к МК.
      На ЯД файлы заменил.
      С уважением, Admin.

  3. Ждём, с нетерпением, изменненной прошивки. Пожелание одно, если можно, сделайте мигающее двоеточие между часами и минутами, часы оживут, как то оно так привычнее. Спасибо.

    • Здравствуйте Вячеслав!
      Процесс затянулся (праздники), но завтра с утра сяду разбираться с глюком.
      С уважением, Admin.

    • Здравствуйте Валерий и Вячеслав!
      Глюк найден, новые файлы выложены, должно работать.
      С уважением, Admin.

  4. Хотел добавить от себя, что RESET МК необходимо подтянуть к +5В через резистор 10К. Иначе, по крайне мере у меня, после часа работы, МК начинает постоянно перезагружаться.

  5. Собрал, работает с исправленной прошивкой, но так же при минусовых значениях показывает символ < ( т.е. если, например, температура "-15,3", на дисплее показывает "-<5,3". Предположу, что это глюк прошивки, т.к. при замене датчиков температуры, ситуация аналогичная.

    • Здравствуйте Вячеслав!
      Проверю и внесу исправления. Честно говоря, при отрицательной температуре работу конструкции не проверял.
      С уважением, Турчак Вадим.

  6. Здравствуйте! Собрал схему все работает. Одна проблема при минусовых значениях вместо цифр показывает знаки (;,<).Прошу помощи.Заранее спасибо.

  7. Здравствуйте!
    Собрал часы на плате, работают. Спасибо за схему.
    Усовершенствовать будете? Нужно датчик температуры улица, по радиоканалу, на дешёвых китайских RF модулях.

  8. Здравствуйте! Посмотрите у вас на схеме датчик DS1 подключён к PB0, а на печатке к PB2, это ошибка?

  9. Здравствуйте!
    Собрал схему на плате, выходит только заставка. Соединяю R7 и R8 на минус, настройки работают как на картинках. Термометры показывают температуру, а часы только нули. Почему так? В протеусе всё работает как по схеме.

    • Здравствуйте Владимир!
      R7 и R8 соединять на минус не надо — не будет общения часов с МК.
      Поменяйте 5 и 6 выводы часов между собой (SDL и SCA) — ошибка в схеме.
      Программу я переделывал под схему, только вот видимо не поменял или на сайте,, или на ЯндексДиске (Не помню).
      Не подскажите где Вы ее скачивали?
      С уважением, Admin.

      • Скачивал с сайта и с Яндекс диска. Схема одинаковая.
        Прошивать только Hex файл, eepom нет?

  10. Здравствуйте!
    Есть прошивка на русском языке? Для индикатора поддерживающего русский язык.

  11. собрал часы, включил . горит только надпись мир мк, шоп микроконтроллер.подскажите, что не так?

    • Здравствуйте Павел!
      По алгоритму работы программы, при включении устройства, сначала выводится «рекламная заставка» (3 сек), затем идет подпрограмма проверки DS1307. Проверяется 7-й бит нулевого регистра, если 7-й бит равен единице, осуществляется переход к подпрограмме полной установки времени, иначе — переход к выводу второй заставки (разделители времени, букв Д и У) и основному циклу (измерение температуры, считывание времени, вывод на экран показаний). Получается, что у Вас программа «виснет» в процессе проверки DS1307, в чем причина — сказать трудно, в подпрограмме проверки DS1307 нет кода, из-за которого возможно «зависание». Проверьте правильность подключения DS1307 к микроконтроллеру, наличие питания на выводах микросхемы, надежность контактов подтягивающих резисторов на выводах DS1307, установку FUSE битов (тактовая частота по умолчанию — 1 мГц), замените DS1307.
      С уважением, Admin.

      • Тоже самое что и у Павла, все микросхемы исправны, где то в вашей прошивке косяк.

        • Здравствуйте Андрей!
          Все фотографии к статье сделаны с работающего устройства, с прошивкой, которую выложил на сайте.
          На всякий случай соберу устройство еще раз на макетке и проверю, потом отпишусь.
          С уважением, Admin.

        • Здравствуйте Андрей и Павел!
          В выложенной прошивке выводы DS1307 SCL и SDA были подключены к выводам МК РС5 и РС4 соответственно, что не соответствовало приведенной схеме.
          Прошивку изменил под приведенную схему.
          С уважением, Admin.

    • Здравствуйте Тарас!
      Попробуйте скачать с ЯндексДиска (ссылка ниже прошивки и схемы)
      С уважением, Admin.

      • Здравствуйте! Всё скачалось. Большое СПАСИБО. В папке несколько hex файлов. Я так понимаю файл нужный, тот который имеет размер 11КБ

    • Здравствуйте Василий!
      У меня скачивается без проблем.
      Завтра выложу программы и печатку на ЯндекДиске.
      С уважением, Admin.

  12. Файл печатной платы не открывается. Пробовал и 5 и 6 SPRINT LAYOUT-пишут ошибку. Что не так?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *