Например TDA7294

Форум РадиоКот :: Просмотр темы - Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
Форум РадиоКот
https://radiokot.ru/forum/

Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)
https://radiokot.ru/forum/viewtopic.php?f=57&t=21235
Страница 1 из 147

Автор:  Danko [ Ср ноя 04, 2009 11:09:05 ]
Заголовок сообщения:  Часы-календарь-термометр (Mega8+DS1307+DS18B20+4LED)

Часы - календарь - будильник - термометр
ATMega8 / ATmega88
Исходный текст на Си (не на Васике, не на Ассемблере, не на Паскале, не на ... только Си)
Изображение
Небольшие пояснения:
последовательность индикации: время/дата/температура,
время каждой индикации устанавливается самостоятельно (время 5-50 сек, дата 0-50 сек, температура 0-25 сек),
автоматический переход на летнее/зимнее время (последнее воскресенье марта/октября)

последовательность установки по нажатию кнопки set:
часы, минуты, год (d1), месяц (d2), день (d3), время индикации времени (t1), время индикации даты (t2), время индикации температуры (t3), возвращение в режим индикации времени

если часы спешат или отстают, то по нажатии кнопки "К" можно перейти в меню выбора суточной корректировки хода часов. Кнопками "+" и "-" выбирается нужное количество секунд (плюс/минус 60 сек/сутки).

если в режиме установок не нажимать кнопки более 1 мин часы перейдут в режим индикации времени.

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

при установке 0 сек. для индикации даты и 0 сек. для индикации температуры соответствующая индикация отключается т.е. можно сделать просто часы и/или с календарем и/или с термометром.

в режиме индикации времени кнопками "+" и "-" можно вызвать на 5 сек. индикацию температуры (первого и второго датчиков соответственно)

Будильники:
два светодиода - индикация активности будильника(ов) т.е. если будильник установлен и включен.
звук - один из двух вариантов.

Ряд настроек доступ к которым осуществляется удержанием одной из кнопок при включении питания:
Выбор типа индикатора делается удержанием одной из четырех кнопок ("+", "-", "сек", "уст").
Если быть более точным то не выбор индикатора, а выбор активного 0 или 1 для зажигания сегмента и выбор активного 0 или 1 для зажигания разряда.
"+" - сегмент "0", разряд "0"
"-" - сегмент "0", разряд "1"
"сек" - сегмент "1", разряд "0"
"уст" - сегмент "1", разряд "1"
----------

Изменение доп.настроек.
Вход в настройки удержанием пятой кнопки (кнопки "К") при включении питания.

Выбор ячейки производится кнопками "+" и "-", изменение состояния ячейки кнопкой "Уст". При нажатии кнопки "Уст" сразу же производится запись в EEPROM.
Выход из меню либо сброс МК, либо кнопка "Сек".

номера ячеек EEPROM и их значение (на индикаторе номер ячейка Е2 - Е8 и ее значение):
2 - индикация незначащего нуля в десятках часов
3 - отбрасывание десятых долей при индикации температуры и добавление символа "С"
4 - включение плавной смены показаний
5 - регулятор яркости (фоторезистор)
6 - работа с двумя видами точек
7 - "пятый" разряд (знак температуры)
8 - режим индикации состояния ADC (0 - кнопки, 1 - фоторезистор, F - откл.)
9 - автоперевод стрелок лето/зима (0 - отключено, 1 - включено т.е. по умолчанию включено)
а - максимальный уровень яркости (от 40 до 200) индикация в десятках т.е. на индикаторе от 4 до 20

* точки-разделители часов и минут подключаются вместо точки первого разряда,
а точка как разделитель целой и дробной части темп. - на своем месте т.е. во втором разряде

* пятый разряд (знак температуры), расположенный слева от первого - это два сегмента
горизонтальный и вертикальный которые образуют знак "минус" и знак "плюс".
Вместо точки 3-го разряда подключается горизонтальный сегмент, а вместо точки 4-го - вертикальный.

для активизация записать 0.
Почему ноль? Спросите у Atmel почему установленный фуз - "0", а не установленный - "1".

----------
Функция очистки памяти DS1307 и установки "заводских" настроек:
при первом включении часов.
время индикации 30 сек, 5 сек, 5 сек (время, дата, темп.),
будильники 1 и 2 - OFF

раннее было: Активизируется удержанием кнопки AL1 (буд1) при включении питания.

P.S.
Fuse bit's (ДИНАМИКА)
Mega8 - (Int RC = 4 MHz) SKSEL3..0 = 0011, SUT1..0 = 10, все остальные = 1
Mega88 - (Int RC = 8 MHz) SKSEL3..0 = 0010, SUT1..0 = 10, все остальные = 1
Fuse bit's (СТАТИКА)
Mega8 - (Int RC = 8 MHz) SKSEL3..0 = 0100, SUT1..0 = 10, все остальные = 1
Mega88 - (Int RC = 8 MHz) SKSEL3..0 = 0010, SUT1..0 = 10, все остальные = 1

прошивка в папке hex
доп.информация в папке plus

* CVAVR не ниже версии 2.0
* Proteus не ниже версии 7.7


Еще несколько моих проектов:

часы на светодиодных 7-ми сегментниках (12 разрядов) Часы-термометр-будильник 12LED(mega8/88+DS1307+DS18x20*2)

часы на LCD 2*16 и на Mega8/88 Часы-термометр-будильник (Mega8+DS1307+DS18B20+LCD16*2)
и их улучшенная версия на Mega168 Часы термометр-будильник Mega168_DS1307(M41T56)_DS18x20_LCD16x2

Вложения:
Комментарий к файлу: ДИНАМИКА: Исходники (CVAVR) + прошивка (hex) + проект в Proteus 7.7SP2 (все для m8 и m88)
Clock-Term-Calendar-Alarm_LED_2011-08-11.zip [174.79 KiB]
Скачиваний: 9169
Комментарий к файлу: СТАТИКА: Исходники (CVAVR) + прошивка (hex) + проект в Proteus 7.7SP2 (все для m8 и m88)
Clock-Term-Calendar-Alarm_LED_2011-03-01_static_595.zip [179.95 KiB]
Скачиваний: 6286
Комментарий к файлу: схема (GIF + sPlan 7.0) Динамика и Статика
Shema_Clock-Term-Calendar-Alarm_4LED-Big.zip [169.65 KiB]
Скачиваний: 10505
Комментарий к файлу: печатная плата (авторы Nimnul и Headshotbacs)
Nimnul_and_Headshotbacs.zip [33.96 KiB]
Скачиваний: 6899
Комментарий к файлу: печатная плата (автор YuraTV)
YuraTV.zip [187.71 KiB]
Скачиваний: 6847

Автор:  Pavel_1978 [ Ср ноя 04, 2009 12:11:23 ]
Заголовок сообщения: 

проект в шпротеусе не запускается, у меня 7.4 SP3

выложи схему просто в .jpg

Автор:  Ilnur [ Ср ноя 04, 2009 13:09:09 ]
Заголовок сообщения: 

Danko,если тебе не сложно давай вместо индикатора и пользуй диплей 16х2.

Автор:  Ilnur [ Ср ноя 04, 2009 13:11:47 ]
Заголовок сообщения: 

Мне кажется на дисплее 16х2 смотется будет красивее

Автор:  Pavel_1978 [ Ср ноя 04, 2009 13:37:53 ]
Заголовок сообщения: 

Ilnur писал(а):
Мне кажется на дисплее 16х2 смотется будет красивее


зачем????? конструкция самодостаточная!!!

Автор:  larik [ Ср ноя 04, 2009 13:45:31 ]
Заголовок сообщения: 

дисплей 16*2 будет маленький по сравнению с большими светодиодными индикаторами,висящими на стене

Автор:  Danko [ Ср ноя 04, 2009 14:37:13 ]
Заголовок сообщения: 

Моя печатка под smd.

Размеры 93*32 мм. На плате не разведены будильник и фоторезистор.

ПЕЧАТКА:
Изображение

ФОТО в сборе:
Изображение

Вложения:
photo_m8_smd_1.jpg [133.81 KiB]
Скачиваний: 98657
photo_m8_smd.jpg [36.32 KiB]
Скачиваний: 97479
Комментарий к файлу: печатка без будильника и без фоторезистора
ПП_m8_smd.zip [19.75 KiB]
Скачиваний: 2765

Автор:  Danko [ Вт ноя 10, 2009 16:22:27 ]
Заголовок сообщения: 

Печатные платы и фото часов от Gordon Shumway
Вложение:
Gordon_Shumway_28-12-2010.zip [255.6 KiB]
Скачиваний: 2840


Изображение
Изображение

Вложения:
photo_2.jpg [97.46 KiB]
Скачиваний: 96845
photo_1.jpg [58.66 KiB]
Скачиваний: 97446

Автор:  krolaka [ Вт ноя 10, 2009 20:17:39 ]
Заголовок сообщения: 

хмм хотя я давно уже не стардаю фигней но часы понравились оригинально зделано :) насколько они точно ходят? :)

если посчитать что детали брать у нас на рынке то выходить очень дорого atmega8 20 грн, DS1307 22 грн, DS18B20 27 грн индикаторы светодеодные 40 грн итого 109 грн не считаю мелочевки.

Автор:  headshotbacs [ Ср ноя 11, 2009 04:18:45 ]
Заголовок сообщения: 

Не знаю, у нас в городе так же точно спекулянты навернули по цене. Вот иногда выбает езжу на радиорынок "Маяк" (тот что в Донецке) так там Мега стоит около 10-11 грн, датчик ДС18Б20 около 7 грн, индикаторы около 10-15 грн (смотря какие). Но с нашими ценами так и получается что дешевле было-бы купить готовые. Но это хобби и на него денег жалеть нельзя.

Автор:  Freiwind [ Ср ноя 11, 2009 09:06:30 ]
Заголовок сообщения: 

krolaka писал(а):
если посчитать что детали брать у нас на рынке то выходить очень дорого atmega8 20 грн, DS1307 22 грн, DS18B20 27 грн индикаторы светодеодные 40 грн итого 109 грн не считаю мелочевки.

Мне то же самое обошлось примерно в 12$ с индикаторами 2,3" (56мм)

Автор:  GP1 [ Ср ноя 11, 2009 09:24:58 ]
Заголовок сообщения: 

Понравилась конструкция наверное буду повторять.
Но у мняу возникло подозрение в правомерности подключения индикатора к +12В (я думаю их в машину забульбенить) ведь при неактивном уровне (1) все 12В будут прикладываться к выходу мк через резистивный делитель, я думаю надо добавить еще по транзистору. Если интересно решал аналогичную задачу, для своего прибамбаса, здесь
http://radiokot.ru/forum/viewtopic.php?p=318446#318446

Автор:  Danko [ Ср ноя 11, 2009 15:06:16 ]
Заголовок сообщения: 

krolaka писал(а):
хмм хотя я давно уже не стардаю фигней но часы понравились оригинально зделано :) насколько они точно ходят? :) ....
Точность, как известно понятие относительное :idea:
Есть рекомендации от производителя по подключению кварца.
В моих часах есть корректировка суточного хода часов т.е. в 00:00 либо добавляется либо вычитается установленное кол-во секунд (от 0 до 60), как в старых наручных часах Электроника-5, только точность установки +- 1 сек.
В моих домашних часах индикаторы небольшие и никаких транзисторных ключей нет. По сему на вопрос про 12В ответить не могу. :(

Автор:  headshotbacs [ Ср ноя 11, 2009 15:24:16 ]
Заголовок сообщения: 

Только что скачал протэус, и появился мгновенно вопрос:
Danko! а почему мигает точка когда часы показывают дату???

Автор:  Danko [ Ср ноя 11, 2009 15:33:30 ]
Заголовок сообщения: 

headshotbacs писал(а):
Только что скачал протэус, и появился мгновенно вопрос:
Danko! а почему мигает точка когда часы показывают дату???

В часах точка 1 Гц
в дате точка 4 Гц.
Можно точку в дате совсем убрать. Пока окончательно не решил, что лучше, и как лучше сделать.
Есть идеи? буду рад!

Автор:  Pavel_1978 [ Ср ноя 11, 2009 15:50:38 ]
Заголовок сообщения: 

Danko писал(а):
В часах точка 1 Гц
в дате точка 4 Гц.
Можно точку в дате совсем убрать. Пока окончательно не решил, что лучше, и как лучше сделать.
Есть идеи? буду рад!


а может между парами индикаторов установить два светодиода - чтобы они мигали в режиме отображения часов - 18:23, а для даты использовать точку индикатора 12.11
правда прийдется использовать свободную ногу контроллера....

Автор:  Danko [ Ср ноя 11, 2009 15:58:13 ]
Заголовок сообщения: 

Есть шесть свободных ног, а с програмной стороны проблем не будет.

Автор:  amirus [ Чт ноя 12, 2009 22:27:17 ]
Заголовок сообщения: 

Уважаемый Dankо, не могли бы вы выложить еще версию прошивки с общим катодом?
Заранее Вам благодарен.

Автор:  headshotbacs [ Пт ноя 13, 2009 08:13:26 ]
Заголовок сообщения: 

amirus писал(а):
Уважаемый Dankо, не могли бы вы выложить еще версию прошивки с общим катодом?
Заранее Вам благодарен.


Прошивка и так с общим катодом. Использованная в схеме ULN2803 аппаратно делает "Общий анод". Просто убери ее из схемы и все.
И да прибудет с тобой великий и могучий общий катод 8)

Поехали дальше:

Danko писал(а):
Можно точку в дате совсем убрать. Пока окончательно не решил, что лучше, и как лучше сделать.
Есть идеи? буду рад!


Вот такое предложение:
1. При показе температуры убрать десятые и добавить букву С (например чтоб они показывали "20°С" или "-5°С").
2. Убрать мигание точки разделителя в режиме показа даты.
3. Частоту точки разделителя в режиме показа времени увеличить примерно до 3 Гц.

Думаю тогда будет более понятней что именно показывают часы.

И еще чтоб убить двух зайцев прицепить на свободную ногу (только без изменения исходной схемы) контроллера еще один светодиод.
Pavel_1978 писал(а):
а может между парами индикаторов установить два светодиода - чтобы они мигали в режиме отображения часов - 18:23, а для даты использовать точку индикатора 12.11
правда прийдется использовать свободную ногу контроллера....


Т.е. те люди кто повторял конструкцию которая описывалась в ветке Attiny2313+DS1307+DS18B20 и у которых изначально точка была одна (потому что многие использовали точку от семисегментного индикатора а не добавляли отдельный светодиод) просто перепрошили МК. А те кто желает чтоб точек было две, просто добавили бы еще одну (прицепив на свободную ногу) по желанию и при этом прошивка бы осталась таже.
Danko что скажете?

P.S. Выкладываю печатки часов (чтоб были и в этой ветке)

Вложения:
Комментарий к файлу: Печатная плата для часов на ATmega8
.rar [41.41 KiB]
Скачиваний: 4581
Комментарий к файлу: Схема
.rar [187.75 KiB]
Скачиваний: 4007

Автор:  Danko [ Пт ноя 13, 2009 12:16:28 ]
Заголовок сообщения: 

headshotbacs, спасибо за участие в проекте. :beer:
Про индикацию точки:
1. все выполнимо (ресурсов достаточно)
2. варианты выбора подключения точки сделать програмно (несколько разных прошивок), джампер (перемычка между свободными ножками).
3. выбор индикации точности градусов аналогично пункту 2.

Последнее: переход на летнее/зимнее время будет переписан т.к. работает он только в идеальных условиях т.е. питание подано часы идут. Если в день перехода (перевода стрелок) питание будет отключено, то условия перевода стрелок не настанут и часы не переведутся.

Страница 1 из 147 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/