Выкладывай проект.. ПоможемSIV wrote: Посмотрел, почитал про таймери и понял что сам не осилю.
Скажите сможет ли кто помочь чтобы точка показывающая нагрев мигала.
Модифицированную под себя прошивку для инкубатора от grey4ip предоставлю.
24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.
Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.
Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.
«Спасибо дедушка путин за счастливое детство и мое освобождение». ©
Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©
PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...
Due to periodic DDoS attacks, the forum may not be available.
Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.
Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.
«Спасибо дедушка путин за счастливое детство и мое освобождение». ©
Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©
PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...
Due to periodic DDoS attacks, the forum may not be available.
Термостат ∆T=0,1°C - работа над ошибками
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C - работа над ошибками
-
- Пробегал мимо
- Posts: 7
- Joined: 22 Aug 2011 14:42
Re: Термостат ∆T=0,1°C - работа над ошибками
Вот проект термостата для инкубатора
- Attachments
-
- Inkubator.zip
- Проект термостата для инкубатора
- (100.87 KiB) Downloaded 356 times
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C - работа над ошибками
ПодправилSIV wrote:Вот проект термостата для инкубатора
- Attachments
-
- Inkubator_blink.rar
- (34.72 KiB) Downloaded 380 times
-
- Пробегал мимо
- Posts: 7
- Joined: 22 Aug 2011 14:42
Re: Термостат ∆T=0,1°C - работа над ошибками
IYra большое спасибо за помощь.
-
- Пробегал мимо
- Posts: 7
- Joined: 22 Aug 2011 14:42
Re: Термостат ∆T=0,1°C - работа над ошибками
Для Timer 0 записано TCNT0=0xBF
Подскажите как посчитать с какой частотой работает Timer 0 если тинька работает на частоте 8 МГц.
Подскажите как посчитать с какой частотой работает Timer 0 если тинька работает на частоте 8 МГц.
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C - работа над ошибками
SIV,
http://home.roboticlab.eu/ru/avr/timers - пример №1
делитель таймера у нас 1024 (TCCR0B = 0x05)
из примера:
256 - 8 MHz / 1024 / X Hz = 0xBF
откуда получаем:
X = (8 MHz / 1024) / (256 - 0xBF)
= 8000000 Hz/ 1024 / (256 - 0xBF)
= 8000000 / 1024 / (256 - 191)
= 7812.5 Hz / 65 = 120.2Hz
Добавлено спустя 18 часов 35 минут:
Да, и еще у хардлока кое-где (но не в термостате) используется делитель частоты всего чипа в таком вот виде
он естественно влияет на все таймеры.
Добавлено спустя 6 минут 33 секунды:
Да, самое главное, этот способ назначения частоты срабатывания таймера (TCNT0=... и потом вызов процедуры прямо в прерывании) очень неточный, хотя в данном конкретном месте точность и не нужна. В модели можно видеть что тут частота ниже 100Гц вместо расчетных 120Гц.
http://home.roboticlab.eu/ru/avr/timers - пример №1
делитель таймера у нас 1024 (TCCR0B = 0x05)
из примера:
256 - 8 MHz / 1024 / X Hz = 0xBF
откуда получаем:
X = (8 MHz / 1024) / (256 - 0xBF)
= 8000000 Hz/ 1024 / (256 - 0xBF)
= 8000000 / 1024 / (256 - 191)
= 7812.5 Hz / 65 = 120.2Hz
Добавлено спустя 18 часов 35 минут:
Да, и еще у хардлока кое-где (но не в термостате) используется делитель частоты всего чипа в таком вот виде
Code: Select all
#pragma optsize-
CLKPR=0x80;
CLKPR=Prescaler; //0x00 - для кварца 4MHz, 0x01 - для кварца 8MHz...
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
Добавлено спустя 6 минут 33 секунды:
Да, самое главное, этот способ назначения частоты срабатывания таймера (TCNT0=... и потом вызов процедуры прямо в прерывании) очень неточный, хотя в данном конкретном месте точность и не нужна. В модели можно видеть что тут частота ниже 100Гц вместо расчетных 120Гц.
-
- Пробегал мимо
- Posts: 7
- Joined: 22 Aug 2011 14:42
Re: Термостат ∆T=0,1°C - работа над ошибками
Спасибо, разобрался и сделал прерывания через каждые 10 ms. Нужно было именно 100 Гц.propell_ant wrote:SIV,
http://home.roboticlab.eu/ru/avr/timers - пример №1
делитель таймера у нас 1024 (TCCR0B = 0x05)
из примера:
256 - 8 MHz / 1024 / X Hz = 0xBF
откуда получаем:
X = (8 MHz / 1024) / (256 - 0xBF)
= 8000000 Hz/ 1024 / (256 - 0xBF)
= 8000000 / 1024 / (256 - 191)
= 7812.5 Hz / 65 = 120.2Hz
Добавлено спустя 18 часов 35 минут:
Да, и еще у хардлока кое-где (но не в термостате) используется делитель частоты всего чипа в таком вот видеон естественно влияет на все таймеры.Code: Select all
#pragma optsize- CLKPR=0x80; CLKPR=Prescaler; //0x00 - для кварца 4MHz, 0x01 - для кварца 8MHz... #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif
Добавлено спустя 6 минут 33 секунды:
Да, самое главное, этот способ назначения частоты срабатывания таймера (TCNT0=... и потом вызов процедуры прямо в прерывании) очень неточный, хотя в данном конкретном месте точность и не нужна. В модели можно видеть что тут частота ниже 100Гц вместо расчетных 120Гц.
После чего сделал импульсный нагрев в интервале дельты.
-
- Частенько бываю
- Posts: 125
- Joined: 26 Nov 2011 05:38
Re: Термостат ∆T=0,1°C - работа над ошибками
Всем доброго дня!
в соседней ветке есть моя темка - термостат/универсальное устройство на ATMEGA168
заметил, что после выключения часто портится содержимое eeprom
на Казусе совсем недавно на этой вроде неделе было обсуждение такой проблемы
был сделан вывод о том что портится содержимое ячейки с нулевым адресом
один из вариантов решения - прописать по нулевому адресу eeprom ничего не значащую переменную, для этого инициализировать её первой в теле программы, присвоить ей какое-то значение, чтобы компилятор оставил её по нулевому адресу и никуда не выкинул
попробовал в своём проекте - вроде проблема ушла, пока сбоев не было, а до того - чуть ли не через раз.
возможно, такое решение подойдёт и для термостата на Attiny2313.
в соседней ветке есть моя темка - термостат/универсальное устройство на ATMEGA168
заметил, что после выключения часто портится содержимое eeprom
на Казусе совсем недавно на этой вроде неделе было обсуждение такой проблемы
был сделан вывод о том что портится содержимое ячейки с нулевым адресом
один из вариантов решения - прописать по нулевому адресу eeprom ничего не значащую переменную, для этого инициализировать её первой в теле программы, присвоить ей какое-то значение, чтобы компилятор оставил её по нулевому адресу и никуда не выкинул
попробовал в своём проекте - вроде проблема ушла, пока сбоев не было, а до того - чуть ли не через раз.
возможно, такое решение подойдёт и для термостата на Attiny2313.
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C - работа над ошибками
georg77, спасибо, этот вариант проверялся.
На моем термостате без супервизора херился весь EEPROM, а не первый байт. Кроме того, в "работе над ошибками" пришлось поменять формат внутреннего представления данных, и чтобы случайно не прочитать старые настройки, настройки теперь хранятся в следующих байтах, то есть первые аж четыре байта не используются.
На моем термостате без супервизора херился весь EEPROM, а не первый байт. Кроме того, в "работе над ошибками" пришлось поменять формат внутреннего представления данных, и чтобы случайно не прочитать старые настройки, настройки теперь хранятся в следующих байтах, то есть первые аж четыре байта не используются.
- Yanshun
- Живу тут
- Posts: 211
- Joined: 01 Feb 2015 12:45
Re: Термостат ∆T=0,1°C - работа над ошибками
Добрый вечер.
При активном использовании термостатом, кнопки срабатывают уже через раз и не всегда получается войти в меню с первого раза.
Можно ли в прошивке 4.0.9 ОК сделать вход в меню нажатием одной из кнопок, а вход в Дельту и Просмотр ошибок пусть тогда останется двойным нажатием. Последнее время это квест входа в меню для выставления температуры.
Буду очень признателен за помощь.
При активном использовании термостатом, кнопки срабатывают уже через раз и не всегда получается войти в меню с первого раза.
Можно ли в прошивке 4.0.9 ОК сделать вход в меню нажатием одной из кнопок, а вход в Дельту и Просмотр ошибок пусть тогда останется двойным нажатием. Последнее время это квест входа в меню для выставления температуры.
Буду очень признателен за помощь.
Корпорация MARS
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C - работа над ошибками
Yanshun, судя по описаниям доработок так было в версии 4.0.6, попробуйте. А, вижу, вам плюшки из 4.0.9 нужны...
- Yanshun
- Живу тут
- Posts: 211
- Joined: 01 Feb 2015 12:45
Re: Термостат ∆T=0,1°C - работа над ошибками
propell_ant, Добрый вечер.
Да, нужен шаг выставления температуры 1 градус, т.к. с шагом 0,1 до 70 градусов очень далеко "бежать". Данная прошивка оказалась для меня больше всего подходящей.
Так-же при включении нагрузки не горит точка в первом сегменте, я поставил себе в параллель реле светодиод и точка мне эта не нужна.
Ну и остальные плюшки. Режим работы Нагрев
Да, нужен шаг выставления температуры 1 градус, т.к. с шагом 0,1 до 70 градусов очень далеко "бежать". Данная прошивка оказалась для меня больше всего подходящей.
Так-же при включении нагрузки не горит точка в первом сегменте, я поставил себе в параллель реле светодиод и точка мне эта не нужна.
Ну и остальные плюшки. Режим работы Нагрев
Корпорация MARS
-
- Пробегал мимо
- Posts: 5
- Joined: 06 May 2016 12:06
- Location: volgograd
Re: Термостат ∆T=0,1°C - работа над ошибками
Народ ответьте кто знает, можно вставить транзисторы в катоды индикатора не меняя прошивки hardlockа?
Хочу отключать индикатор одним тумблером снимая питание с четырёх транзисторов,а контроллер продолжал бы работать? Ибо от батарейки жрёт немеряно!
Хочу отключать индикатор одним тумблером снимая питание с четырёх транзисторов,а контроллер продолжал бы работать? Ибо от батарейки жрёт немеряно!
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C - работа над ошибками
Наверно проще включать индикатор на определенное время при нажатии любой кнопки.alla32 wrote:Народ ответьте кто знает, можно вставить транзисторы в катоды индикатора не меняя прошивки hardlockа?
Хочу отключать индикатор одним тумблером снимая питание с четырёх транзисторов,а контроллер продолжал бы работать? Ибо от батарейки жрёт немеряно!
Где-то здесь вроде было такое. Типа спящего режима
-
- Частенько бываю
- Posts: 125
- Joined: 26 Nov 2011 05:38
Re: Термостат ∆T=0,1°C - работа над ошибками
6-ю постами выше я писал про сбои в eprom при выключении/включении питания. На одном из форумов (опять!) наткнулся на версию, что портится содержимое той ячейки eprom, что была изменена последней перед выключением. Проверил у себя - и точно! Рецепт теперь такой - надо создать переменную, не особенно нужную, и писать её в eprom всегда после того как что-то в eprom записали. Может, кому-то будет полезно.
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C - работа над ошибками
georg77, 6-ю постами выше я отвечал, что
У вас термостат с супервизором питания? И настройки всё равно слетают?На моем термостате без супервизора херился весь EEPROM
-
- Частенько бываю
- Posts: 125
- Joined: 26 Nov 2011 05:38
Re: Термостат ∆T=0,1°C - работа над ошибками
Нет, в моём проекте нет супервизора. Портится только 1 переменная - последняя подвергшаяся перезаписи в eprom.
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C - работа над ошибками
На всякий случай еще раз повторю для всех:
Attiny2313 в термостате хардлока запитан через емкости относительно больших номиналов. При отключении питания напряжение падает весьма плавно. В результате тинька постепенно оказывается в режиме, когда питание уходит ниже минимально допустимых паспортных значений. Как себя ведет МК при таких напряжениях, и что конкретно он делает - сказать сложно. Но факт в том, что епром при этом оказывается заполнен мусором. Я заморочился и написал различные алгоритмы для дублирования информации в епроме и восстановления после сбоя. Толку - ноль, иногда весь епром заполняется мусором.
Если у кого-то есть реальный опыт победы над сбоями епрома программными ухищрениями - милости просим, поделитесь. Ссылки на форумы - тоже пожалуйста, размещайте. Но пока не будет реального опыта победы над проблемой, дорабатывать прошивку никто не станет.
Проблема решается на уровне железа - либо установкой на плате супервизора питания (для устройств, работающих при минусовых температурах), либо включением внутреннего супервизора питания (фьюзами BODEN) для устройств, работающих при комнатной температуре.
Attiny2313 в термостате хардлока запитан через емкости относительно больших номиналов. При отключении питания напряжение падает весьма плавно. В результате тинька постепенно оказывается в режиме, когда питание уходит ниже минимально допустимых паспортных значений. Как себя ведет МК при таких напряжениях, и что конкретно он делает - сказать сложно. Но факт в том, что епром при этом оказывается заполнен мусором. Я заморочился и написал различные алгоритмы для дублирования информации в епроме и восстановления после сбоя. Толку - ноль, иногда весь епром заполняется мусором.
Если у кого-то есть реальный опыт победы над сбоями епрома программными ухищрениями - милости просим, поделитесь. Ссылки на форумы - тоже пожалуйста, размещайте. Но пока не будет реального опыта победы над проблемой, дорабатывать прошивку никто не станет.
Проблема решается на уровне железа - либо установкой на плате супервизора питания (для устройств, работающих при минусовых температурах), либо включением внутреннего супервизора питания (фьюзами BODEN) для устройств, работающих при комнатной температуре.
-
- Пробегал мимо
- Posts: 5
- Joined: 06 May 2016 12:06
- Location: volgograd
Re: Термостат ∆T=0,1°C - работа над ошибками
не нашёл спящего не былоIYra wrote:alla32 писал(а):
Народ ответьте кто знает, можно вставить транзисторы в катоды индикатора не меняя прошивки hardlockа?
Хочу отключать индикатор одним тумблером снимая питание с четырёх транзисторов,а контроллер продолжал бы работать? Ибо от батарейки жрёт немеряно!
Наверно проще включать индикатор на определенное время при нажатии любой кнопки.
Где-то здесь вроде было такое. Типа спящего режима
я делал год назад на плате и прошивке хардлока вроде,вставлял транзисторы с резисторами и работало были вс 817, отдал её не знаю как работает, а сейчас нужно чтобы стояла от батарейки 3.7 в дежурном режиме, а индикатор не нужен он зря садит батарею, он нужен когда срабатывает уставка посмотреть температуру.
Может кто знает можно воткнуть транзисторы в прошивку хардлока или нужно менять программу
Добавлено спустя 9 часов 10 минут 48 секунд:
народ ответьте !Ч то за сигнал выходит на катоды он логический какой частоты почету транзисторы туда нельзя поставить? в чём причина?
-
- Пробегал мимо
- Posts: 13
- Joined: 03 Apr 2017 08:34
Re: Термостат ∆T=0,1°C - работа над ошибками
Ребята подскажите? ,как на этом проекте подправить код чтобы сделать простую сигнализацию )))Две уставки Тmax и Tmin )))Если Т выходит за уставки ,включается бузер ......
- hardlock
- Администратор
- Posts: 4014
- Joined: 21 Jan 2009 14:48
- Location: Minsk - zp.ua
- Contact:
Re: Термостат ∆T=0,1°C - работа над ошибками
alla32, можно поставить транзисторы, но нужно проинвертировать сигналы. Я вроде бы делал прошивку для работы с транзисторами. Хотя это могло быть в термометре, я уже не помню...
Добавлено спустя 11 минут 9 секунд:
maksim_tverdohlb, попробуйте заменить:
на следующей странице правильный вариант...
Добавлено спустя 11 минут 9 секунд:
на следующей странице правильный вариант...
-
- Живу тут
- Posts: 490
- Joined: 03 Jun 2014 09:22
Re: Термостат ∆T=0,1°C - работа над ошибками
maksim_tverdohlb, тут есть более интересный вопрос... а когда бузер выключается?
Посмотрите, у хардлока есть картинка, на которой показано, зачем нужен гистерезис: красненьким показано, где работает нагреватель по команде от термостата.
Температура может довольно долго пересекать установленные значения, то становясь на десятую выше, то ниже. Если сделать так, как вы попросили, бузер будет какое-то время то включаться, то выключаться.
Посмотрите, у хардлока есть картинка, на которой показано, зачем нужен гистерезис: красненьким показано, где работает нагреватель по команде от термостата.
Температура может довольно долго пересекать установленные значения, то становясь на десятую выше, то ниже. Если сделать так, как вы попросили, бузер будет какое-то время то включаться, то выключаться.
-
- Пробегал мимо
- Posts: 13
- Joined: 03 Apr 2017 08:34
Re: Термостат ∆T=0,1°C - работа над ошибками
Я работаю на комельне )))У меня котел на 2.5МВат в актоматическом режиме держит в сети 60 градусов )))Мне нужно сделать сигнализацию если температура упадет ниже 55 или подымится выше 65 ,сработает бузер )))Когда температура вернется назад бузер отключится ....
- hardlock
- Администратор
- Posts: 4014
- Joined: 21 Jan 2009 14:48
- Location: Minsk - zp.ua
- Contact:
Re: Термостат ∆T=0,1°C - работа над ошибками
я бы побоялся ставить свою поделку в такой котёл даже для контроля )))maksim_tverdohlb wrote:У меня котел на 2.5МВат
-
- Пробегал мимо
- Posts: 13
- Joined: 03 Apr 2017 08:34
Re: Термостат ∆T=0,1°C - работа над ошибками
Котельня на 10 етаже под кришой ,а комната для отдыха на 9 етаже ,но подающий трутопровод проходит через эту комнату ,и я хочу к этому трубопроводу прикрутить датчик ,что бы хоть кака ето сигнализация была ))))Вдруг ночю заснул и котельня по какимто причинам стала или добавила мощности и температура выросла ,то канешно будет не хорошо ))))Луче хоть что то чем нечего ))))Это делается чисто для себя ))))