Проект отопительного котла.

nezza_profi
Offline
Зарегистрирован: 26.08.2016

Вообщем получилось примерно так. результатом в принцепе доволен. Огромное спасибо еще раз вам yul-i-an. Очень помогли.

/*
 Контролер самодельного газового котла V0.4
 */
boolean f_fire = 0;         //флаг наличия пламени (0-отсутствует, 1-присутствует)
boolean f_vent = 0;         //флаг продувки (0-не продут, 1-продут)
boolean f_work = 0;         //Флаг работы котла
boolean f_dav=0;            //Флаг наличия давления
boolean f_gas=0;            //Флаг давления
boolean f_water=0;          //Флаг наличия воды
#define sensePin 0          //Фотодатчик контроля пламени.
#define button 4            //Кнопка розжига
#define vent_time 3000      //Время продувки
#define zad_is 500	    //Время задержки искры
#define davgaz  5	    //канал давления газа
#define davvoda  6	    //канал давления воды
void setup() {
  // Объявление всех каналов.
  for (byte i=4; i <= 12; i++){
    pinMode(i, OUTPUT);
    digitalWrite(i,LOW);

  }
  digitalWrite(13, HIGH);//Запускаем вытяжной вентилятор
  analogReference(DEFAULT);  //Стандартное значение аналогово входа.
}//end setup

void loop() {
  //Индикатор готовности
  digitalWrite(12, f_vent);//зависит от продувки

  //Продуваем котел если не продут
  if (f_vent==0){//Если котел не продут
    delay(vent_time);// Время продувки
    f_vent=1;//Котел продут
  }
  f_gas=digitalRead(davgaz);//опрос давления газа
  f_water=digitalRead(davvoda);//опрос давления воды
  
    //Проверка Давления
  if(f_gas==0 || f_water==0){//если нет давление газа или воды.
  digitalWrite(9, LOW);//закрываем клапан основной горелки 
  f_vent=0;//Котел продут
   f_dav=1;//флаг давления вне нормы
  }
  else
  {
    f_dav=0;//давление в норме
  }
  digitalWrite(7, f_dav);//управление сигнализацией давления
  
  //Управление розжигом
  if(f_vent==1 && f_fire==0){//если котел продут но нет пламени
    if(digitalRead(button)==1){
      flame_ctrl(1);//включаем факел
    }
  }

  //Проверяем наличие пламени
  f_fire=fire_ctrl();

  if (f_fire==1 && f_work==0){//если обнаружено пламя горелки и котел не разожон
    digitalWrite(9, HIGH);//открываем клапан основной горелки
    delay (zad_is);//Задержка перед отключением факела.
    flame_ctrl(0);//выключаем факел
    f_work=1;//Котел запущен
  }
  

  
  //Проверка на затухание котла
  if(f_work==1 && f_fire==0){//если котел работал но потух
    digitalWrite(9, LOW);//закрываем клапан основной горелки
    f_work=0;//котел не в работе
    f_vent=0;//котел не продут
    f_dav=0;
  }

}//end loop

//Фун-я проверки наличия пламени
boolean fire_ctrl(){
  if (analogRead (sensePin) < 800){//если горит пламя факела
    return 1;//Пламя есть
  }
  else
  {
    return 0;//Пламени нет
  }
}

//Фун-я управления факелом
void flame_ctrl(boolean stat){
  digitalWrite(11,stat);     // Подача искры
  digitalWrite(10,stat);     // Клапан газа факела
}

 

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Теперь видео и фото в студию:)

nezza_profi
Offline
Зарегистрирован: 26.08.2016

yul-i-an пишет:

Теперь видео и фото в студию:)

скоро будет)) ваш труд не зря пройдет. скоро все как готово будет все сразу выложу.