Arduino Polska Forum
Wielokanałowy sterownik pieca gazowego. - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: "Projekt Arduino Polska" (https://forum.arduinopolska.pl/dzial-projekt-arduino-polska)
+--- Dział: Arduino dla domu (https://forum.arduinopolska.pl/dzial-arduino-dla-domu)
+--- Wątek: Wielokanałowy sterownik pieca gazowego. (/watek-wielokana%C5%82owy-sterownik-pieca-gazowego)



Wielokanałowy sterownik pieca gazowego. - zamber - 15-01-2017

Witam
Z kilku dostępnych w sieci projektów "ulepiłem" sobie wielokanałowy sterownik pieca gazowego.
Krótki opis działania: w dwóch (na razie) pokojach umieszczone będą czujniki DS18b20 i na grzejnikach lub przy rozdzielaczu zamontowane elektrozawory. W przypadku spadku temperatury poniżej zadanej, załączany jest przekaźnik sterujący danym grzejnikiem i po ustalonym czasie załączany piec. Program działa jak należy, ale nie wiem co dopisać do kodu, żebym dostępnymi 2 przyciskami p1/p2 (+/- zadana temp) mógł ustawiać oddzielnie temperaturę T1 i T2 (oddzielnie dla pokoi). Domyślam się, że trzeba dołożyć chociaż jeden dodatkowy przycisk "setup" którym będę wybierał "pokój" ale co dopisać do kodu ... nie mam bladego pojęcia. Na razie ustawiana jest tylko T1. 
No i kwestia histerezy. Co i gdzie dopisać, żeby przekaźnik był załączany przy T, a wyłączany przy T+h?
Arduino mam od tygodniaSmile więc proszę o wyrozumiałość. Z góry dziękuję za pomoc. 
Kod:
#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>

int p1 = 7; // przycisk  zwiekszajacy nastawe temperatury T1
int p2 = 6; // przycisk zmniejszajacy nastawe temperatury T1
int p1state = 0;
int p2state = 0;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define ONE_WIRE_BUS A0

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int nastaw1 = 22; // zadana temperatura T1
int nastaw2 = 23; // zadana temperatura T2
int przekaznik1 = 8;  // pin przekaznik elektrozaworu z czujnika T1
int przekaznik2 = 9;  // pin przekaznik elektrozaworu z czujnika T2
int przekaznik3 = 10; // pin przekaznik pieca


 
void setup(void)


{
pinMode(przekaznik1,OUTPUT);
pinMode(przekaznik2,OUTPUT);
pinMode(przekaznik3,OUTPUT);

pinMode (7, INPUT_PULLUP); // przycisk zwiekszajacy nastawe temperatury
pinMode (6, INPUT_PULLUP); // przycisk zmniejszajacy nastawe temperatury

 lcd.begin(16, 2);
 sensors.begin();
 Serial.begin(9600);
}

void wys(void){
sensors.requestTemperatures();
lcd.setCursor(0, 0);
lcd.print("T1=");
lcd.print(sensors.getTempCByIndex(0));
lcd.print("  ");
lcd.print("NT1=");
lcd.print(nastaw1);
lcd.setCursor(0, 1);
lcd.print("T2=");
lcd.print(sensors.getTempCByIndex(1));
lcd.print("  ");
lcd.print("NT2=");
lcd.print(nastaw2);

if (sensors.getTempCByIndex(0) < (nastaw1)) {
     digitalWrite(8,HIGH);
  } else {
     digitalWrite(8,LOW);
  }

 if (sensors.getTempCByIndex(1) < (nastaw2)) {
     digitalWrite(9,HIGH);
  } else {
     digitalWrite(9,LOW);
  }

 
}
void loop(void)  
{
p1state = digitalRead(p1);
p2state = digitalRead(p2);
 if(p1state == LOW){nastaw1=nastaw1+1;}
 if(p2state == LOW){nastaw1=nastaw1-1;}
 wys();
 
 if (digitalRead(8) == HIGH || digitalRead(9) == HIGH) {  //
     delay(3000);
     digitalWrite(10, HIGH);
 }      
     else {
     digitalWrite(10, LOW);
     }

       
     
 
}



RE: Wielokanałowy sterownik pieca gazowego. - krn78 - 23-01-2017

Nie zagłębiając się w kod, histerezę możesz załatwić dzięki sprawdzeniu, czy przekaźnik jest załączony, czy nie. Jeśli tak, to wyłącz go przy T+h, natomiast jeśli nie, to włącz go przy T.


RE: Wielokanałowy sterownik pieca gazowego. - zamber - 24-01-2017

(23-01-2017, 14:06)krn78 napisał(a): Nie zagłębiając się w kod, histerezę możesz załatwić dzięki sprawdzeniu, czy przekaźnik jest załączony, czy nie. Jeśli tak, to wyłącz go przy T+h, natomiast jeśli nie, to włącz go przy T.

Witam
Tak ustawiłem, działa jak należy. 
Kod:
  if (sensors.getTempCByIndex(0) < (nastaw1))
     { digitalWrite(8,HIGH); }
 
  if (sensors.getTempCByIndex(0) > (nastaw1+1)) // histereza
     { digitalWrite(8,LOW); }  
}



RE: Wielokanałowy sterownik pieca gazowego. - krn78 - 26-01-2017

Co do dodatkowego przycisku, możesz za jego pomocą ustawiać dodatkową zmienną, która decyduje, którym pokojem sterujesz. To tak samo, jak z tą histerezą, sprawdzasz dodatkowy warunek i tyle.