/*
Gemaakt door Madelaino, 14/02/2025
In school
*/
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
int SetpointTemp; //Maak variable SetpointTemp
int Sensor; //Maak variable Sensor
int error; //Maak variable error
int hysteresis; //maak variable hysteresis
void setup() { //Programma die een keer herhaald wordt.
pinMode(2, OUTPUT); //Zet digitale pin 2 als Output
Serial.begin(9600); //Begin de seriele monitor met 9600 snelheid
Serial.println("Temperatuur Controller"); //Print Temperatuur Controller op seriele monitor
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Gewenste waarde:");
lcd.setCursor(0, 2);
lcd.print("Gemeten waarde:");
}
void loop() { //Programma die oneindig door gaat
SetpointTemp=analogRead(A0); //Zet waarde van variable SetpointTemp als waarde van analoge pin A0
Sensor=analogRead(A1)/30;
hysteresis=analogRead(A2)/511; //Zet waarde van variable Sensor als waarde van analoge pin A1
Serial.print("Gewenste waarde:");
Serial.print(SetpointTemp);
lcd.setCursor(0, 1);
lcd.print(SetpointTemp);
Serial.print(" "); //Zet lege lijn op seriele monitor
Serial.print("Gemeten waarde");
Serial.println(Sensor); //Print Waarde van variable Sensor in seriele monitor
lcd.setCursor(0, 4);
lcd.print(Sensor);
error= SetpointTemp-Sensor; //Zet waarde error als waarde van SetpointTemp-Sensor
if(error>0) //Als waarde error groter dan null
{
digitalWrite(2, HIGH); //Zet digitale pin 2 op Hoog
}
else //Anders
{
digitalWrite(2, LOW); //Zet digitale pin 2 op laag
}
delay(1000);
}