контроллер для горелки
- Войдите на сайт для отправки комментариев
Ср, 03/02/2016 - 04:09
Здравствуйте, сделал горелку на отработке, решил прилепить автоматизацию, нашел инфу про ардуино купил мегу, два датчика ds18b20, ик датчик пламени и блок на 4 реле, полистав инет, решил попробовать написать прогу, с этим дело имею впервые... написал скетч, но ничего не работает, при включении питания все лампы на реле загораются и ни на датчик пламени, ни на нагрев датчиков темп не реагирует... может толкнете в нужное русло, что упустил, где почитать...
вот т.н. "скетч"
#include <OneWire.h>
#include <DallasTemperature.h>
//DS18b20
#define ONE_WIRE_BUS 10 // датчики температуры на 10 пине
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress sensor1 = {0x28, 0xFF, 0xE0, 0x9F, 0x83, 0x15, 0x02, 0xC0}; // адреса датчиков
DeviceAddress sensor2 = {0x28, 0xFF, 0x46, 0x9D, 0x83, 0x15, 0x02, 0x68};
// Температура
float temp1 = 0; // текущая температура первого датчика
float temp2 = 0; // второй датчик
//
// настраиваем выводы
#define RELAY_PIN1 22 // выходы на реле
#define RELAY_PIN2 23
#define RELAY_PIN3 24
#define RELAY_PIN4 25
#define IR_PIN 26 // вход датчика ИК пламени
void setup()
{
sensors.begin();
sensors.setResolution(sensor1, 10);
sensors.setResolution(sensor2, 10);
pinMode(IR_PIN, INPUT); // пин ик датчика выход
pinMode(RELAY_PIN1, OUTPUT); // пины реле выходы
pinMode(RELAY_PIN2, OUTPUT);
pinMode(RELAY_PIN3, OUTPUT);
pinMode(RELAY_PIN4, OUTPUT);
}
void loop()
{
sensors.requestTemperatures();
// Температура
temp1 = sensors.getTempC(sensor1); // получаем температуру
temp2 = sensors.getTempC(sensor2);
digitalRead (IR_PIN); // проверка пламени
delay (1000);
if (temp1 >= 34 && temp2 <= 34 && IR_PIN == 0) {
digitalWrite(RELAY_PIN1, HIGH);
digitalWrite(RELAY_PIN2, LOW);
digitalWrite(RELAY_PIN3, LOW);
digitalWrite(RELAY_PIN4, LOW);
} else if (temp1 >= 34 && temp2 <= 34 && IR_PIN == 1){
digitalWrite(RELAY_PIN1, LOW);
digitalWrite(RELAY_PIN2, HIGH);
digitalWrite(RELAY_PIN3, LOW);
digitalWrite(RELAY_PIN4, LOW);
}else if (temp1 >= 34 && temp2 > 34 && IR_PIN == 0){
digitalWrite(RELAY_PIN1, LOW);
digitalWrite(RELAY_PIN2, LOW);
digitalWrite(RELAY_PIN3, HIGH);
digitalWrite(RELAY_PIN4, LOW);
} else if (temp1 >= 34 && temp2 > 34 && IR_PIN == 1){
digitalWrite(RELAY_PIN1, LOW);
digitalWrite(RELAY_PIN2, LOW);
digitalWrite(RELAY_PIN3, LOW);
digitalWrite(RELAY_PIN4, HIGH);
}
else
{ digitalWrite(RELAY_PIN1, LOW);
digitalWrite(RELAY_PIN2, LOW);
digitalWrite(RELAY_PIN3, LOW);
digitalWrite(RELAY_PIN4, LOW);
}
}
заранее благодарен за помощь
Начните с простеньких задач и поэтапно: включить диод, реле, замер пламени. Весь скетч из 5 операторов.
замер пламени делал, там совсем просто, зажигалку зажигал, реле включалось, а вот с температурой засада
По поводу "замера" пламени:
1. Смотрим что пламени нет
2. Поджигаем
3. Смотрим что пламя есть через время зажигания
4. Если пропало- отключаем подачу топлива
в принципе что-то подобное и хотел изобразить
а в моем скетче вообще все неправильно? мож ткнете в чем ошибка и что прочесть по этой теме.. так то я впервые столкнулся с программированием.. стало интересно свои силы испытать..
Попробуйте 34.0
А при отладке используйте Serial.println(***), для вывода контрольных значений из нужных мест программы. Будете понимать, попадаете куда хотелось или нет + плюс информация к размышлению, "почему".
вставил Serial.println(***), температура отображается с обоих датчиков... Вот еще в чем дело, в одном условии включения реле заменял && на & по идее должно было сработать от ИК датчика, тк одно из условий выполняется, но этого не произошло... Чую какая то заковырка есть, а не понимаю где...
заработало... ввел bool flame = digital read IR_PIN.. и понял где я тупанул, надо в скобках условие было писать не IR_PIN==0, а digital read IR_PIN==0
но это только начало, надо усложнять код под реальные условия, надеюсь с вашей помощью разобраться
digital read IR_PIN==0 , прямо так и написали или все таки digitalRead ( IR_PIN ) == 0 ? Старайтесь даже в сообщениях сохранять синтаксис, автоматизм вырабатывает.
со скобками
Как успехи со скетчем?
У меня такаяже ситуация, горелку сделал, работает отлично, даже есть немного автоматики, стоит фотосенсор на пламя и искровой розжиг срабатывающий при пропадании пламени.
Сейчас взял пару контроллеров и датчики с релюшками. Осваиваю программирование, очень интересен Ваш проект, буду следить.
здравствуйте! подскажите пожалуйсто есть ли уроки по программированию ардуино? совсем нет времени после работы(( а очень нужен скетч на горелку с монитором и энкодером и реле! для чайников как я)))
да тема к сожедению стухла....... сам сейчас этой темой интересуюсь...
Free_men. начни с создания алгоритма и схемы.
есть незаконченный проект (заказчик слился и не заплатил )))))
если интересно можно поковыряться и завершить
7808543@gmail.com
написал...
есть следущие компоненты :
NANO 3.0
датчик пламени - Wavelength 760nm-1100nm LM393 IR
5 обычных кнопок
2(3) ds18b20
дисплей IIC/I2C 2004 blue screen LCD
само паенные платы управления нагрузкой на базе :
цена всего 1200р.. а вот с програмным кодом косяк...
ЭТА ТЕМА ЕЩЁ ИНТЕРЕСНА ?
Спасибо за ответ! а как фото схемы вставить ? в течении недели выложу алгоритм!!! если успею... пытаюсь дом под крышу поставить до холодов... пока работает все в ручном режиме когда я там... когда нет ставою капельницу т.к собраная схема на реле и простеше автоматики сбоит(
Конечно интересна.
Добрый день собрал горелку на форсунке делаван с блоком управления ардуино уно 3 нужна помощь!
У меня тоже есть недобитый код для масляного котла, сейчас с воздушной помпой занимаюсь (безщеточный 12v/ двиг идет с китая)
на данный момент запоминает и выводит на экран 1602 положение масляной заслонки (вентиль к которому прикручен шаговик)
управляет воздушной турбиной pwm 0-255 (на безщеточный двиг)
сигналка если температура в котле выше ...
два датчика температуры (на выходе котла и улица)
в плане
управление водяным насосом в доме: Включает если температура вкотле выше 28
выключает когда потух котел (20гр)
включает импульсно если на улице ниже ноля и в котле ниже 20 (3 мин. крутим 20 минут стоит ) чтоб неразморозить ночью котел когда закончится топить но и чтоб не мутузил холодную воду в дом.
передача данных температур, положения вентиля и турбины на андроид и обратное управление заслонкой и турбиной.
тоисть ручник, никакого управления по температуре! (как показала практика) только привода подачи масла и воздуха.
млть....можно сказать начал с него осваивать арду)))
http://radikal.ru][img]http://s018.radikal.ru/i519/1610/f0/fa40d1c05dd5.jpgсобрал макет.... но случилась печаль +5 на gnd... печаль даже не в том а что я вставил 2 контроллер... отошол.. пришол.... и...... короче нет у меня больше контроллера.... заказал новый.... http://s018.radikal.ru/i519/1610/f0/fa40d1c05dd5.jpg
к стате может кто подскажет что сгореть могло...
Контролер сгорел. Ну кто сырую непровереную программу включает и уходит. Программист наверно удаленно писал, значит некие нюансы не сказал или упустил. Так что сначало макетно программу надо проверять.
Да нет сам накосячил…. Т.к в программировании полный ноль… а денег нет…..то решил программу написать в flprog.. далее взял за пример программы с сайта.. там везде были кнопки подключены к цифровым входам…. Но не получалось не как записать значение в память… дальнейшие поиски привели вот к этой теме … http://flprog.ru/publ/stati/userprojects/kontrol_temperatury_v_servernykh_shkafakh_i_upravlenie_rabotoj_ventiljatorov_so_starogo_sajta/1-1-0-66?la9Pi6 …. там более просто написано программный код и его изменить оказалось проще под мои цели… но при попытки подключения аналоговой кнопки провод GND упал на +5…. Контроллер вырубился…. По матерившись вспомнил что есть запасной…. Поставил его.. залил прошивку… порадовался…. Пошол чай пить…. Пришол и О****БОГИ…. Провода то я не отключил от +5.. ну и по закону везения провод упал ровненько лег опять на гнд…… так что я спалил за час 2 платы нано…….
пока жду новые платы займусь алгоритмом и корпусом... а у кого какие успехи ?
там есть диод защитный, попробуйте перепаять
У меня практически закончен проект, горелка Бабингтон + контроллер на Ардуино. Всё работает уже с прошлой зимы, дорабатываю помаленьку.
Плата Ардуино УНО китай.
4 реле - подогрев масла, маслонасос, подача воздуха, искровое зажигание.
Датчик пламени.
Два температурных датчика Даллас - один на температуру масла, второй на температуру помещения.
Реостат 10кОм, для выбора переменной температуры помещения, от 0 до 30 градусов.
ЖК дисплей 20*4. Отображает текущюю температуру масла и помещения, значение желаемой температуры в помещении, сосотояние 4-х реле, и если произошла то ошибку поджига.
Алгоритм, включается маслонасос \ через паузу включатся подогрев масла если требуется\ через паузу включается воздух и искра\ если произошол поджиг, то отключаем искру\ если поджиг не произошол за 40 секунд, то отключаем всё и пишем на экране об ошибке поджига. Все процессы зависимы от температур.
Скетч позже выложу, нету сейчас под рукой.
да на обоих платах сгорели диоды... СПаСБО!!! замкнул и все ок ) надо искать новые теперь...
лучше впаяйте туда новые, можете спалить порт
не могу найти откуда выпаять ((( на материнке старой нету.. а вблоке петания есть такие ?
можно и обычные, только падение напряжения будет больше, и вместо 5в будет 4,6-4,7
ну я думаю это не особо кретичное подение... нашел на материнской плате старой... но там только буква s стоит .. не т цифр.... вечером попробую..
Здравствуйте! пытался я научиться в среде скетч писать но не получилось(( вернее нет времени пока! если не трудно скинте скетч?)) я скачивал много скетчей но ни один не работает) у меня ардуино уно и мега и нано есть) 4 РЕЛЛЕ энкодер и.т.д
посмотри в сторону программы flprog... это визуальная среда... а у тебя форсунка или шар ?
ну пока что вот это... 3 кнопки все записываеться в энерго независимую память.... меню работает на отлично.... пока что работает толко нагрев масла!!! на больше пока мозна не хватает залейте пробуйте )
У меня практически закончен проект, горелка Бабингтон + контроллер на Ардуино. Всё работает уже с прошлой зимы, дорабатываю помаленьку.
Плата Ардуино УНО китай.
4 реле - подогрев масла, маслонасос, подача воздуха, искровое зажигание.
Датчик пламени.
Два температурных датчика Даллас - один на температуру масла, второй на температуру помещения.
Реостат 10кОм, для выбора переменной температуры помещения, от 0 до 30 градусов.
ЖК дисплей 20*4. Отображает текущюю температуру масла и помещения, значение желаемой температуры в помещении, сосотояние 4-х реле, и если произошла то ошибку поджига.
Алгоритм, включается маслонасос \ через паузу включатся подогрев масла если требуется\ через паузу включается воздух и искра\ если произошол поджиг, то отключаем искру\ если поджиг не произошол за 40 секунд, то отключаем всё и пишем на экране об ошибке поджига. Все процессы зависимы от температур.
Скетч позже выложу, нету сейчас под рукой.
выложите, если может свою программу?
Дождались ?
Всем привет, кто сталкивался, датчики Даллас, пока идёт нагрев масла температура отображается корректно. При переходе в режим горения температура масла и воды становятся -127, (периодически проскакивает верная температура). Отключал и двигатель и воздух, все те же -127. Причем если отключаю оба реле и имитирую присутствие пламени температура нормально видна. Только подключаю реле, сразу -127 даже с отключенными потребителями. Реле использую твердотельные. Пробовал подкидывать другие релюшки не помогло.
И какова реальная температура кипящего масла?
Оно не закипает градусов до 90 нагревалось только, подачу масла обрывает термопредохранитель на трубе подачи, в паузе все температуры нормально показывают
вы вероятно используете паганую библиотеку DallasTemperature.
в ней написано -
#define DEVICE_DISCONNECTED_C -127
думаю разберётесь что это означает.
а причина - или корявая схема или корявая сборка или то и другое....
допустим, корявая сборка, но тогда почему не выдает ошибки на других режимах, только в режиме работы?
в режиме нагрева масла или в режиме паузы температуры показывает корректно, все контакты вроде в норме.
А есть ли альтернатива этой поганой библиотеке?
А есть ли альтернатива этой поганой библиотеке?
конечно. Альтернатива - написать самому, примеров в инете полно. Вот, прямо из вчерашнего, в разделе для чайников...
http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/miganiya-led-bez-delay#comment-501833
Только обязательно проверять CRC при чтении
допустим, корявая сборка, но тогда почему не выдает ошибки на других режимах, только в режиме работы?
в режиме нагрева масла или в режиме паузы температуры показывает корректно, все контакты вроде в норме.
раз при каких то условиях отваливается получение данных с датчика. значит где то что то не в норме.
Я думал, что реле дают помехи, но вроде твердотельные, без катушек, может ли это быть из-за того,что все питается от компьютерного БП, в том числе исполнительные механизмы
кто может поделится с скечам для полетнои горелки на Arduine Uno