Официальный сайт компании Arduino по адресу arduino.cc
Добавить действие к коду
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ср, 23/01/2019 - 11:55
Друзья, помогите с кодом.
int m_status; int tryCount; const int pinSensor = 2; //датчик газа const int pinStatus = 3; // индикатор статуса const int pinMaingas = 5; // клапан газа/воздух (запальник) const int pinSpark = 6; //поджиг const int pinFlSt = 7; // контроль пламени (Flame Status) const int pinSpeaker = 11; // зуммер const int pinFire = 10; // подача газа (основная горелка) bool used_by_man = 0; void setup() { pinMode(pinSensor,INPUT); pinMode(alarmLed,OUTPUT); pinMode(pinFire,OUTPUT); pinMode(pinFlSt,INPUT); pinMode(pinMaingas,OUTPUT); pinMode(pinSpark,OUTPUT); pinMode(pinStatus,OUTPUT); pinMode(pinSpeaker,OUTPUT); digitalWrite(pinMaingas,LOW); digitalWrite(pinSpeaker,LOW); digitalWrite(alarmLed,LOW); digitalWrite(pinSpark,HIGH); tryCount=0; } void loop() { // блок контроля утечки газа if (used_by_man == 0) { if (!digitalRead(pinSensor)) digitalWrite(pinMaingas,HIGH); else digitalWrite(pinMaingas,LOW); used_by_man = 1; if ( digitalRead(pinSensor)) digitalWrite(pinSpeaker,LOW); else digitalWrite(pinSpeaker,HIGH); } // конец блока if (m_status==1){ digitalWrite(pinStatus,HIGH); if (digitalRead(pinFlSt)==HIGH){ digitalWrite(pinMaingas,LOW); digitalWrite(pinSpeaker,HIGH); digitalWrite(pinSpark,HIGH); m_status=0; } } if (m_status==0){ digitalWrite(pinStatus,LOW); if (digitalRead(pinSpeaker)==LOW){ if (digitalRead(pinFlSt)==HIGH){ // если не горит tryCount++; digitalWrite(pinSpark,HIGH); digitalWrite(pinMaingas,HIGH); delay(1000); digitalWrite(pinSpark,LOW); delay(8000); } if (digitalRead(pinFlSt)==LOW&&digitalRead(pinMaingas)==HIGH){ m_status=1; digitalWrite(pinSpark,HIGH); tryCount=0; } if ((digitalRead(pinFlSt)==LOW&&digitalRead(pinMaingas)==LOW)||tryCount>1){ digitalWrite(pinMaingas,LOW); digitalWrite(pinSpeaker,HIGH); digitalWrite(pinSpark,HIGH); m_status=0; } } } }
Работает так:
Включение, подача сигнала на клапан запальника следом подача сигнала на поджиг (2 раза).
Если загорелось, получаем сигнал с датчика пламени и подаем сигнал на светодиод pinStatus, если нет, то блокируем всё и включаем зуммер и светодиод аварии. Так же, в начале кода блок контроля утечки газа.
Что требуется:
Добавить строки с активностью pinFire. Т.е., пламя на запальнике (pinMaingas)
загорелось, появился сигнал на pinStatus и через 3-5 секунд подается сигнал на pinFire.
Друзья, мозг сломан...
Я-то думаю - чего газ начал дома подрывать. Уже егил истребили, обаму прогнали, президент единый до гроба - некому вроде. А оно вона чо - абдурина гадит.
Друзья, мозг сломан...
1. http://booksonline.com.ua/view.php?book=83081
2. https://republic.ru/posts/l/1067558
Друзья, а на лоре вы не зарегистрированы случайно?
Ну, дорогой, Вы зря так безответственно. Ну, как мы можем Вам помочь, если Вы инвалид с неисправным мозгом? Что Вы поймёте из наших объяснений? Почините мозг, подлечитесь, тогда и поговорим :)
Ну, раз Вы не можете помочь, то зачем вообще загрязнять тему постами без какой-либо смысловой нагрузки?
Дак тут же тролли одни, разной степени упитанности.
Сегодня же среда - день загрязнения постов. Особенно тех, в которых опасные скетчи обсуждаются.
Да я, вроде как, не о безопасности скетча спрашивал.
Но мы-то знаем, что в таком деле лучше не помогать - и клиент жив и соседи его рады. Первый газовик штоли... Еще и с дилэями.
постами без какой-либо смысловой нагрузки?
Вы похоже не понимаете ... Вы сказали, что у Вас сломан мозг! Разговаривать с безмозглым человеком невозможно, потому я дал Вам ссылки на то, как его починить! И вместо благодарности, обвинение в троллинге! Вам не стыдно?
Ну, я то с Вами как-то разговариваю. Я, помимо фразы о мозге (о нем, кстати, вопросов не было), задал основной вопрос, по теме, по скетчу для ардуино, но Вы увидели лишь фразу о мозге. Повидимому, тема для Вас весьма актуальна и даже ссылки имеете. Вам бы не на технический форум, а на медицинский...
Если Вас это успокоит, котёл стоит в отдельном помещении, в частном доме. Помещение полностью проветриваемое. На котле висит термопара, которая выполняет основную функцию блокировки газа. А что не так с delay?
Где delay, там нет контроля. Впрочем, сдается мне, что контроль утечки газа в этом скетче всё равно фактически отсутствует.
А что не так с delay?
99,99% времени система у Вас ничего не контролирует, а отдыхает в этих самых делеях.
Разве delay прерывает цикл?
Где delay, там нет контроля. Впрочем, сдается мне, что контроль утечки газа в этом скетче всё равно фактически отсутствует.
Вы это как-то на практике определили? Или есть какие-то конкретные доводы?
А вы поставьте Serial.println(millis()) в блок контроля и посмотрите, скоко раз он вам напечатает.
Разве delay прерывает цикл?
delay() это аналог дубиной по голове, когда МК лежит без сознания и ничего не контролирует. Нет, потом-то он, канеш, очнёца, пойдет продолжать цикл, на за время беспамяцтва многое может случиться
Разве delay прерывает цикл?
delay() это аналог дубиной по голове, когда МК лежит без сознания и ничего не контролирует. Нет, потом-то он, канеш, очнёца, пойдет продолжать цикл, на за время беспамяцтва многое может случиться
О, как. А есть альтернатива? А delay вроде у него всего 8 секунд + вентилируемое помещение + вытяжка из камеры сгорания. Повторного поджига там нет. Нет пламени или утечка газа - остановка цикла и "авария". Или я чего-то не вижу?
Разве delay прерывает цикл?
delay() это аналог дубиной по голове, когда МК лежит без сознания и ничего не контролирует. Нет, потом-то он, канеш, очнёца, пойдет продолжать цикл, на за время беспамяцтва многое может случиться
Но про "дубиной по голове" мне понравилось.
О, как. А есть альтернатива? А delay вроде у него всего 8 секунд + вентилируемое помещение + вытяжка из камеры сгорания. Повторного поджига там нет. Нет пламени или утечка газа - остановка цикла и "авария". Или я чего-то не вижу?
В общем, пока не почините мозг, говорить не о чем. Сначала почините, потом возвращайтесь со справкой. поговорим.
О, как. А есть альтернатива? А delay вроде у него всего 8 секунд + вентилируемое помещение + вытяжка из камеры сгорания. Повторного поджига там нет. Нет пламени или утечка газа - остановка цикла и "авария". Или я чего-то не вижу?
В общем, пока не почините мозг, говорить не о чем. Сначала почините, потом возвращайтесь со справкой. поговорим.
Правильная у вас аватарка.
Правильная у вас аватарка.
тут у всех аватарки - правильные.
Правильная у вас аватарка.
А то!
Буду я с неправильной ходить, щас!
В отличии от коллег, я считаю, что каждый сам пи..дец своему счастью, и имеет право на конструирование чего угодно. В данном случае - главное условие - частный дом, не многоэтажка.
Так чтоя поясню, что куда, если ты прокомментируешь код.
1.Какие уровни активные? Что за "статусы"? Вот прям по строчкам.
2. Напиши на простом русском, без пинов и клапанов, как ты видишь работу алгорима?
3. Правильно я понял, что ты проектируешь только автозапуск котла... например после его остановки из-за отключения электричества? или ты в итоге хочешь полностью кастомную автоматику?
да, господа-коллеги, делей в имеющемся коде, пока что, стоит между попытками поджига (правда я не вчитывался), то есть ПОКА не влияет на безопасность. Так что ПОКА гнобить автора не за что.
В отличии от коллег, я считаю, что каждый сам пи..дец своему счастью, и имеет право на конструирование чего угодно. В данном случае - главное условие - частный дом, не многоэтажка.
Так чтоя поясню, что куда, если ты прокомментируешь код.
1.Какие уровни активные? Что за "статусы"? Вот прям по строчкам.
2. Напиши на простом русском, без пинов и клапанов, как ты видишь работу алгорима?
3. Правильно я понял, что ты проектируешь только автозапуск котла... например после его остановки из-за отключения электричества? или ты в итоге хочешь полностью кастомную автоматику?
Спасибо!
Пишу как вижу.
Подаем питание (включатель), подается газ на запальник, вместе с ним подается искра. 2-3 попытки. Если пламени нет, то отключается и издает противный звук в подсвечиванием светодиодом (ярко-красным). Если же пламя появилось, то уведомляем светодиодом о том, что все работает, ждем 5-7 секунд и подаем газ на основную горелку (поджигается от запальника). Если отключение газа, света, задуло ветром и т.п., отключаем обе горелки и снова кричим светодиодом и звуком. Если даже всё горит, но есть присутствие газа около котла, то так же гасим всё и кричим.
да, господа-коллеги, делей в имеющемся коде, пока что, стоит между попытками поджига (правда я не вчитывался), то есть ПОКА не влияет на безопасность. Так что ПОКА гнобить автора не за что.
Полегчало. Честно.
Косяки и другие есть. Вот в строке 59 газ включили, попытались зажечь, допустим не получилось. И 8 секунд газ остаётся включенным.
Косяки и другие есть. Вот в строке 59 газ включили, попытались зажечь, допустим не получилось. И 8 секунд газ остаётся включенным.
Согласен. После 61 строки видимо нужно отключать газ перед delay(8000).
Вот в строке 59 газ включили, попытались зажечь, допустим не получилось. И 8 секунд газ остаётся включенным.
Это то самое, что я имел в виду в #21
Косяки и другие есть. Вот в строке 59 газ включили, попытались зажечь, допустим не получилось. И 8 секунд газ остаётся включенным.
Согласен. После 61 строки видимо нужно отключать газ перед delay(8000).
Вы лучше не гадайте, а нарисуйте блок-схему. И подумайте хорошо когда запальник должен гореть , а когда нет.
О, как. А есть альтернатива? А delay вроде у него всего 8 секунд + вентилируемое помещение + вытяжка из камеры сгорания. Повторного поджига там нет. Нет пламени или утечка газа - остановка цикла и "авария". Или я чего-то не вижу?
В общем, пока не почините мозг, говорить не о чем. Сначала почините, потом возвращайтесь со справкой. поговорим.
Из какого слова в вашем комментарии это должно было быть понятным? Уважаемый, человек, владеющий свободно языком С или ассемблером не будет задавать тут вопрос, на который вы с легкостью найдете ответ - такие специалисты точно обойдутся и без вашей точки зрения.
Косяки и другие есть. Вот в строке 59 газ включили, попытались зажечь, допустим не получилось. И 8 секунд газ остаётся включенным.
Согласен. После 61 строки видимо нужно отключать газ перед delay(8000).
Вы лучше не гадайте, а нарисуйте блок-схему. И подумайте хорошо когда запальник должен гореть , а когда нет.
Запальник горит всегда.
Можно пример блок-схемы? В чем её рисовать?
"Согласен. После 61 строки видимо нужно отключать газ перед delay(8000)."
"Запальник горит всегда."
А что Вы собрались тогда отключать перед delay(8000)?
Как рисуются блок-схемы и примеры: https://pro-prof.com/archives/1462 . Рисовать удобно в Ворде.
"Согласен. После 61 строки видимо нужно отключать газ перед delay(8000)."
"Запальник горит всегда."
А что Вы собрались тогда отключать перед delay(8000)?
Запутался совсем. Это ж поджиг. Если не зажглось, то дальше по коду он отключит газ и уйдет в аварию.
"Согласен. После 61 строки видимо нужно отключать газ перед delay(8000)."
"Запальник горит всегда."
А что Вы собрались тогда отключать перед delay(8000)?
Запутался совсем. Это ж поджиг. Если не зажглось, то дальше по коду он отключит газ и уйдет в аварию.
Поджиг Вы уже отключили перед delay(8000). Подачи основного газа у Вас в коде вообще не наблюдается. А "глаз" (контроль пламени) у Вас видит горение запальника или только основное?
"Согласен. После 61 строки видимо нужно отключать газ перед delay(8000)."
"Запальник горит всегда."
А что Вы собрались тогда отключать перед delay(8000)?
Запутался совсем. Это ж поджиг. Если не зажглось, то дальше по коду он отключит газ и уйдет в аварию.
Поджиг Вы уже отключили перед delay(8000). Подачи основного газа у Вас в коде вообще не наблюдается. А "глаз" (контроль пламени) у Вас видит горение запальника или только основное?
Видит оба пламени. Основной горелки у меня в коде нет, но именно за этим я сюда и пришел. Мне нужно включать её через 5-7 секунд после появления пламени на запальнике.
А 8 сек. ждать зачем? Прогреваете горелку что-ли и ждёте устойчивого горения? Если глаз увидит запальник сразу нельзя включать?
Автор!
Поедем дальше, пока тебя не запутали:
1. какой котел - с изолированной камерой сгорания или открытой?
2. Как ты используешь родную систему газконтроля - электромагнитный клапан и термопару? Плохо, если ты туда вмешиваешься, а если не вмешиваешься, то как ты подаешь газ на запальник?
================================================
НЕБОЛЬШОЙ ОФФТОП: (как обычно - прошу прощения за многабукф и ашипки)
как следует проектировать автоматику для малентких котлов и не заехать на тюрьму
домашние котлы бывают двух типов - закрытые и открытые, по типу камеры сгорания. Управлять ими надо по разному.
Для зажигания основной горелки открытых используется запальная горелка, в закрытых - чаще прямой поджиг.
При использовании прямого поджига необходим ионный датчик пламени, он реагирует сразу. При запальнике - достаточно термопары.
Объяснение - простое, газа при прямом поджиге идет много, нужно сразу выключить, если он не горит. Штоп не ёпнуло!
При использовании автоматики, даже только на розжиг, необходим ионный датчик... ну по той же причине.
Для подстраховки не стоит отключать независимый контур контроля на термопаре и электромагнитном клапане.
Общий принцип - нигде и никогда не должно быть возможности "зависнуть" с открытым клапаном газа. При изолированной топке можно не думать особо о запальнике, там расход микроскопический и нет объема, чтобы "ёпнуть".
При разрушении автоматики - газ перекрывается, все клапана - на отдельной системе и нормально закрыты. Нужно обеспечить их закрытие при "зависании". Например 555-ый таймер, который выключит клапан, если нет регулярного импульса от контроллера. Правила проектирование не уточняют решения, только независимость системы контроля от основной. Поэтому 555-ый - вполне себе решение.
Вообще автозапуск на котел с открытой топкой - не стоит делать даже в частном доме! Но если ОЧЕНЬ хочется, то контроль утечки (датчик газа) делай НА ДРУГОЙ ардуине с отдельным питанием и аварийным аккумом, и аварийный НЗ-клапан к ней. Это вот совсем обязательно - на другой! И так риск "на тюрьму заехать" есть, а уж без контроля.....
С изолированной топкой - все гораздо проще. Но ионный датчик - необходим и не стоит держать 8 сек а потом снова давать искру!
2-3 секунды на попытки поджига. Нет пламени? - продувка воздухом с закрытым газом и новая попытка поджига. Никогда не следует давать искру при неизвестном составе смеси, в изолированной топке не ёпнет, но будет хлопок - совсем лишнее!!!
Раньше не ставили, но теперь несложно поставить проверку перед запуском на наличие избыточного давления в топке, то есть не просто нагнетательный вентилятор "прозвонить", а именно давление проверить, датчик копеечный, а риск меньше.
А 8 сек. ждать зачем? Прогреваете горелку что-ли и ждёте устойчивого горения? Если глаз увидит запальник сразу нельзя включать?
Вопрос резонный, но по осени в газовой трубе бывает влага, которая может задуть пламя в первые секунду. Хотя, она уйдет в аварию. Подумаю об этом.
Автор!
Поедем дальше, пока тебя не запутали:
1. какой котел - с изолированной камерой сгорания или открытой?
2. Как ты используешь родную систему газконтроля - электромагнитный клапан и термопару? Плохо, если ты туда вмешиваешься, а если не вмешиваешься, то как ты подаешь газ на запальник?
================================================
НЕБОЛЬШОЙ ОФФТОП: (как обычно - прошу прощения за многабукф и ашипки)
как следует проектировать автоматику для малентких котлов и не заехать на тюрьму
домашние котлы бывают двух типов - закрытые и открытые, по типу камеры сгорания. Управлять ими надо по разному.
Для зажигания основной горелки открытых используется запальная горелка, в закрытых - чаще прямой поджиг.
При использовании прямого поджига необходим ионный датчик пламени, он реагирует сразу. При запальнике - достаточно термопары.
Объяснение - простое, газа при прямом поджиге идет много, нужно сразу выключить, если он не горит. Штоп не ёпнуло!
При использовании автоматики, даже только на розжиг, необходим ионный датчик... ну по той же причине.
Для подстраховки не стоит отключать независимый контур контроля на термопаре и электромагнитном клапане.
Общий принцип - нигде и никогда не должно быть возможности "зависнуть" с открытым клапаном газа. При изолированной топке можно не думать особо о запальнике, там расход микроскопический и нет объема, чтобы "ёпнуть".
При разрушении автоматики - газ перекрывается, все клапана - на отдельной системе и нормально закрыты. Нужно обеспечить их закрытие при "зависании". Например 555-ый таймер, который выключит клапан, если нет регулярного импульса от контроллера. Правила проектирование не уточняют решения, только независимость системы контроля от основной. Поэтому 555-ый - вполне себе решение.
Вообще автозапуск на котел с открытой топкой - не стоит делать даже в частном доме! Но если ОЧЕНЬ хочется, то контроль утечки (датчик газа) делай НА ДРУГОЙ ардуине с отдельным питанием и аварийным аккумом, и аварийный НЗ-клапан к ней. Это вот совсем обязательно - на другой! И так риск "на тюрьму заехать" есть, а уж без контроля.....
С изолированной топкой - все гораздо проще. Но ионный датчик - необходим и не стоит держать 8 сек а потом снова давать искру!
2-3 секунды на попытки поджига. Нет пламени? - продувка воздухом с закрытым газом и новая попытка поджига. Никогда не следует давать искру при неизвестном составе смеси, в изолированной топке не ёпнет, но будет хлопок - совсем лишнее!!!
Раньше не ставили, но теперь несложно поставить проверку перед запуском на наличие избыточного давления в топке, то есть не просто нагнетательный вентилятор "прозвонить", а именно давление проверить, датчик копеечный, а риск меньше.
Камера открыта, помещение тоже вентилируется.
Термопара блокирует только основную горелку, запальник же блокируется только электроникой и, как Вы верно заметили, газа там минимум.
Релехи все нормально закрытые и клапана тоже.
Об отдельной ардуинке тоже думал и даже сначала так и сделал. Но потом решил воткнуть всё в одну коробочку. Наверное разделю.
На открытом котле видимо давление не замеряется, нет?
Интересно про 555 и ионный датчик,
На открытом - конечно нет. ионный датчик - три PNP транзистора каскадом. Щас свою очень старую схему выложу, нарисованную в черте-чем ;))). Это я делал для холодильника на газе в моем автодоме. Там плата сдохла после мойки, а новая в неметчине 250 евро стоит! ;))).
Электрод туда, где килоомный резистор. Зашунтированный диодом резистор 100 Ом - это собственно клапан (символически) ;)).
Тут у меня транзисторы 4403, но это не особо значение имеет. Для датчика - транзисторов двух хватит, считаем из того, что ионный ток - единицы микроАмпер (5-7).
Ну это очень примитивное устройство - есть пламя есть ионный ток, ловим, детектируем. Вот в таком виде у меня на автодоме уже годы работает. Я что-то модифицировал потом, но не принципиально.
------------------------------------
Про 555: - сделай на 555-ом схемку, чтобы держала клапан открытым пару секунд и перезапускалась по импульсу от контроллера. Тогда, если контроллер зависнет, то клапан через две секунды закроется. Можно сделать отдельно импульсы "биения сердца" и отдельно сигналы на клапаны и объединить их по И. Там миллион вариантов.
добавление
==================
котел с изолированной топкой на типичный дом в 120-150 кв.м. стоит около 40 тыр. С открытой - ну 30... разница... хм-м.
У меня самого стоит старый Жуковский котел с открытой топкой. Но я к нему ничего и не пристраиваю! ;)))
добавление
==================
котел с изолированной топкой на типичный дом в 120-150 кв.м. стоит около 40 тыр. С открытой - ну 30... разница... хм-м.
У меня самого стоит старый Жуковский котел с открытой топкой. Но я к нему ничего и не пристраиваю! ;)))
У меня котлу более 20ти лет. Варил сам. По КПД к нему вопросов нет, но поджигать каждый раз лень.
На открытом - конечно нет. ионный датчик - три PNP транзистора каскадом. Щас свою очень старую схему выложу, нарисованную в черте-чем ;))). Это я делал для холодильника на газе в моем автодоме. Там плата сдохла после мойки, а новая в неметчине 250 евро стоит! ;))).
Электрод туда, где килоомный резистор. Зашунтированный диодом резистор 100 Ом - это собственно клапан (символически) ;)).
Тут у меня транзисторы 4403, но это не особо значение имеет. Для датчика - транзисторов двух хватит, считаем из того, что ионный ток - единицы микроАмпер (5-7).
Ну это очень примитивное устройство - есть пламя есть ионный ток, ловим, детектируем. Вот в таком виде у меня на автодоме уже годы работает. Я что-то модифицировал потом, но не принципиально.
------------------------------------
Про 555: - сделай на 555-ом схемку, чтобы держала клапан открытым пару секунд и перезапускалась по импульсу от контроллера. Тогда, если контроллер зависнет, то клапан через две секунды закроется. Можно сделать отдельно импульсы "биения сердца" и отдельно сигналы на клапаны и объединить их по И. Там миллион вариантов.
Попробую на выходных, но не уверен, что осилю. Я, к сожалению, не электронщик. В крайнем случае закажу кому-нибудь.
закажите (купите) лучше готовый котёл .Цена вопроса 30тыщ. С газом не шутят дружище.
закажите (купите) лучше готовый котёл .Цена вопроса 30тыщ. С газом не шутят дружище.
Давайте попробую прояснить, чтобы подобные советы отпали. Котел стоит в частном доме, в узбекистане, где средняя зарплата $100=6400р. Хочется обратить внимание еще и на то, что в узбекистане без всяких предупреждений могут отключить газ, а через 10 минут включить. Так вот, как это работает сейчас: моя мать - пенсионерка, подходит к котлу, открывает газ, поджигает бумажечку, подносит её к горелке, после чего занимается своими делами. Случается такое, что газ отключают, когда её вовсе нет дома и воздух ароматизируется по 5-6 часов.
Ещё есть ценные советы? Или все думают, что я ради забавы этим занимаюсь?