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

1

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

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

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

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

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

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

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

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

Связь с автором

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

Постоянная ссылка на это сообщение: http://meandr.org/archives/25872

31 комментарий

Перейти полю для комментария

  1. подскажите пож-та, какие два индикатора убрать чтобы смотреь можно время и температуру

    1. Без двух индикаторов, смотреть температуру и время не получится. Температура отображается на двух последних индикаторах. См. рисунок.

  2. Подскажите пожалуйста, где можно взять исходный код прошивки?
    Очень хотелось бы доработать функционал часов.
    Спасибо!

    1. Исходник прикрепил в конце статьи.
      Ждем прошивки с новым функционалом прибора. Удачи!

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

  4. Прошил. Работает, но цифры отображаются в негативе.
    Т.е. там, где сегменты должны светиться — они не светятся, а светятся те, которые светиться не должны.
    Например, вместо «1» светится «Е», вместо «8» — ничего.
    Как вылечить?

    1. Индикатор какой стоит?

      1. Индикаторы 1,8″ с ОА.
        Сегменты подключены к МК через ULN2803.
        Анодные транзисторы BC557 (PNP).

        1. Без ULN2803, нормально отображается?
          С ULN2803 поменяй транзисторы на другую структуру.

          1. Без ULN2803 цифры отображаются должным образом.
            С ULN2803 и транзисторами 2N3904 (NPN), включенными эмиттерами к анодам индикаторов, картина неприглядная (яркость падает раз в 8-10, изменение цифр разобрать невозможно).
            Возможно изменить код для работы с ULN2803 и PNP-транзисторами?
            И еще, мельтешение индикации (10 секунд — время, 4 секунды — дата, и так дальше по кругу) сильно утомляет.
            Хотелось бы его отключить, и вызывать при необходимости отображение даты кнопкой.
            Сам я в написании и правке кода совершенно не силён.
            Единственная надежда на знающих и умеющих.

  5. А перебор даты температуры осуществляется только при нажатии на кнопку или автоматический перебор ?

    1. Только при нажатии на кнопку

    2. Мельтешение индикации (10 секунд — время, 4 секунды — дата) — автоматический перебор.
      Температура — от кнопки.
      Время-дата выводятся в динамическом режиме, а температура — в статическом.
      В «железе» это выглядит диковато:
      — яркость индикации при выводе температуры раза в 3 выше, чем при выводе времени-даты.
      — температура выводится странным образом: не вся строка одновременно, типа 20С, а по 1 цифре в разрядах по очереди, сначала 2, затем 0, затем С и значок градуса (2->0->C->значок градуса.
      В общем, впечатление от прошивки нерадостное.

  6. Собрал в Протеусе. Не работает. На кнопки не реагирует.

  7. Здравствуйте. Ув. автор, не могли бы Вы поделиться исходником схемы для протеуса?

    1. Этот проект не разрабатывался в Протеусе.

  8. Здравствуйте. Подскажите можно ли применить в этой схеме светодиодные индикаторы 26мм на 45мм —
    E11801-G-UR3-8-W и какие нужно сделать при этом изменения в схеме. Спасибо.

    1. Ваш индикатор E11801-G-UR3-8-W с общим анодом, значит его можно использовать в схеме. А поскольку он одноразрядный, то необходимо сделать разводку печатной платы согласно даташиту на E11801-G-UR3-8-W.

      1. Я задал вам вопрос по поводу этого индикатора в связи стем что схема практически не работает. Высвечивается
        010110. И свечение индикатора очень слабое. Я изготавливал плату свою согласно приложенной схеме. И вот после того как вы объяснили что даже с этим большим индикатором должно работать. Я посмотрел ваши файлы .lay еще не все посмотрел, и обнаружил несоответствие. В схеме на эмиттеры подается +5 , а на .lay файле подается минус питания. Где ошибка? Напишите пожалуйста.

        1. Если Вы имеете ввиду эти часы с большим табло http://meandr.org/archives/17006, то там с общим катодом.

  9. Здравствуйте !
    А можно цифровой термометр приспособить для грелки аквариума ???
    На работе собраны обычные часы на ИК1901 , но они могут только включать и выключать свет .

  10. Я сделал плату по вашей схеме применив индикаторы E11801-G-UR3-8-W. Индикации я еще толком не добился, высвечивается 03 01 15. Возможно дата. А индикаторы еле светятся. Даже в темноте слабо. В чем искать причину?

  11. Еще вопрос по индикатору E11801-G-UR3-8-W. Когда я подавал на индикаторы напряжение больше пяти вольт яркость свечения увеличивалась. При этом начинали довольно заметно светиться сегменты которые до этого не светились. Так и должно быть? Если нет то отчего это может происходить.

  12. не пойму о чем речь схема дана с общим анодом .а плата под общий катод .как собрать все до кучи.печатка и прошивка соответствует какой схеме,,

  13. Здравствуйте. В коментарии вверху вы написали что этот проэкт не разрабатывался в протеусе. Такая элементарная база в протеусе есть. А схема там практически не аботает. В чем здесь причина.

  14. Возможно сделать так чтобы показывались только часы без даты.

  15. Занимаюсь Вашими часами. Два вопроса:
    — есть свежая прошивка для индикаторов с ОА?

    — Могу ли я в программе pony prog прошить контроллер используя приведенную в статье картинку с фьюзами?

    Спасибо!

  16. Первое мое сообщение ожидает проверки. Добавлю туда же свое мнение о данной статье. Создается впечатление что статья написано чтобы была. Схема с общим анодом, печатка приложена с общим катодом. Подправил печатку- часы проработали пять минут. Железо все исправно. Из всех комментариев так и не понял у кого заработала данная схема. Неужели никто не модернизировал прошивку? В архиве прошивка для каких часов? Там два файла .her и .rom. Прошивать контроллер и EEPROM? Жаль потраченного времени.

  17. Часы все таки пошли. Впечатления посредственные. Что в минусе:
    — цифры горят довольно тускло;
    — для показа температуры нужно нажимать кнопку №3;
    — смена показаний дата- часы через каждые 10сек;
    — более удачных прошивок нет.
    Для повседневного пользования скорее всего не оставлю- не айс!

    1. как запустил?у меня светятся 01.01.10 и не хотят идти.подтягивающие резисторы сменил на 4.7к результат тот же .это какой то косяк в прошивке,без ds1307 высвечивают 65.65.65

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