Часы-термометр на микроконтроллере ATmega8.

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


zordog
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт ноя 12, 2009 08:38:04

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение zordog »

alex_dd писал(а):zordog

Ставил в протеусе время в ваших часах
23:59 31.12.2010 CP

через минуту получилось
00:00 01.13.2010 Чt

вот так вот

PS : причем в 13 месяце всего 6 дней и по прохождении их ,наступает 2011 год.
где-то что то не так....

С уважением Александр


О как =) странно, проверю тот ли окончательный вариант я выложил. Извиняюсь.
zordog
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт ноя 12, 2009 08:38:04

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение zordog »

Каюсь... Дома иcходники, на работе исходники... посчитал что дома последний вариант.

Обновите прошивку.
alex_dd
Родился
Сообщения: 2
Зарегистрирован: Вт ноя 24, 2009 23:53:33
Откуда: Санкт-Петербург

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение alex_dd »

Вот теперь нормально перескакивают.

Молодец интересный проект!

и еще вопрос а в меге много места осталось?

и в планах есть ли прикручивание датчика влажности?

С уважением Александр
zordog
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт ноя 12, 2009 08:38:04

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение zordog »

to alex_dd:

Занято 84% объема.
Про датчик влажности даже не думал, нет надобности.

alex_dd писал(а):Молодец интересный проект!


Читаем 5 постов выше и высказываем благодарности автору, а не человеку, с напильником в руках, который заточил под себя отличный проект.
Виталий-1
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт сен 09, 2010 19:59:01

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение Виталий-1 »

Да, не плохо бы было до полного комплекта - датчик влажности прикошачить.
Склоняю голову перед автором, великолепный чудо-проект.
С УВАЖЕНИЕМ.
Виталий-1 :)
zordog
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Чт ноя 12, 2009 08:38:04

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение zordog »

Всем доброго времечка.

Во первых:
Датчиком влажности у меня выступает супруга. Именно она управляет включением и выключением увлажнителя (парогенератора). На мой вопрос, про автоматизацию процесса, был получен укорительный взгляд, после чего я отстал. =) Поэтому и нет надобности в датчике и т.д.

Во вторых:
Если выкроить время, то в принципе можно и проработать этот момент, НО никто даже не предложил варианты датчиков. я присмотрел ЭТОТ. Опять же... если выкроить время...
Виталий-1
Встал на лапы
Сообщения: 123
Зарегистрирован: Чт сен 09, 2010 19:59:01

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение Виталий-1 »

zordog Добрый вечер.
Благодарю Вас, что не отказали.
Я, думаю что с этой просьбой, ко мне присоединяться многие фонаты этого действительного,
замечательного проекта.
Будем ждать от Вас ВЕСТЕЙ.
С УВАЖЕНИЕМ, Виталий-1
УДАЧИ !!!
Romanrus1973
Родился
Сообщения: 6
Зарегистрирован: Сб ноя 01, 2008 10:18:18

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение Romanrus1973 »

Здравствуйте. Сделал часы, завелись с первого раза, спасибо автору, использую их в качестве термостата отопительной системы. Возможно ли добавить четвертую временную зону ? Версия часов на 9-ти индикаторах с ОК и 74hc595.( Часы-термометр на микроконтроллере ATmega8. V 2.0)
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение DimAlt »

Насколько я помню, то с временными зонами этот проект по функциональней http://startcd.narod.ru/cl_termo2/index.html

Добавил 4 зоны, версия прошивки эта
http://startcd.narod.ru/clock/cl_termo/v2.23.7z 8 основных будильников и 8 для управления нагрузкой макс. время 23-59-59. Добавлен автоматический переход на летние зимние время.
Вложения
v2.23 4zon.rar
(26.98 КБ) 252 скачивания
Последний раз редактировалось DimAlt Сб окт 30, 2010 10:55:07, всего редактировалось 1 раз.
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение O-LED »

O-LED писал(а):Dimalt вопрос не совсем по часам, но вы это применяли в своих часах.
в первых версиях своих часов вы использовали встроенные конденсаторы для кварца. как вы их подключали? в даташите сказано что для того чтоб подключить внутренние конденсаторы к XTAL1 и XTAL2 нужно фьюз СКОРТ установить в 0. но ведь мы используем не основной генератор, а асинхронный подключенный к асинхронному таймеру2, и кварц получается цепляем не на XTAL1 и XTAL2, а на ТОСК1,2. как подключить конденсаторы к ТОСК1,2 ??? или, из-за того что в мега8 выводы XTAL1,2 совпадают с выводами ТОСК1,2 конденсаторы автоматически подключаются в любом случаи при записи 0 в СКОРТ???
я просто мучу часики на Мега16А, и установка СКОРТ в 0 не дает никакой реакции. как спешили часы на минуту в сутки(реальные конденсаторы - 18пф) так и продолжают спешить. хотя по идеи должны немного меньше спешить (всетаки 36 пф внутренних добавляется к уже имеющимся 18 наружным).
А вообще, я хотел бы попробовать обойтись одними встроенными.


уважаемый Dimalt ответьте если можете на этот вопрос. я посмотрел, в ваших часах на меге16, кварц стоит без конденсаторов, значит подключены внутренние. чем их включают??
KIT
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение DimAlt »

Цитата из даташита стр 31
Timer/Counter
Oscillator

For AVR microcontrollers with Timer/Counter Oscillator pins (TOSC1 and TOSC2), the crystal is
connected directly between the pins. No external capacitors are needed. The Oscillator is optimized
for use with a 32.768 kHz watch crystal. Applying an external clock source to TOSC1 is
not recommended.
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение O-LED »

большое спасибо. с английским у меня туго. напрячь мозг, и понять небольшой кусок даташита еще могу, а вот в сотне листов непонятной тарабарщины найти нужные тебе строки трудно......
значит, если я правильно понял, при использовании Т2 в качестве часов реального времени, и при присоединении кварца к ТОSC1,2 внутренние конденсаторы на 36 пик подключаются автоматически???
я сейчас попробовал без внешних конденсаторов - все продолжает тикать. посмотрю что будет с точностью хода. Единственно смущает, почему у меня до отпайки внешних конденсаторов часы спешили на 2 минуты в сутки, ведь по идее должны были отставать, т.к. емкость была больше номинальной (36пф встроенных + 18пф внешних). короче понаблюдаю что будет.

еще вопрос по усыплению и пробуждению контроллера. я делаю так. Есть прерывание обслуживающее динамическую индикацию. частота 488гц. внутри этого прерывания слушаю один из пинов. Как только на этом пине сигнал о пропаже питания, сразу разрешаю усыплять контроллер по команде SLEEP.

Код: Выделить всё

if (PINB.4==0)  {                                                   // если пропало напряжние
         MCUCR=0b01110000;                                          // разрешаем усыплять контроллер по команде SLEEP
         PORTA=0; PORTB=0; DDRB=0b01101111;  PORTC=0; PORTD=0;      // перевожу порты в состояние наменьшего потребления
         TCCR0=0x00;                                                // останавливает Т/С0
         GICR&=0xdf;                                                // запрещаем прерывание от нажатия кнопок
         GIFR=0x20;                                                 // сбрасываеи  флаг внешнего прерывания, предотвращая случайное срабатывание кнопок при засыпании/просыпании
         }
дальше, в основном цикле есть строчка

Код: Выделить всё

while (MCUCR == 0b01110000)                 //  если работаем от батареи, то сидим здесь и не вылазим - усыпляем контроллер
        {
        #asm("sleep")
        if (PINB.4==1)                      //  если напряжение появилось
                {   
                MCUCR=0b00110000;           //  запрещаем усыплять контроллер по команде  SLEEP
                TCCR0=0x03;                 //  запускаем Т/С0
                PORTB=0x04; DDRB=0x6B;      //  возвращаем конфигурацию порта В в рабочее состояние
                }
        }

и пока на PINB.4 не появится сигнал о появлении напряжения питания, сижу в этом цикле безвылазно.
а как это делали вы в своих часах. ваши исходники смотрел, но разобраться в чужом коде дело не легкое.......... Или у меня все нормально получилось, и ничего менять не нужно??
KIT
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение DimAlt »

На счет точности хода, не знаю. Сам ни одних часов на меге 16 не сделал.

По программе, я уже долго не программировал, Вам лучше спросить у более компетентных людей.
На будущее совет, если что то пишите в регистры ио, то пишите вместо MCUCR=0b01110000; примерно так MCUCR=BIT(SM1)|BIT(SM0); В дальнейшем когда откроете исходник через пару месяцев, Вам не придется открывать даташит и смотреть какие это биты "0b01110000".

А у меня сделано так. Максимально короткие прерывания. Вся работа только в фоне. Одно прерывание инкремент часов. Второе вывод подготовленного символа на порт.
Начало главного цикла проверка входа состояния питания, если питание от батарей, то выполняется одна ветка иначе другая. В ветке с питанием от батарей код большой, потому что надо проверять будильники, нельзя засыпать при активном сигнале от будильника и опрашивать кнопки при активном будильнике.
Аватара пользователя
O-LED
Мудрый кот
Сообщения: 1800
Зарегистрирован: Вт окт 05, 2010 01:08:57
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение O-LED »

Спасибо за скорый ответ.
DimAlt писал(а):На счет точности хода, не знаю. Сам ни одних часов на меге 16 не сделал.
а разве вот это не ваши http://startcd.narod.ru/clock/m16new.html ??? именно на них я разгледел использование кварца без конденсаторов :)) или вы имеете ввиду в железе не делали???
Сейчас мучаю и постоянно перешиваю свои часы, а после выходных оставлю их на сутки тикать, посмотрю как будет ход при "голом" кварце
DimAlt писал(а):А у меня сделано так. Максимально короткие прерывания. Вся работа только в фоне. Одно прерывание инкремент часов. Второе вывод подготовленного символа на порт.
Начало главного цикла проверка входа состояния питания, если питание от батарей, то выполняется одна ветка иначе другая. В ветке с питанием от батарей код большой, потому что надо проверять будильники, нельзя засыпать при активном сигнале от будильника и опрашивать кнопки при активном будильнике.
Понятно. Меня как раз волновал момент где и как вы усыпляете контроллер. Я с начала, по неопытности попробовал усыплять контроллер внутри прерывания Т2. что при этом происходило можете глянуть тут viewtopic.php?f=20&t=36518 .
Я правильно понял, так у вас сделано?

Код: Выделить всё

while (1);
if (есть питание)
{
основной код
}
tlse
{
код во время сна
#asm("sleep")
}
KIT
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение DimAlt »

Да, сам в железе не собирал. Собирали люди и писали что работают.

Я правильно понял, так у вас сделано?

Код: Выделить всё

while (1);
if (есть питание)
{
основной код
}
tlse
{
код во время сна
#asm("sleep")
}
[/quote]

Совершенно верно.
Аватара пользователя
edunya
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вт дек 02, 2008 10:35:15
Откуда: Украина

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение edunya »

DimAlt писал(а):Насколько я помню, то с временными зонами этот проект по функциональней http://startcd.narod.ru/cl_termo2/index.html

Добавил 4 зоны, версия прошивки эта
http://startcd.narod.ru/clock/cl_termo/v2.23.7z 8 основных будильников и 8 для управления нагрузкой макс. время 23-59-59. Добавлен автоматический переход на летние зимние время.


Уважаемый DimAlt. Я уже два года пользуюсь прибором, изготовленным по проекту Часы-термостат а Atmega 8 V2. Очень доволен устройством, спасибо Вам за труд. Но, вот столкнулся с проблемой перехода на зимнее время - часы просто сбились. Конечно, я уже давно не слежу за развитием проекта и много чего пропустил. Скажите, пожалуйста, эта прошивка с четырьмя зонами лишена вышеупомянутой проблемы или она относится к проекту http://startcd.narod.ru/cl_termo2/index.html?
Спасибо.
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение DimAlt »

В этой версии http://startcd.narod.ru/clock/cl_termo.html, данного глюка не должно быть. Обновите прошивку. (для 4 зон также исправлено).
Для этих версий http://startcd.narod.ru/cl_termo2/index.html авто перехода нет, так как мне написали, что для флорариума он вреден.
Аватара пользователя
edunya
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вт дек 02, 2008 10:35:15
Откуда: Украина

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение edunya »

DimAlt писал(а):В этой версии http://startcd.narod.ru/clock/cl_termo.html, данного глюка не должно быть. Обновите прошивку. (для 4 зон также исправлено)



Спасибо. Попробую. Я так понял прошивка с четырьмя зонами относится к этой версии http://startcd.narod.ru/clock/cl_termo.html ?
DimAlt
Вымогатель припоя
Сообщения: 576
Зарегистрирован: Пт май 19, 2006 05:39:11
Контактная информация:

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение DimAlt »

Да.
Аватара пользователя
edunya
Нашел транзистор. Понюхал.
Сообщения: 162
Зарегистрирован: Вт дек 02, 2008 10:35:15
Откуда: Украина

Re: Часы-термометр на микроконтроллере ATmega8.

Сообщение edunya »

Спасибо Вам огромное, DimAlt. Проверил все прошивки (на 3, на 4 зоны) - все работают исключительно. Хорошо было бы в этом проекте использовать ЖК дисплей, можно было бы от розетки оторваться. Все равно - классный прибор!
Ответить

Вернуться в «Статьи»