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

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

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

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

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

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


 
Опции темы
Непрочитано 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
Сообщений: 298
Сказал спасибо: 0
Сказали Спасибо 224 раз(а) в 127 сообщении(ях)
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
Сказал спасибо: 870
Сказали Спасибо 313 раз(а) в 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
Сообщений: 298
Сказал спасибо: 0
Сказали Спасибо 224 раз(а) в 127 сообщении(ях)
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, время: 23:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot