Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=================================================================
- // INIT
- //=================================================================
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x27, 16,2); //
- const int LED_RED=10;
- const int LED_GREEN=11;
- const int RELAY=12;
- //buttons for up and down
- const int up_key=3;
- const int down_key=2;
- int SetPoint=28;
- int heater = 0;
- unsigned long previousMillis = 0;
- const long interval = 300000; // 5 minutes
- //=================================================================
- // SETUP
- //=================================================================
- void setup(){
- Serial.begin(9600);
- //Serial.print("boot \n");
- pinMode(LED_RED,OUTPUT);
- pinMode(LED_GREEN,OUTPUT);
- pinMode(RELAY,OUTPUT);
- pinMode(up_key,INPUT);
- pinMode(down_key,INPUT);
- digitalWrite(up_key,HIGH);
- digitalWrite(down_key,HIGH);
- lcd.init();
- lcd.backlight();
- digitalWrite(LED_GREEN,HIGH); //Green LED Off
- digitalWrite(LED_RED,LOW); //Red LED On
- digitalWrite(RELAY,LOW); //Turn off Relay
- delay(2000);
- lcd.clear();
- //add special char °
- byte Celsius[8] = {B11100,B10100,B11100,B0000,B00000,B00000,B00000,B00000};
- lcd.createChar(0, Celsius);
- }
- //=================================================================
- // LOOP
- //=================================================================
- void loop(){
- double Temperature = ((5.0/1024.0) * analogRead(A0)) * 10;
- lcd.setCursor(0,0);
- lcd.print("T. IST: ");
- //Serial.print("T. IST: ");
- //Serial.print(Temperature);
- //Serial.print('\n');
- lcd.print(Temperature, 0);
- lcd.write((uint8_t)0);
- //Serial.print(" C");
- lcd.print("C");
- //key input
- if(digitalRead(down_key)==LOW)
- {
- if(SetPoint>0)
- {
- SetPoint--;
- }
- }
- if(digitalRead(up_key)==LOW)
- {
- if(SetPoint<150)
- {
- SetPoint++;
- }
- }
- //Display Set point on LCD
- lcd.setCursor(0,1);
- lcd.print("T. SOLL: ");
- //Serial.print("T. SOLL: ");
- lcd.print(SetPoint);
- //Serial.print(SetPoint);
- lcd.write((uint8_t)0);
- //Serial.print(" C");
- lcd.print("C");
- //Check Temperature is in limit
- unsigned long currentMillis = millis();
- if (currentMillis - previousMillis >= interval) {
- previousMillis = currentMillis;
- if(Temperature > SetPoint)
- {
- digitalWrite(RELAY,LOW); //Turn off heater
- digitalWrite(LED_RED,LOW);
- digitalWrite(LED_GREEN,HIGH); //Turn on Green LED
- Serial.print("Turn off heater \n");
- }
- else
- {
- digitalWrite(RELAY,HIGH); //Turn on heater
- digitalWrite(LED_GREEN,LOW);
- digitalWrite(LED_RED,HIGH); //Turn on RED LED
- Serial.print("Turn on heater \n");
- }
- }
- delay(100); //Update at every 100mSeconds
- }
- //=================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement