Хочу представить еще одни часы с термометром на микроконтроллере. В основе устройства лежит микроконтроллер фирмы 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]
подскажите пож-та, какие два индикатора убрать чтобы смотреь можно время и температуру
Без двух индикаторов, смотреть температуру и время не получится. Температура отображается на двух последних индикаторах. См. рисунок.
Подскажите пожалуйста, где можно взять исходный код прошивки?
Очень хотелось бы доработать функционал часов.
Спасибо!
Исходник прикрепил в конце статьи.
Ждем прошивки с новым функционалом прибора. Удачи!
Здравствуйте Ув админ. а можно-ли прошивку с общим катодом. я собирал по вашему проекту но без градусника на больших светодиодах. работает отлично секунды на секунд но дата произвольно меняется, по этому хотел с этой прошивкой запускать
Тут http://meandr.org/archives/17006
Прошил. Работает, но цифры отображаются в негативе.
Т.е. там, где сегменты должны светиться – они не светятся, а светятся те, которые светиться не должны.
Например, вместо “1” светится “Е”, вместо “8” – ничего.
Как вылечить?
Индикатор какой стоит?
Индикаторы 1,8″ с ОА.
Сегменты подключены к МК через ULN2803.
Анодные транзисторы BC557 (PNP).
Без ULN2803, нормально отображается?
С ULN2803 поменяй транзисторы на другую структуру.
Без ULN2803 цифры отображаются должным образом.
С ULN2803 и транзисторами 2N3904 (NPN), включенными эмиттерами к анодам индикаторов, картина неприглядная (яркость падает раз в 8-10, изменение цифр разобрать невозможно).
Возможно изменить код для работы с ULN2803 и PNP-транзисторами?
И еще, мельтешение индикации (10 секунд – время, 4 секунды – дата, и так дальше по кругу) сильно утомляет.
Хотелось бы его отключить, и вызывать при необходимости отображение даты кнопкой.
Сам я в написании и правке кода совершенно не силён.
Единственная надежда на знающих и умеющих.
А перебор даты температуры осуществляется только при нажатии на кнопку или автоматический перебор ?
Только при нажатии на кнопку
Мельтешение индикации (10 секунд – время, 4 секунды – дата) – автоматический перебор.
Температура – от кнопки.
Время-дата выводятся в динамическом режиме, а температура – в статическом.
В “железе” это выглядит диковато:
– яркость индикации при выводе температуры раза в 3 выше, чем при выводе времени-даты.
– температура выводится странным образом: не вся строка одновременно, типа 20С, а по 1 цифре в разрядах по очереди, сначала 2, затем 0, затем С и значок градуса (2->0->C->значок градуса.
В общем, впечатление от прошивки нерадостное.
Собрал в Протеусе. Не работает. На кнопки не реагирует.
Здравствуйте. Ув. автор, не могли бы Вы поделиться исходником схемы для протеуса?
Этот проект не разрабатывался в Протеусе.
Здравствуйте. Подскажите можно ли применить в этой схеме светодиодные индикаторы 26мм на 45мм –
E11801-G-UR3-8-W и какие нужно сделать при этом изменения в схеме. Спасибо.
Ваш индикатор E11801-G-UR3-8-W с общим анодом, значит его можно использовать в схеме. А поскольку он одноразрядный, то необходимо сделать разводку печатной платы согласно даташиту на E11801-G-UR3-8-W.
Я задал вам вопрос по поводу этого индикатора в связи стем что схема практически не работает. Высвечивается
010110. И свечение индикатора очень слабое. Я изготавливал плату свою согласно приложенной схеме. И вот после того как вы объяснили что даже с этим большим индикатором должно работать. Я посмотрел ваши файлы .lay еще не все посмотрел, и обнаружил несоответствие. В схеме на эмиттеры подается +5 , а на .lay файле подается минус питания. Где ошибка? Напишите пожалуйста.
Если Вы имеете ввиду эти часы с большим табло http://meandr.org/archives/17006, то там с общим катодом.
Здравствуйте !
А можно цифровой термометр приспособить для грелки аквариума ???
На работе собраны обычные часы на ИК1901 , но они могут только включать и выключать свет .
Я сделал плату по вашей схеме применив индикаторы E11801-G-UR3-8-W. Индикации я еще толком не добился, высвечивается 03 01 15. Возможно дата. А индикаторы еле светятся. Даже в темноте слабо. В чем искать причину?
Еще вопрос по индикатору E11801-G-UR3-8-W. Когда я подавал на индикаторы напряжение больше пяти вольт яркость свечения увеличивалась. При этом начинали довольно заметно светиться сегменты которые до этого не светились. Так и должно быть? Если нет то отчего это может происходить.
не пойму о чем речь схема дана с общим анодом .а плата под общий катод .как собрать все до кучи.печатка и прошивка соответствует какой схеме,,
Здравствуйте. В коментарии вверху вы написали что этот проэкт не разрабатывался в протеусе. Такая элементарная база в протеусе есть. А схема там практически не аботает. В чем здесь причина.
Возможно сделать так чтобы показывались только часы без даты.
Занимаюсь Вашими часами. Два вопроса:
– есть свежая прошивка для индикаторов с ОА?
– Могу ли я в программе pony prog прошить контроллер используя приведенную в статье картинку с фьюзами?
Спасибо!
Первое мое сообщение ожидает проверки. Добавлю туда же свое мнение о данной статье. Создается впечатление что статья написано чтобы была. Схема с общим анодом, печатка приложена с общим катодом. Подправил печатку- часы проработали пять минут. Железо все исправно. Из всех комментариев так и не понял у кого заработала данная схема. Неужели никто не модернизировал прошивку? В архиве прошивка для каких часов? Там два файла .her и .rom. Прошивать контроллер и EEPROM? Жаль потраченного времени.
Часы все таки пошли. Впечатления посредственные. Что в минусе:
– цифры горят довольно тускло;
– для показа температуры нужно нажимать кнопку №3;
– смена показаний дата- часы через каждые 10сек;
– более удачных прошивок нет.
Для повседневного пользования скорее всего не оставлю- не айс!
как запустил?у меня светятся 01.01.10 и не хотят идти.подтягивающие резисторы сменил на 4.7к результат тот же .это какой то косяк в прошивке,без ds1307 высвечивают 65.65.65