«

»

Распечатать Запись

Часы-календарь-термометр на 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Архив к проекту (печатные платы, прошивка, исходник):
Чтобы скачать файл войдите или зарегистрируйтесь

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

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

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

26 комментариев

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

  1. Aizhan

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

    1. admin

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

  2. Grendolf163Rus

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

    1. admin

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

  3. tolik-1965

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

  4. shtucer

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

    1. Aleksej

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

      1. shtucer

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

        1. Aleksej

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

          1. shtucer

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

  5. sanya t34

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

    1. admin

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

    2. shtucer

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

  6. Ashenfreil

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

  7. 1

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

    1. admin

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

  8. Sergey12121

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

    1. admin

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

      1. Sergey12121

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

        1. admin

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

  9. sergey67

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

  10. Sergey12121

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

  11. Sergey12121

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

  12. hryk

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

  13. Sergey12121

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

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