/* Пины: 2 - датчик температуры 18b20 3 - SO 4 - CS 5 - CLK/SCK 6 - кнопка, по умолчанию LOW, со стягивающим резистором 7 - светодиод режима работа 8 - светодиод термопары 9 - светодиод датчика температуры 18b20 10 - светодиод фоторезистора 11 - реле. In А0 - фоторезистор А1 - потенциометр термопары А2 - потенциометр датчика температуры 18b20 А3 - потенциометр фоторезистора */ //датчик температуры 18b20. Все недостающие библиотеки скачать в интернете #include #include // библиотека для 18b20 OneWire oneWire(2); // вход датчика 18b20 DallasTemperature ds(&oneWire); //------------------------------ //Термопара #include "max6675.h" int thermoDO = 3; // SO int thermoCS = 4; //CS int thermoCLK = 5; //SCK MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO); //------------------------- int thermoCouple = 0; // Переменная для хранения значений температуры с термопары int valThermoCouple = 0; // Переменная для хранения значений потенциометра термопары int PinThermoCoPot = A1; // пин, к которому подключен потенциометр термопары int Temp = 0; // Переменная для хранения значений температуры датчика 18b20 int valTemp = 0; // Переменная для хранения значений потенциометра температуры int PinTempPot = A2; // пин, к которому подключен потенциометр температуры int brightness = 0; // ркость пламени. Чем ярче, тем меньше значение int valPhotoRez = 0; // переменная потенциометра яркости int PinPhotoRezPot = A3; // пин, к которому подключен потенциометр яркости int PinPhotoRez = A0; // пин фоторезистора int pinRelay = 11; // пин реле //Аварийные значения. Прибавляются или отнимаются от текущего значения датчика int alarmThermoCoupleMin = 30; // отключить реле припадении температуры на 30 градусов int alarmThermoCoupleMax = 50; // при превышении температуры на 50 int alarmTemp = 5; // отключить реле при превышении температуры на 5 градусов. Учесть погрешность датчика при установке поверх трубы +5. Т.е. если в трубе 90, на датчике 85 int alarmBrightness = 60; // отключить реле при падении яркости на 60 единиц //Диапазон оптимальных значений. Значение датчика +/- указанное число int rangeThermoCo = 15; //термопара int rangeTemp = 2; //температура int rangeBrightness = 20; //яркость пламени //Аварийные триггеры bool BoolBrightness = false; bool BoolTemp = false; bool BoolThermoCo = false; //Мигание светодиода int ledState = LOW; unsigned long previousMillis = 0; unsigned long currentMillis; //Таймер опроса датчика температуры unsigned long previousMillisTemp = 0; unsigned long currentMillisTemp; //Режим работы кнопки int regim = 0; int flag; //Аварийное мигание светодиода int led; bool blinker = true; void setup() { // Serial.begin(9600); // старт com-порта ds.begin(); // 18b20 pinMode(6, INPUT); // кнопка pinMode(7, OUTPUT); // светодиод переключателя режима digitalWrite(7, LOW); pinMode(8, OUTPUT); // светодиод термопары digitalWrite(8, LOW); pinMode(9, OUTPUT); // светодиод датчика температуры digitalWrite(9, LOW); pinMode(10, OUTPUT); // светодиод фоторезистора digitalWrite(10, LOW); pinMode(pinRelay, OUTPUT); //реле digitalWrite(pinRelay, HIGH); delay(500); } void loop() { //Данные с датчиков и потенциометров Temp = ds.getTempCByIndex(0); // температура котла valTemp = analogRead(PinTempPot); // потенциометр температуры brightness = analogRead(PinPhotoRez); // яркость пламени valPhotoRez = analogRead(PinPhotoRezPot); // значение уровня яркости с потенциометра thermoCouple = thermocouple.readCelsius(); // термопара valThermoCouple = analogRead(PinThermoCoPot); // потенциометр термопары currentMillisTemp = millis(); if (currentMillisTemp - previousMillisTemp >= 10000) { // раз в 10 секунд проверяем температуру котла previousMillisTemp = currentMillisTemp; ds.requestTemperatures(); // считываем температуру с датчика, на это требуется 750мс /* //Проверка через COM-порт Serial.print("Temp: " ); Serial.print(Temp); Serial.print("C"); Serial.print("; "); Serial.print("valTemp:"); Serial.println(valTemp/10); Serial.print("brightness: " ); Serial.print(brightness); Serial.print("; "); Serial.print("valPhotoRez:"); Serial.println(valPhotoRez); Serial.print("thermocouple: " ); Serial.print(thermoCouple); Serial.print("; "); Serial.print("valThermocouple:"); Serial.println(valThermoCouple); Serial.println(regim); */ } //Настройка параметров. Если светодиод горит, значит параметр задан //Параметры задаются в диапазоне, т.к. могут отклоняться от номиналов в связи с составом масла, его температурой, тягой дымохода и т.п. if(BoolThermoCo == false){ if (thermoCouple = valThermoCouple - rangeThermoCo ) { // значение температуры на термопаре в диапазоне +/- 15 градусов digitalWrite(8, HIGH); } else { digitalWrite(8, LOW); } } int DIVvalTemp = valTemp / 10; // 1024/10 = 100. возвращаемое значение 0..1024 / 10 = 0..100 настройка температуры до 100 градусов if(BoolTemp == false){ if (Temp = DIVvalTemp - rangeTemp ) { // Например, 85
Получилось отлично. Спасибо за скетч. Думаю можно сделать дисплей, что было более информативно. Так же добавить автозапуск, нагрев масла,можно управлять заслонкой воздуха, термодатики воздуха. Поставить условия на макс и мин температуру воздуха и масла. Ну и еще много чего. Друзья все кто смотрит данный канал давайте вместе продвидим тему автора. Своими комментариями и предложениями
Спасибо за отзыв! Дисплей добавить проблем нет, как в принципе и все остальное. Горелка по сути готова, осталась автоматика. Я работаю строителем, поэтому в разгар сезона на горелку нет времени. Но канал продолжает работу и осенью будут видео.
Здравствуйте.Хоть один человек нашелся который делиться своими достижением умением .Много коммерсантов развелось.Ладно я и купил бы если были цены адекватные .Ну да ладно про них .И вот вижу есть люди которые без всякой корысти выкладывает все .Именно для Вас желаю чтоб все было у Вас хорошо .Чтоб всегда делали добро людям.Чтоб твой канал процветал .Утри нос кммерсантам.Просьба будет время сделай автоматику информативней как Сергей пишет. Ну конечно по подробней как самомому повторить Ваше детище со всеми названиями деталей и ссылки где найти.Я думаю многие умеют паять и повторить подробным описанием и схемы сможет каждый.С меня лайк и подписка. Удачи и здоровья
@@АйтанБолатов-у1бкаждый контроллер должен писаться под свой котёл или печь. То что реализовал плюс автору. А по сути ? Не достаточно отключения маслоподачи. Контроль масло подачи, горения, температуры теплоносителя, подачи воздуха. Если есть аварийная ситуация где оповещение, хотяб зуммер. Сыро.
3 - SO 4 - CS 5 - CLK/SCK Решил заняться автоматикой, скопировал скетч в программу, проверку нажал, все ок но не понятно что это за сигналы для чего они и на какие пины подается на самой ардуино? что за нумерация у вас? на 4 пине ардуины земля!
Тут я с критикой. Да что-то получилось. Но что!? Алгоритм работы? Мой котёл не потерпит такого отношения к себе и покажет всю прелесть перегрева теплоносителя.
У нас много философов но ничего конкретного вы написали общие моменты которые написаны в книге любого фантаста хотелось бы конкретный список материалов а то в магазине можно накупить много всяких термопар и плат которые никогда совместно работать не будут а то что бензин горит если его поджечь любой идиот знает и даже обезьяна может написать поэму которую никто никогда не поймет
Можно по конкретней сколько вешать в граммах а то такое описание у меня на финскую горелку а она блин не хочет запускаться детали стоят десятки тысяч хотелось бы автоматику подешевле с ясными компонентами и алгоритмом работы а то у финнов если что сломалось обратитесь в сервисный центр и желательно для 220 в у меня там воздушный и топливный насос от 220в да и все датчики похоже
Нихуя не понял,но очень интересно... А если серьезно то все это фигнЯ если твоя автоматика не может запустить котел после остывания... А такую защиту как у тебя можно сляпать на простом фотоэлементе с релюшками ...Ну и от перегрева теплоносителя можно использовать датчик температуры радиатора классики или еще чего:-) но я так подозреваю ардуинка не зря...будешь делать полную автоматику ...жду. :-):-):-)желаю успеха.
Сначала защитная автоматика, затем автозапуск. Те, кто уже столкнулся с залитым маслом котлом, меня поймут. А вообще, идей много, буду постепенно реализовывать. Спасибо!
@@heatirradiation9539 да уж, заходишь в сарай а там наливные полы, черные, потолок отражается, красиво! А так же незабываемый вечер с ведрами тряпками и прочим таким
Можно конкретный список и конкретно где скачать программу как куда и что подсоединять и регулировать а то таких идиотов на просторах интернета миллион а потом в новостях показывают как целыми деревнями горят
Это самый распространенный вариант, но довольно сложно применим к бабингтону на крестовине. Электроды будут очень часто коксоваться. Поджиг будет газовый. Это как минимум стабильный старт и нет необходимости чистить электроды.
@@heatirradiation9539 если вывести электроды за пределы факела -то не сильно коксуются . Посмотрим.неделя -полет нормальный. До этого они два месяца жили в краю факела от китайской горелки. Ещё пара недель и отпишусь. Следующую горелку буду собирать уже в крестовин е, по вашему принципу. Вторая печка в кадре мелькает. Автоматику полностью аналоговую собрал. Ардуино только для контроля и аварийного отключения .
А по какой причине вы автоматику аналоговую сделали, а не на ардуино? В двух словах попробую описать суть проблемы: в баке заканчивается масло, вы доливаете холодное, тэн начинает его греть, и пока оно, так сказать, прохладное немного ухудшается распыл. На стабильность факела это не влияет. НО! На какое-то время по краям факела происходит недожог. И вот это явление коксует электроды вблизи факела. Это мои наблюдения. Решение проблемы следует искать в правильной конфигурации сопла/завихрителе/подачи вторичного воздуха. После сборки своей горелки с автозапуском и автоматикой я сделаю видео и про сопло.
/*
Пины:
2 - датчик температуры 18b20
3 - SO
4 - CS
5 - CLK/SCK
6 - кнопка, по умолчанию LOW, со стягивающим резистором
7 - светодиод режима работа
8 - светодиод термопары
9 - светодиод датчика температуры 18b20
10 - светодиод фоторезистора
11 - реле. In
А0 - фоторезистор
А1 - потенциометр термопары
А2 - потенциометр датчика температуры 18b20
А3 - потенциометр фоторезистора
*/
//датчик температуры 18b20. Все недостающие библиотеки скачать в интернете
#include
#include // библиотека для 18b20
OneWire oneWire(2); // вход датчика 18b20
DallasTemperature ds(&oneWire);
//------------------------------
//Термопара
#include "max6675.h"
int thermoDO = 3; // SO
int thermoCS = 4; //CS
int thermoCLK = 5; //SCK
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
//-------------------------
int thermoCouple = 0; // Переменная для хранения значений температуры с термопары
int valThermoCouple = 0; // Переменная для хранения значений потенциометра термопары
int PinThermoCoPot = A1; // пин, к которому подключен потенциометр термопары
int Temp = 0; // Переменная для хранения значений температуры датчика 18b20
int valTemp = 0; // Переменная для хранения значений потенциометра температуры
int PinTempPot = A2; // пин, к которому подключен потенциометр температуры
int brightness = 0; // ркость пламени. Чем ярче, тем меньше значение
int valPhotoRez = 0; // переменная потенциометра яркости
int PinPhotoRezPot = A3; // пин, к которому подключен потенциометр яркости
int PinPhotoRez = A0; // пин фоторезистора
int pinRelay = 11; // пин реле
//Аварийные значения. Прибавляются или отнимаются от текущего значения датчика
int alarmThermoCoupleMin = 30; // отключить реле припадении температуры на 30 градусов
int alarmThermoCoupleMax = 50; // при превышении температуры на 50
int alarmTemp = 5; // отключить реле при превышении температуры на 5 градусов. Учесть погрешность датчика при установке поверх трубы +5. Т.е. если в трубе 90, на датчике 85
int alarmBrightness = 60; // отключить реле при падении яркости на 60 единиц
//Диапазон оптимальных значений. Значение датчика +/- указанное число
int rangeThermoCo = 15; //термопара
int rangeTemp = 2; //температура
int rangeBrightness = 20; //яркость пламени
//Аварийные триггеры
bool BoolBrightness = false;
bool BoolTemp = false;
bool BoolThermoCo = false;
//Мигание светодиода
int ledState = LOW;
unsigned long previousMillis = 0;
unsigned long currentMillis;
//Таймер опроса датчика температуры
unsigned long previousMillisTemp = 0;
unsigned long currentMillisTemp;
//Режим работы кнопки
int regim = 0;
int flag;
//Аварийное мигание светодиода
int led;
bool blinker = true;
void setup() {
// Serial.begin(9600); // старт com-порта
ds.begin(); // 18b20
pinMode(6, INPUT); // кнопка
pinMode(7, OUTPUT); // светодиод переключателя режима
digitalWrite(7, LOW);
pinMode(8, OUTPUT); // светодиод термопары
digitalWrite(8, LOW);
pinMode(9, OUTPUT); // светодиод датчика температуры
digitalWrite(9, LOW);
pinMode(10, OUTPUT); // светодиод фоторезистора
digitalWrite(10, LOW);
pinMode(pinRelay, OUTPUT); //реле
digitalWrite(pinRelay, HIGH);
delay(500);
}
void loop() {
//Данные с датчиков и потенциометров
Temp = ds.getTempCByIndex(0); // температура котла
valTemp = analogRead(PinTempPot); // потенциометр температуры
brightness = analogRead(PinPhotoRez); // яркость пламени
valPhotoRez = analogRead(PinPhotoRezPot); // значение уровня яркости с потенциометра
thermoCouple = thermocouple.readCelsius(); // термопара
valThermoCouple = analogRead(PinThermoCoPot); // потенциометр термопары
currentMillisTemp = millis();
if (currentMillisTemp - previousMillisTemp >= 10000) { // раз в 10 секунд проверяем температуру котла
previousMillisTemp = currentMillisTemp;
ds.requestTemperatures(); // считываем температуру с датчика, на это требуется 750мс
/*
//Проверка через COM-порт
Serial.print("Temp: " );
Serial.print(Temp);
Serial.print("C");
Serial.print("; ");
Serial.print("valTemp:");
Serial.println(valTemp/10);
Serial.print("brightness: " );
Serial.print(brightness);
Serial.print("; ");
Serial.print("valPhotoRez:");
Serial.println(valPhotoRez);
Serial.print("thermocouple: " );
Serial.print(thermoCouple);
Serial.print("; ");
Serial.print("valThermocouple:");
Serial.println(valThermoCouple);
Serial.println(regim);
*/
}
//Настройка параметров. Если светодиод горит, значит параметр задан
//Параметры задаются в диапазоне, т.к. могут отклоняться от номиналов в связи с составом масла, его температурой, тягой дымохода и т.п.
if(BoolThermoCo == false){
if (thermoCouple = valThermoCouple - rangeThermoCo ) { // значение температуры на термопаре в диапазоне +/- 15 градусов
digitalWrite(8, HIGH);
}
else {
digitalWrite(8, LOW);
}
}
int DIVvalTemp = valTemp / 10; // 1024/10 = 100. возвращаемое значение 0..1024 / 10 = 0..100 настройка температуры до 100 градусов
if(BoolTemp == false){
if (Temp = DIVvalTemp - rangeTemp ) { // Например, 85
if(regim == 1){ // Режим старта. Принудительно включается реле для запуска горелки вручную
// При первом запуске задаются параметры потенциометров. При последующих запусках ждем, когда включатся светодиоды
currentMillis = millis();
if (currentMillis - previousMillis >= 100) { //светодиод мигает часто
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(7, ledState);
digitalWrite(pinRelay, LOW); // реле включено
}
}
if (regim == 2) { // Режим слежения. Если условия температуры и яркости соблюдены, то реле включено
digitalWrite(7,HIGH); // Светодиод горит постоянно
//В этом режиме реле включено только, если соблюдены все заданные условия для датчиков
if (thermoCouple >= valThermoCouple - alarmThermoCoupleMin && Temp DIVvalTemp + alarmTemp || BoolTemp == true ) {
digitalWrite(pinRelay, HIGH); //off
BoolTemp = true;
if(blinker == true)
led = 9;
}
if (brightness > valPhotoRez + alarmBrightness || BoolBrightness == true) {
digitalWrite(pinRelay, HIGH); //off
BoolBrightness = true;
if(blinker == true)
led = 10;
}
if (BoolTemp == true || BoolThermoCo == true || BoolBrightness == true ) { // аварийная мигалка
currentMillis = millis();
if (currentMillis - previousMillis >= 50) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(led, ledState);
}
blinker = false;
}
}
}
Получилось отлично. Спасибо за скетч. Думаю можно сделать дисплей, что было более информативно. Так же добавить автозапуск, нагрев масла,можно управлять заслонкой воздуха, термодатики воздуха. Поставить условия на макс и мин температуру воздуха и масла. Ну и еще много чего. Друзья все кто смотрит данный канал давайте вместе продвидим тему автора. Своими комментариями и предложениями
С меня подпись и лайк
Так же можно замутить GSM)))
Спасибо за отзыв! Дисплей добавить проблем нет, как в принципе и все остальное. Горелка по сути готова, осталась автоматика. Я работаю строителем, поэтому в разгар сезона на горелку нет времени. Но канал продолжает работу и осенью будут видео.
Здравствуйте.Хоть один человек нашелся который делиться своими достижением умением .Много коммерсантов развелось.Ладно я и купил бы если были цены адекватные .Ну да ладно про них .И вот вижу есть люди которые без всякой корысти выкладывает все .Именно для Вас желаю чтоб все было у Вас хорошо .Чтоб всегда делали добро людям.Чтоб твой канал процветал .Утри нос кммерсантам.Просьба будет время сделай автоматику информативней как Сергей пишет. Ну конечно по подробней как самомому повторить Ваше детище со всеми названиями деталей и ссылки где найти.Я думаю многие умеют паять и повторить подробным описанием и схемы сможет каждый.С меня лайк и подписка. Удачи и здоровья
@@АйтанБолатов-у1бкаждый контроллер должен писаться под свой котёл или печь. То что реализовал плюс автору. А по сути ? Не достаточно отключения маслоподачи. Контроль масло подачи, горения, температуры теплоносителя, подачи воздуха. Если есть аварийная ситуация где оповещение, хотяб зуммер. Сыро.
Отличная работа. Данная система контроля имеет очень широкий спектр использования.
Спасибо!
Понравилось, правда с горелкой как то не очень, может из алюминия отлить большую часть, на ютюбе море видео как отливать по формам
Можно попросить выложить скетч. Очень понравилось что в скетче подробные комментарии.
Как с вами связаться? Мне нужно, чтобы вы мне собрали автоматику для котла..
Хочу купить у вас контролер.
Для теплицы можно использовать?
а на продажу делаете
Здравствуйте, в вы делаете котлы на заказ
Сколько стоит?
3 - SO
4 - CS
5 - CLK/SCK
Решил заняться автоматикой, скопировал скетч в программу, проверку нажал, все ок но не понятно что это за сигналы для чего они и на какие пины подается на самой ардуино? что за нумерация у вас? на 4 пине ардуины земля!
А на заказ можете сделать автоматику?
Да, пишите на почту
@@heatirradiation9539 А адрес какой?
@@СергейГущин-ш9ь heatirradiation@gmail.com
Тут я с критикой. Да что-то получилось. Но что!? Алгоритм работы? Мой котёл не потерпит такого отношения к себе и покажет всю прелесть перегрева теплоносителя.
У нас много философов но ничего конкретного вы написали общие моменты которые написаны в книге любого фантаста хотелось бы конкретный список материалов а то в магазине можно накупить много всяких термопар и плат которые никогда совместно работать не будут а то что бензин горит если его поджечь любой идиот знает и даже обезьяна может написать поэму которую никто никогда не поймет
Нет режима старта
Можно по конкретней сколько вешать в граммах а то такое описание у меня на финскую горелку а она блин не хочет запускаться детали стоят десятки тысяч хотелось бы автоматику подешевле с ясными компонентами и алгоритмом работы а то у финнов если что сломалось обратитесь в сервисный центр и желательно для 220 в у меня там воздушный и топливный насос от 220в да и все датчики похоже
Нихуя не понял,но очень интересно...
А если серьезно то все это фигнЯ если твоя автоматика не может запустить котел после остывания...
А такую защиту как у тебя можно сляпать на простом фотоэлементе с релюшками ...Ну и от перегрева теплоносителя можно использовать датчик температуры радиатора классики или еще чего:-)
но я так подозреваю ардуинка не зря...будешь делать полную автоматику ...жду. :-):-):-)желаю успеха.
Сначала защитная автоматика, затем автозапуск. Те, кто уже столкнулся с залитым маслом котлом, меня поймут. А вообще, идей много, буду постепенно реализовывать. Спасибо!
@@heatirradiation9539 да уж, заходишь в сарай а там наливные полы, черные, потолок отражается, красиво! А так же незабываемый вечер с ведрами тряпками и прочим таким
Можно конкретный список и конкретно где скачать программу как куда и что подсоединять и регулировать а то таких идиотов на просторах интернета миллион а потом в новостях показывают как целыми деревнями горят
а как же розжиг????
photos.app.goo.gl/RRqLV58KLizAdKUw8
photos.app.goo.gl/2FL4pKYBoFo1ubi16
Будет и розжиг, но, как говорится, от простого к сложному. В итоге горелка будет полностью автоматическая.
@@heatirradiation9539 катушка,коммутатор, проводка и одно реле в качестве генератора импульса ...
Это самый распространенный вариант, но довольно сложно применим к бабингтону на крестовине. Электроды будут очень часто коксоваться. Поджиг будет газовый. Это как минимум стабильный старт и нет необходимости чистить электроды.
@@heatirradiation9539 если вывести электроды за пределы факела -то не сильно коксуются .
Посмотрим.неделя -полет нормальный.
До этого они два месяца жили в краю факела от китайской горелки.
Ещё пара недель и отпишусь.
Следующую горелку буду собирать уже в крестовин е, по вашему принципу.
Вторая печка в кадре мелькает.
Автоматику полностью аналоговую собрал.
Ардуино только для контроля и аварийного отключения .
А по какой причине вы автоматику аналоговую сделали, а не на ардуино?
В двух словах попробую описать суть проблемы: в баке заканчивается масло, вы доливаете холодное, тэн начинает его греть, и пока оно, так сказать, прохладное немного ухудшается распыл. На стабильность факела это не влияет. НО! На какое-то время по краям факела происходит недожог. И вот это явление коксует электроды вблизи факела. Это мои наблюдения. Решение проблемы следует искать в правильной конфигурации сопла/завихрителе/подачи вторичного воздуха. После сборки своей горелки с автозапуском и автоматикой я сделаю видео и про сопло.