Laten we een relay toevoegen

Ik kon dus de temperatuur uitlezen, joepie! nu moest ik dus nog een relais kunnen controleren met de temperatuur…

Wanneer moet die nu aanspringen?

Een thermostaat werkt met een temperatuur die je zelf instelt. Als je huis kouder word dan die temperatuur zal die aanspringen en als die er over gaat uitspringen. Het zou wel een beetje zot zijn moest dat gewoon zo werken. Want dan zou de verwarming veel aan en uit springen.

Dus niet aan/uit springen voor het minste?

Dat willen we dus niet. Hoe lossen wij dat dan op? Als we nu een beetje meer verwarmen dan de gewenste temperatuur, en pas laten aanspringen als de temperatuur een beetje onder de gewenste temperatuur zakt. Omdat ik nog niet zo goed weet hoe ik die marges moet nemen, neem ik voor nu een halve graad meer en minder.

De code

#define RELAY1 7
#define TEMPSENS 0

int onoff = 0;
float wishtemp = 20.5;
double temp;

void setup(){
  Serial.begin(9600);
  pinMode(RELAY1, OUTPUT);
}

void loop() {
  temp = getTemp();

  if(temp>(wishtemp+0.5)){
  onoff = 1;
  } else if (temp<(wishtemp-0.5)){
  onoff = 0;
  }

  Serial.println(temp);
  digitalWrite(RELAY1,onoff);
  delay(1000);
}

double getTemp() {
  int reading = analogRead(TEMPSENS);
  double voltage = reading * 5.0 / 1024.0;
  double temperature = (voltage - 0.5) / 0.0195 ;
  return temperature;
}

 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *