Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 13:26:22

Сажусь переделывать опрос датчика с учётом новой информации. Ура! Теперь попробую реализовать CRC с динамической индикацией. :write:

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 13:55:52

Это значит с термометром тоже не заработает? :(
Светик загорается только при обнаружении неисправности датчика (там четыре вида неисправности – определяются при опросе датчика). И тухнет, когда температура прочитана без ошибок.
Получается, что он читается при опросе с ошибкой, когда помещаешь его в лёд примерно с -10...-15, а при более высоких нормально?
На PB1"управление" пока для удобства светодиод повесил и он горит постоянно, только при включении загорается не сразу, а минут через 5 (та самая нормальная пауза?).

Правильно ли я понял, что датчик будет крепится на испаритель в холодильной камере (ХК), а не просто мерить температуру воздуха в ХК?
Ну, да, должен не просто мерить температуру воздуха, а предпологается, что будет вместо старого термостата в ХК.

Вот картинка из другой темы, где как раз расположение
СпойлерИзображение

Изображение
Задняя стенка то промерзает, то "плачет"

Аварийные таймера предполагаются использовать, или нет в этом необходимости?
Вообще-то наличие желательно, вполне полезная функция. Сейчас холодильник работает на похожем простейшем "таймере", с неделю почти. :)))
По этой схеме из Радио за 1994г. №8 Вместо термостата холодильника

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 14:33:35

например, у меня опрос датчика и вывод нового значения температуры делается 1 раз в секунду.
таймер у меня работает по 4 мс и обрабатывает динамическую индикацию.
таймер одновременно увеличивает счетчик прерываний таймера. как только счетчик доходит до 250, секунда отмерена.
по окончании секундного интервала я сбрасываю счетчик в ноль.
потом считываю температуру и запускаю новое преобразование.
потом обрабатываю считанное значение и вывожу на индикатор.

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 15:28:17

Вернулся на тактовую частоту 8 МГц и реализовал обновленный опрос датчика с вычислением CRC. Пока всё работает без замечаний. :beer:

Добавлено after 18 minutes 56 seconds:
Это значит с термометром тоже не заработает? :(

Ну почему же? Тестовый вариант термометра должен работать нормуль. Просто в той версии не вычисляется CRC. Это означает, что любые принятые показания будут считаться истинной. Другие неисправности, там реализованы. Пробуй тестовым термометром мерить температуру… необходимо будет узнать как алгоритм показаний работает. Кабель датчика хорошо прижимается уплотнительной резинкой дверцы холодильника для тестовых измерений. На макетке собери термометр для тестов. :)
Получается, что он читается при опросе с ошибкой, когда помещаешь его в лёд примерно с -10...-15, а при более высоких нормально?

Может быть. Попробуй резистор 100 Ом убрать с порта датчика.
а минут через 5 (та самая нормальная пауза?).

Да.
Ну, да, должен не просто мерить температуру воздуха, а предпологается, что будет вместо старого термостата в ХК.

Понял... хорошо.
Вообще-то наличие желательно

Раз надо, значит сделаю. :)

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 17:28:42

да, еще забыл сразу сказать.
в самом начале я запускаю преобразование температуры и вывожу на индикатор знак "-".
в результате самую первую секунду на индикаторе видно 4 прочерка, и после истечения секунды начинается нормальная работа термометра.

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 18:27:58

Ну почему же? Тестовый вариант термометра должен работать нормуль. Просто в той версии не вычисляется CRC. Это означает, что любые принятые показания будут считаться истинной. Другие неисправности, там реализованы. Пробуй тестовым термометром мерить температуру… необходимо будет узнать как алгоритм показаний работает. Кабель датчика хорошо прижимается уплотнительной резинкой дверцы холодильника для тестовых измерений. На макетке собери термометр для тестов. :)
Завтра может соберу термометр, посмотреть как будет работать и что будет показывать.

Re: Термостат на AVR (arduino)

Пт апр 10, 2020 19:37:06

Это хорошо. :)
Что уже реализовано на базе схемы тестового термометра:
- Переписан алгоритм чтения байтов с датчика, дающий определять правильность считанных показаний.
- Добавлены две кнопки.
- Реализована подпрограмма установки и просмотра уставки по температуре на отключение (-10…-26).
- Реализован алгоритм включения и отключения компрессора по уставкам от температуры.
- Реализован контроль времени работы и времени отдыха компрессора.
- Реализована задержка (5 мин) на включение компрессора при подачи питания на устройство.

Осталось реализовать работу компрессора в аварийном режиме по таймерам. :write:
:beer:

Вопрос на засыпку! Как сделать вход в режим программирования уставок по аварийным таймерам, чтобы было удобно? Можно добавить и третью кнопку при желании.

Вход для просмотра/изменения уставки по температуре реализовано при нажатии любой кнопки. Затем кнопками «вверх», «вниз» устанавливается нужное значение. Если не нажимать кнопки более 10 сек. то осуществляется автоматический выход из данного режима с сохранением выбранной уставки.

Добавлено after 22 minutes 45 seconds:
Чтобы видеть как всё работает в железе, собрал схему на своей девборде. :))
Изображение
Правда датчик пришлось ставить DS18B20 с соответствующем пересчётом.

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 02:42:48

я делал так:
2 кнопки вверх и вниз
на экране отображается текущая Т, если при этом нажать одну из кнопок — отобразится соответствующая уставка.
если нажать обе разом (±200мс - там задержка от нажатия до считывания) то попадаем в настройку уставок (поочереди - сначала одну, потом другую)
уставки можно ставить независимо друг от друга, т.к. это не макс и мин Т, а Т запуска и останова и получается если одна выше — термостат работает на нагреватель, если другая - на холодильник.
если нажать обе враз и удерживать более 2с, то попадем в служебное меню - там производится коррекция показаний датчика и настройка яркости 7сегментного индикатора.
состояние дополнительно высвечивается на неиспользуемых сегментах (A,D,E,F) 1 разряда: E или F зажигаются при отображении уставок, A или D - при их изменении, при коррекции высвечивается "с" (там цифра короче и знак минуса будет правей), при настройке яркости "L", яркость настраивается в 250 градаций, значение заносится в регистр сравнения, по прерыванию которого гасится разряд.

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 03:14:24

Самсусамыч, можно обойтись без третьей кнопки.
просмотр/настройку всех параметров я предлагаю организовать в виде списка.

в исходном режиме видим текущую температуру.
вход в список делаем одновременным нажатием обеих кнопок. это защищает от случайного или несанкционированного входа в список.
сам список:
1. уставка №1.
2. уставка №2.
3. таймер №1.
4. таймер №2.

после входа в список параметров перемещение по списку делаем кнопками (+/-) - вперед/назад, по кольцу.
для изменения параметра опять делам одновременное нажатие кнопок.
кнопками (+/-) изменяем параметр.
выходим из изменения параметра опять одновременным нажатием кнопок с сохранением нового значения.
выходим из списка в исходное состояние опять одновременным нажатием кнопок или по таймауту.

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 04:01:08

Согласен, это тоже хороший, удобный вариант, только дополню:
сам список:
1. уставка №1.
2. уставка №2.
3. таймер №1.
4. таймер №2.
5. Выход

Добавлено after 13 minutes 38 seconds:
можно ещё так: (как богатырь на распутье - направо пойдёшь... налево... или прямо - в следующий уровень...)
1 или 2 - просмотр уставок t
1 и 2 - вход в настройку уставок t, там 1-настройка 1й уставки, 2-2й, (сохранение и выход из настройки конкретной уставки обратно в это меню - 1и2 разом), 1и2- переход в настройку таймеров, (там внутри также) далее - возврат в основной режим

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 04:12:33

Ivanoff-iv писал(а):5. Выход
выход - куда?
или ты не дочитал мой пост? про выход из списка я написал, как делается.

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 04:19:23

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

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 05:05:56

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

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 05:53:24

А теперь попросим начальника транспортного цеха (Sigmа(у))… какую реализацию он выберет. :) А я пока начну реализовывать вход по двум одновременно нажатым кнопкам, так как данная функция присутствует в обоих вариантах. :)

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 05:59:06

Самсусамыч, ты пишешь именно для ардуино или прямо для МК?

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 06:19:06

Пишу просто для МК на АВ (Algorithm Builder). Ардуиньего языка не знаю, в прочим как и Си и Ассемблера. :)

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 06:45:21

В принципе в том таймере вполне удобно нажимать
СпойлерКнопки управления всего две, это «PLUS» и «MINUS»

Индикация и настройки

Теперь поговорим об индикации. В устройстве заложены несколько параметров, которые можно настраивать: 
1) температуру внутри — «t» (от 0 до 10 градусов, шаг 0,1 градус); 
2) гистерезис заданной температуры — «G» (от 1,0 до 5,0 градусов, шаг 0,1 градус); 
3) таймер отдыха компрессора — «h» (от 5 до 60 минут, шаг 1 минута); 
4) таймер работы компрессора — «H» (от 10 до 600 минут, шаг 10 минут); 
5) время работы компрессора в аварийном режиме — «on» (от 5 до 99 минут, шаг 1 минута); 
6) время отдыха компрессора в аварийном режиме — «oF» (от 5 до 99 минут, шаг 1 минута).

Для проведения настроек других параметров, нужно нажать сразу две «PLUS» + «MINUS» кнопки и отпустить, а затем изменять значения необходимых параметров теми же кнопками «PLUS» и «MINUS». 

Переход на следующий параметр в меню, происходит также нажатием сразу двух кнопок «PLUS» + «MINUS». 

Если не трогать кнопки 2 секунды, все настройки сохраняются и индикация возвращается на показ температуры в камере холодильника.

Порядок переключаемых с помощью двух кнопок параметров соответствует порядку пунктов (2 → 3 → 4 → 5 → 6), перечисленному выше. 
Применение параметров в программе в реальном времени происходит только в пунктах 1, 2, 5, 6.
Параметры пунктов 3 и 4 применяются после событий старта/остановки компрессора.

При подаче питания на устройство на индикаторе высветится оставшиеся время отдыха компрессора. Это подстраховка. Мало ли, вдруг было отключение электричества, и компрессор до этого события работал, его же нельзя вот так сразу запускать. Нужна пауза минимум 5-10 минут, чтобы давление внутри стравилось, иначе пусковой ток будет слишком велик, и это может повредить мотор.

По истечении таймера защиты индикация переключается на постоянное отображение температуры.

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 08:58:19

Если не трогать кнопки 2 секунды, все настройки сохраняются и индикация возвращается на показ температуры...
не знаю, как это при эксплуатации, но, ИМХО, 2 секунды - нестерпимо мало.
Выход должен быть по воле пользователя или если он отошел, забыв выйти (т.е. не трогать кнопки порядка минуты) и в случае "отошел" возможно без сохранения...
П.С. это больше про эргономику устройств в целом, чем конкретно про этот термостат...

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 09:12:17

холодилник не муз центр и не телек ему 20кнопок не нудны
хватает 2 китайцы сначала так и делали вход в насмтройки обе клавиши нажаты!!!
но потом онии добавили 3 кнопку(set )...
да в буржуцйских холодилах все просто уставка низа/ верка(отделно для молрозилки и обшего) по 2 свои кнопочки +кнока супер заморозки там 2 датчика и еще я нигде в пром холоде не видел даласоф-сбоятони там везде стоят термисторы герметичного исполнения 10к+-1%

Добавлено after 2 minutes 16 seconds:
индикаторы по 2 разряда минус в нижнем(морозрилке)реализован нека неполном разряде(там тока 1и -) индюки там ОА

Добавлено after 2 minutes 23 seconds:
думаю наши кулибины ставят даласы потому что не умеют работать с ацп чипа
или юзают чипы без ацп(пики всякие древние)

Re: Термостат на AVR (arduino)

Сб апр 11, 2020 09:39:35

В принципе в том таймере вполне удобно нажимать

Диапазон значений таймеров сделать как у автора статьи? Или другие?
Ответить