Например TDA7294

Форум РадиоКот • Просмотр темы - Часы-термометр на микроконтроллере ATmega8.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс июл 20, 2025 11:36:54

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1822 ]     ... , , , 47, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 17:28:17 
Встал на лапы

Зарегистрирован: Пн ноя 17, 2008 16:53:29
Сообщений: 139
Откуда: Московская область, г.Лыткарино
Рейтинг сообщения: 0
Ах да забыл схема на 9ти индикаторах и М74HC595


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 17:56:22 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 249
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2526
Откуда: KMV
Рейтинг сообщения: 0
У меня тоже на этой неделе баг был с этими часами на 9 индикаторах. Прихожу домой, а на часах высвечивается 33 часа -скока минут не важно :)
В общем заменить литиевую батарейку в резервном источнике. Она и так БУ была с какой-то старой материнке, так еще и в часах проработала много. Знаю точно по состоянию других бытовых приборов, что электроэнергию отключали. А резервный элемент в часах видимо их не потянул уже. Вот и возник глюк. Но что странно, через меню программный сброс не сработал. Пришлось отключать от сети, менять естественно элемент и после настраивать заново все режимы.
В общем к автору вопрос, можно ли что-то поправить в прошивке, чтоб хотя бы настройки сохранялись?

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 18:06:30 
Встал на лапы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 5
Зарегистрирован: Чт сен 17, 2009 15:33:44
Сообщений: 93
Откуда: Украина
Рейтинг сообщения: 0
nbo писал(а):
Для всех интересующихся: здесь http://startcd.narod.ru/cl_termo3/index.html выложена доработанная прошивка часов термостата на шести индикаторах.


nbo если Вы автор схемы и платы для часов на шести индикаторах то не могли бы выложить на этом форуме плату в .lay или хотя бы в jpg, gif а то протеуса нет. Заранее спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 18:33:13 
Встал на лапы

Зарегистрирован: Пн ноя 17, 2008 16:53:29
Сообщений: 139
Откуда: Московская область, г.Лыткарино
Рейтинг сообщения: 0
Так у меня вообще без батарейки -может схему вы не ту имели ввиду -у меня power detect просто на минусе сидит


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 19:25:15 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 249
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2526
Откуда: KMV
Рейтинг сообщения: 0
etimsk писал(а):
Так у меня вообще без батарейки -может схему вы не ту имели ввиду -у меня power detect просто на минусе сидит

А смысл? батарейку жалко поставить?
У нас свет редко сейчас выключают. Зато вот метко :). Стормозил, надо было это запечатлеть на фотоаппарат :)) 33 часа эт вам не шутки

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 19:42:01 
Встал на лапы

Зарегистрирован: Пн ноя 17, 2008 16:53:29
Сообщений: 139
Откуда: Московская область, г.Лыткарино
Рейтинг сообщения: 0
serg_svd писал(а):
etimsk писал(а):
Так у меня вообще без батарейки -может схему вы не ту имели ввиду -у меня power detect просто на минусе сидит

А смысл? батарейку жалко поставить?
У нас свет редко сейчас выключают. Зато вот метко :). Стормозил, надо было это запечатлеть на фотоаппарат :)) 33 часа эт вам не шутки


Так а смысл? -если дома генератор стоит автоматический -свет отрубили он с опережением завелся -у нас типа умный дом -образцово показательный:)


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 20:36:21 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 249
Зарегистрирован: Ср янв 16, 2008 08:34:04
Сообщений: 2526
Откуда: KMV
Рейтинг сообщения: 0
etimsk писал(а):
дома генератор стоит автоматический

ЗачОтная батарейка у вас для часов :)))

_________________
"Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт апр 30, 2010 20:46:30 
Вымогатель припоя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Пт май 19, 2006 05:39:11
Сообщений: 576
Рейтинг сообщения: 0
В последних версиях такой код
Код:
if (++hour[h_sek]>=60)
      {
      hour[h_sek] =0;
      if (++hour[h_min]>=60)
         {
         if ( corr_flag & _BV(fl_corr_znak_pl) )//корекция часов
            correct=correction;//для убыстрения
            else
            correct= 0x00-correction;
         
         hour[h_min] =0;
         hour[h_hour]++;
   
         if (hour[h_hour]>=24)
            {
            hour[h_hour]=0;
            if (++hour[h_day]>=7)   hour[h_day]=0;
            if (++hour[h_num]>num_in_month[ hour[h_month] ] )
               {
               hour[h_num]=0;
               hour[h_month]++;
               if (hour[h_month]>=12) {hour[h_month]=0; hour[h_year]++;}
               }
            }

то есть
Код:
if (hour[h_hour]>=24)
            {
            hour[h_hour]=0;

при наступлении нового часа, это сбросило бы 33 часа на ноль.

А так, я специально не стал при сбросе сбрасывать время, его все равно потом выставлять в ручную.
То есть, надо было проверить настройки выставить время, и часы опять бы работали. Но это мое мнение, а так, конечно, разные фокусы бывают :))

etimsk я думаю проблема у Вас в 74НС595.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Вс май 02, 2010 08:35:48 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Вт май 06, 2008 20:14:37
Сообщений: 162
Откуда: Ukraine
Рейтинг сообщения: 0
Для snc:
Выкладываю комплект плат в формате PDF.
Некоторые пояснения: файл clock6_new-1.pdf рисунок печатных проводников, файл clock6_new-1-top.pdf вид со стороны монтажа индикаторов, здесь-же показаны 20 перемычек, файл clock6_shema.pdf схема, файл clock6_new-1-botton.pdf вид со стороны печати с деталями которые паяются с этой стороны, файл clock6_new-1-botton-1.pdf то-же но без рисунка печатных проводников. Кроме того на плате необходимо установить 5 перемычек из провода. На вопрос почему всё так могу лишь ответить что при разводке ставилась задача сделать односторонюю плату, двусторонние я пока по технологии ЛУТ не освоил. В .lay формате плат нет.


Вложения:
zxc.zip [212.58 KiB]
Скачиваний: 493
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 13:22:09 
Встал на лапы

Зарегистрирован: Пн ноя 17, 2008 16:53:29
Сообщений: 139
Откуда: Московская область, г.Лыткарино
Рейтинг сообщения: 0
serg_svd писал(а):
etimsk писал(а):
дома генератор стоит автоматический

ЗачОтная батарейка у вас для часов :)))

Спасибо! :))
Но на самом деле это сильно ограничивает развитите радиолюбительства -тут только можно поплакать :?
постоянно стабильное напряжение 220 вольт без отклонений от нормы и его наличие -вобщем одни слезы :)
Извините пожалуйста за флуд!
Кстати попробовал поменять HC595 -посмотрим - пока работают уже 20 часов -неужели микрухи такие плохие пошли?- пол года работала и на тебе


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 16:22:37 
Потрогал лапой паяльник

Зарегистрирован: Сб дек 12, 2009 02:15:45
Сообщений: 392
Рейтинг сообщения: 0
предположение.
ток вывода HC595 - 8ма. скорее всего у вас большой перегруз, вот микруха в таком режиме долго и не живет.......


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 16:25:23 
Родился

Зарегистрирован: Чт июн 18, 2009 18:14:19
Сообщений: 8
Откуда: Moscov
Рейтинг сообщения: 0
//первый байт 0x81 8-[длина строки(7)+смещение(1)] 1-[смещение(1)]
const unsigned char str_default[]= {0x90, 0x39, 0xBD, 0x37, 0xBB, 0x39, 0x0, 0x97, 0xB7, 0x79};//d, E, F, A, U, L, t, 0, S, //0,9 regim127
const unsigned char str_ds18b20[]= {0x81, 0x9E, 0xAD, 0x82, 0xBF, 0x9D, 0x3E, 0xBB};//d, S, 1, 8, b, 2, 0, 0, F // 0,9 regim126
const unsigned char str_budil[]= {0x61 ,0x9D, 0x98, 0x9E, 0x11, 0x58};//, 0x0, 0x0, 0xAD};//0, b, u, d, I, I., 0, 0, S //1,8 regim52
Это фрагмент из программы 9-индикаторных часов Мосина. Объясните, плиз, как эта кодировка связана с индикаторами? Дякую

_________________
wkarl


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 17:06:08 
Родился

Зарегистрирован: Чт июн 18, 2009 18:14:19
Сообщений: 8
Откуда: Moscov
Рейтинг сообщения: 0
Есть предложение: просить DimAlt всем обществом составить подробнейшие коментарии в программе к его часам, например, версии 17t1_1 (наиболее перспективным, на мой взгляд). Это было бы полезно для всех и сняло бы многие вопросы, а также стало бы хорошим пособием для начинающих знакомиться с СИ. А Дмитрий мог бы написать на основании этого учебное пособие, в котором он описал бы, как он дошел до жизни такой.

_________________
wkarl


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 19:14:36 
Родился

Зарегистрирован: Чт июн 18, 2009 18:14:19
Сообщений: 8
Откуда: Moscov
Рейтинг сообщения: 0
По поводу 5-разрядных часов DimAlt в исполнении Юрия. В этой реализации при закрытом состоянии портов МК на их выводах амплитуда импульса может достигать 8…9 В, что представляет определенную опасность для МК. Кроме того, при таком напряжении при открытом состоянии портов втекающий ток составит около 9/2,4 = 3,75 мА на порт, что не совсем хорошо как для МК, так и для энергосбережения. Для исключения этого недостатка была испытана схема (http://wkarl.narod.ru/3t_dop14.htm) с использованием прошивки v. 17t1_1 и ИМС преобразователя уровня 564ПУ7 (с инверсией), замечательным свойством которого является то, что он срабатывает при входном напряжении начиная с 3 В и питании 12 В (см. ДСП-каталог ИМС от 1984 г.). В указанных часах использована также более простая схема power_detect.

_________________
wkarl


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 19:19:33 
Вымогатель припоя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Пт май 19, 2006 05:39:11
Сообщений: 576
Рейтинг сообщения: 0
neon-f писал(а):
ток вывода HC595 - 8ма.

Изображение

neon-f где 8ма?
Или это с учетом того, что часы всегда показывают восьмерки?


Вложения:
595.PNG [3.91 KiB]
Скачиваний: 2200
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 20:32:25 
Вымогатель припоя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Пт май 19, 2006 05:39:11
Сообщений: 576
Рейтинг сообщения: 0
wkarl писал(а):
//первый байт 0x81 8-[длина строки(7)+смещение(1)] 1-[смещение(1)]
const unsigned char str_ds18b20[]= {0x81, 0x9E, 0xAD, 0x82, 0xBF, 0x9D, 0x3E, 0xBB};//d, S, 1, 8, b, 2, 0, 0, F // 0,9 regim126

Сначала о том, что это исходник 2004 года, это время, когда я только начинал разбираться с мк. Затем, конечно, он не однократно изменялся, но основа осталась, именно, моей первой программы на си. Поэтому его нельзя рекомендовать как пример и тем более по нем разбираться с кодом.
Здесь изначально массив располагался в памяти программ то есть был объявлен progmem. Но так как в меге8 оперативки много его можно размещать в озу, по размеру кода меньше и по выполнению быстрей.
Считывать массив str_ds18b20 в массив буфера экрана по коду также занимает меньше места, чем писать так:
Код:
LedBuffer[1]=0x9E;
LedBuffer[1]=0x9E;
LedBuffer[2]=0xAD;
и т. д.

Функция копирования массива в буфер
Код:
void load_str_in_lcdbuffer(const unsigned char *str_lcd){
unsigned char b,e,length;//str_lcd[0] = 0000 1111-смещение, 1111 0000 - длина строки
   length=str_lcd[0];
   for( b=0x0F&(length), e=1 ; b<(0x0F&(length>>4)) ; b++, e++){
      lcd_buffer[b]=str_lcd[e];
      }
}

Вообщем это результат попыток сократить размер кода.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 21:54:23 
Потрогал лапой паяльник

Зарегистрирован: Сб дек 12, 2009 02:15:45
Сообщений: 392
Рейтинг сообщения: 0
стандартный ток нагрузки на вывод у HC серии около 7ма(или около того, точно не помню)
ток короткого замыкания вывода - 20ма. больше не получить даже если закоротить на землю или питание. это в таблице и указано, и допускать крайне не желательно.
суммарный ток микросхемы по выводам питания - 70ма. получаем 70/9=7,7. вполне стандартно для НС серии. конечно я понимаю что по всем 9 выводам одновременно такого тока быть не может, но "восьмерка", "девятка", "ноль" плюс "точка" это 7-8 выводов. следовательно в вашей схеме, без транзисторных ключей, больше 9 ма с вывода лучьше не брать....

Есть вопрос по коду. у тебя весь контроллер работает от часового кварца, или только таймер Т2, а остальное от внутреннего генератора???
если второе, то глянь правильно ли так настроить таймер Т2, чтоб он тактировался от часового кварца, и генерировал прерывание по переполнению.

interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{ МОЙ КОД..... }

ASSR=0x08;
TCCR2=0x01;
TCNT2=0x00;
OCR2=0x00;

кварц цепляю на TOSC 1 и 2.
хочу получить прерывания с частотой 512гц (32768/64)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пн май 03, 2010 22:42:18 
Вымогатель припоя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Пт май 19, 2006 05:39:11
Сообщений: 576
Рейтинг сообщения: 0
Да, часы от асинхронного таймера, все остального от внутреннего RC.

Потом
1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2.
2. Select clock source by setting AS2 as appropriate.
3. Write new values to TCNT2, OCR2, and TCCR2.
4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB.
5. Clear the Timer/Counter2 Interrupt Flags.
6. Enable interrupts, if needed.

Первый пункт не выполнен
Частота будет 32768/256=128 герц
Для того что бы получить 512 надо использовать режим СТС загрузив OCR2=64.
что то вроде этого
Код:
TIMSK&=~(1<<OCF2); или cli(); а потом sei
 TCCR2 = 0x00;         //stop
 ASSR  = (1<<AS2);     //set async mode
 TCCR2 = (1<<WGM21)|(1<<CS20);         //start
 OCR2 = 64;
 TIMSK|=(1<<OCF2);
 ISR(OCF2){};


По 74НС595, конечно все так. Но в даташите
Continuous output current, IO (VO = 0 to VCC) . . . . . . ±35 mA
В переводе звучит как продолжительный ток вывода. Я бы сказал, что нагружать вывод до 20мА можно и не страшно, главное постоянно не превышать мощность кристала 500мВт. Вот задумайтесь, почему, есть, например, телефон с АОН русь 27, где индикатор управляется двумя 74НС595. Разработчики не побоялись превысить токи.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Пт май 21, 2010 23:08:25 
Прорезались зубы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 1
Зарегистрирован: Сб ноя 24, 2007 09:03:29
Сообщений: 232
Откуда: Ульяновск
Рейтинг сообщения: 0
Уважаемый DimAlt. Я уже давно собрал Вашу схему. Спасибо за проект :) Схема эта Часы-термометр на микроконтроллере ATmega8. V 2.0 http://radiokot.ru/circuit/digital/home/30/ У меня возможно очень старая версия прошивки, но я когда-то выбрал именно ее (кажется откуда-то из этого форума) потому что там была возможность выводить температуру без первого нуля, т.к. показания типа -00,5 выглядят очень некрасиво. Термостата там нету и не надо. Пару раз были глюки - символы писались неправильно как будто повредился массив знакогенератора сброс из меню не помог, почему? В другой раз дисплей погас совсем. (помогало только разобрать корпус и замкнуть вывод reset с землей). Собственно главный недостаток - я собирал эти часы в надежде что они будут "эталоном" точности во всей квартире, чтобы за месяц не боле но к сожалению это не так. Шаг корректировки слишком велик. 0,08. Если шаг 0,08 сек в час то в самом худшем случае погрешность будет 0,04. 0,04*24*30*12/60=5 минут в год, хочу точнее! Может быть уже есть версия где этот шаг уменьшен раза в 2-4? Если таковой версии нету, можно мне какую-нибудь свежую версию исходников (9ти разрядный индикатор) где, у термометров можно было установить режим отбрасывания первого нуля?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы-термометр на микроконтроллере ATmega8.
СообщениеДобавлено: Сб май 22, 2010 20:20:32 
Вымогатель припоя

Карма: 9
Рейтинг сообщений: 27
Зарегистрирован: Пт май 19, 2006 05:39:11
Сообщений: 576
Рейтинг сообщения: 0
Цитата:
можно мне какую-нибудь свежую версию исходников

Вот здесь http://startcd.narod.ru/clock/clock.html исходник и прошивки.
Для улучшения коррекции, ее можно производить не раз в час, а например раз в сутки (если уход в сутки у Вас не превышает макс. значение коррекции) в исходнике поменять это
Код:
if ( isr_1sek_ )//прошла секунда
   {
   correct=0;
   if (++hour[h_sek]>=60)
      {
      hour[h_sek] =0;
      if (++hour[h_min]>=60)
         {
         //if ( corr_flag & _BV(fl_corr_znak_pl) )//корекция часов ЭТО ПЕРЕНЕСТИ
         //   correct=correction;//для убыстрения
         //   else
         //   correct= 0x00-correction;
         
         hour[h_min] =0;
         hour[h_hour]++;
   
         if (hour[h_hour]>=24)
            {
            hour[h_hour]=0;
if ( corr_flag & _BV(fl_corr_znak_pl) )//корекция часов   СЮДА
      correct=correction;//для убыстрения
      else
      correct= 0x00-correction;


Можно коррекцию производить через несколько часов(если 24 много).. исходник есть. Если не получится то скомпилю сам.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1822 ]     ... , , , 47, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y