Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

Гистерезис в регуляторе температуры на Ардуино

Непрочитано 21.11.2020, 11:37  
Владимир 013
Частый гость
 
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
Владимир 013 на пути к лучшему
По умолчанию Гистерезис в регуляторе температуры на Ардуино

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

величина val это величина температуры задаваемая переменным резистором

первая строчка кода это и есть гистерезис если реле выключено (реле которое включает нагрев ) то величина val - 5 градусов а если включено то просто считывается величина val
ГОСПОДА КТО НЕ АРДУИНЩИКИ НЕ ЛЕЗЬТЕ СЮДА ОТ СЛОВА СОВСЕМ !

выкладываю код только релейной части и гистерезиса
Код:
	if (digitalRead(RELAY == LOW )
	{
	(val-5);
	 }
	 
	if ( celsius ‹ val  )
	{
	digitalWrite(RELAY, HIGH);
	delay(1000);
	}
	else
	  
	if(celsius ›= val)
	{
	digitalWrite(RELAY, LOW);
	delay(1000);
	 
	}
Реклама:

Последний раз редактировалось RECTO; 21.11.2020 в 22:03. Причина: оформление программного кода надлежащим образом
Владимир 013 вне форума  
Непрочитано 21.11.2020, 14:07  
ProtAS-13
Вид на жительство
 
Регистрация: 17.03.2015
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 229 раз(а) в 131 сообщении(ях)
ProtAS-13 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

Сообщение от Владимир 013 Посмотреть сообщение
...скетч работает...
Это как? В Arduino нет синтаксического анализа кода?
Код:
if (digitalRead(RELAY == LOW )  ‹== Пропущена скобка
{
  (val-5);                      ‹== либо val=val-5;, либо val-=5;
}
if ( celsius ‹ val )
{
  digitalWrite(RELAY, HIGH);
  delay(1000);
}
else
                               ‹== неверная конструкция if else
if(celsius ›= val)             ‹==   т.к это лишнее
{
  digitalWrite(RELAY, LOW);
  delay(1000);
}
ProtAS-13 вне форума  
Эти 3 пользователя(ей) сказали Спасибо ProtAS-13 за это сообщение:
ForcePoint (21.11.2020), makakus (25.11.2020), Владимир 013 (21.11.2020)
Непрочитано 21.11.2020, 14:37  
Владимир 013
Частый гость
 
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
Владимир 013 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

в верхней строчке скобку это я здесь пропустил так что с ней все нормально больше всего интересует
(val-5); ‹== либо val=val-5;, либо val-=5;
вот эта строка

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

Последний раз редактировалось Владимир 013; 21.11.2020 в 14:40.
Владимир 013 вне форума  
Непрочитано 21.11.2020, 15:29  
serg_42
Прописка
 
Аватар для serg_42
 
Регистрация: 15.06.2008
Адрес: Новокузнецк
Сообщений: 173
Сказал спасибо: 869
Сказали Спасибо 315 раз(а) в 82 сообщении(ях)
serg_42 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

Код:
#define HYSTERESIS (5) 
if ((celsius ‹ val-HYSTERESIS) && (digitalRead(RELAY) == LOW))
     digitalWrite(RELAY, HIGH);
if ((celsius › val) && (digitalRead(RELAY) == HIGH)) 
     digitalWrite(RELAY, LOW);

Последний раз редактировалось serg_42; 21.11.2020 в 15:34.
serg_42 вне форума  
Сказали "Спасибо" serg_42
Владимир 013 (21.11.2020)
Непрочитано 21.11.2020, 16:43  
ProtAS-13
Вид на жительство
 
Регистрация: 17.03.2015
Сообщений: 308
Сказал спасибо: 0
Сказали Спасибо 229 раз(а) в 131 сообщении(ях)
ProtAS-13 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

Сообщение от Владимир 013 Посмотреть сообщение
больше всего интересует (val-5); ‹== либо val=val-5;, либо val-=5; вот эта строка
Вы вычисляете val-5, но результат нигде не сохраняете.
Поэтому я предположил, что Вы хотели сохранить это в переменной val.
Но. Если Вы данный код выполняете в цикле, то с алгоритмической точки зрения, данная строчка ошибочна, т.к. будет циклически уменьшаться переменная val.
Поэтому, настоятельно советую, а тем более новичку, начинать разработку программы с АЛГОРИТМА.
Если влом рисовать на бумажке, то хоть словами пропишите, что хотите получить от программы, а потом подставьте кодовые "синонимы" в тех языковых конструкциях, которые Вы больше знаете: C/Assembler/Arduino/....
К примеру:
Код:
Если реле выключено (котел остывает), то                          ‹= if (digitalRead(RELAY) == LOW) {
  Если температура меньше или равна заданной минус гистерезис, то ‹=   if (celsius ‹= val-HYSTERESIS)
    Включить реле                                                 ‹=     digitalWrite(RELAY, HIGH);
Иначе - реле включено (котел нагревается), то                     ‹= } else {
  Если температура больше или равна заданной плюс гистерезис, то  ‹=   if (celsius ›= val+HYSTERESIS)
    Вылючить реле                                                 ‹=     digitalWrite(RELAY, LOW); }
Потом, можно заняться оптимизацией кода.
ProtAS-13 вне форума  
Сказали "Спасибо" ProtAS-13
Владимир 013 (21.11.2020)
Непрочитано 21.11.2020, 16:54  
Владимир 013
Частый гость
 
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
Владимир 013 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

да это все находится в цикле
1. Открывается гл электромагнитный клапан
2. Включается блок розжига 5 - 8 сек
3. Включается блок контроля пламени
4. Если есть розжиг отключается блок розжига , включается гл горелка , далее работа по уставке температуры
5. Если нет розжига : отключается питание главного электромагнитного клапана и блока розжига , 15 мин происходит вентиляция топки и цикл пуска повторяется
6. если срабатывает газовый датчик вентиляция 1 час потом запуск в случае 3 срабатываний газового датчика отключение без последующих запусков
мой алгоритм
подскажите как правильно сделать гистерезис в цикле что бы я смог разобраться как он работает !

Последний раз редактировалось Владимир 013; 21.11.2020 в 16:56.
Владимир 013 вне форума  
Непрочитано 21.11.2020, 20:50  
Владимир 013
Частый гость
 
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
Владимир 013 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

Сообщение от serg_42 Посмотреть сообщение
Код:
#define HYSTERESIS (5) 
if ((celsius ‹ val-HYSTERESIS) && (digitalRead(RELAY) == LOW))
     digitalWrite(RELAY, HIGH);
if ((celsius › val) && (digitalRead(RELAY) == HIGH)) 
     digitalWrite(RELAY, LOW);
ваш код оказался самым оптимальным ! спасибо вам !
Владимир 013 вне форума  
Сказали "Спасибо" Владимир 013
serg_42 (22.11.2020)
Непрочитано 23.11.2020, 00:31  
Владимир 013
Частый гость
 
Регистрация: 07.11.2019
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 1 раз в 1 сообщении
Владимир 013 на пути к лучшему
По умолчанию Re: Гистерезис в регуляторе температуры на Ардуино

спасибо вам вы мне очень помогли понять где была ошибка в коде
Владимир 013 вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ПИД регулятор с косвенным контролем температуры Alex_golubev Электроника - это просто 2 22.01.2018 21:24
Контроллер температуры и освещения террариума dmitry.shagin Делимся опытом 24 03.12.2016 12:14
Чем заменить микросборку МС098СА1 в регуляторе температуры ТЭ3п? INIL Автоматика и аппаратура связи 5 20.03.2014 21:10
Проблема с сенсором температуры DS1621 roer Микроконтроллеры, АЦП, память и т.д 0 02.08.2011 14:14
Датчики температуры для агрессивных сред ramzes44 Производственное оборудование 9 02.11.2010 23:27


Часовой пояс GMT +4, время: 13:18.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.