#include <LiquidCrystal_I2C.h>
#include <Stepper.h>
const int stepsPerRevolution = 50;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
const float BETA = 3950;
LiquidCrystal_I2C lcd(0x27,20,4);
int power = 1;
int pwr = 0;
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Temperatura:");
lcd.setCursor(0,2);
lcd.print("10");
lcd.setCursor(18,2);
lcd.print("50");
pinMode(LED_BUILTIN, OUTPUT);
lcd.setCursor(7,2);
lcd.print("Inchis ");
myStepper.setSpeed(90);
}
void Motor(int sens)
{
pwr=0;
if(sens==1)
{while(pwr<=19)
{
lcd.setCursor(7,2);
lcd.print("Inchis ");
digitalWrite(LED_BUILTIN, HIGH);
myStepper.step(-stepsPerRevolution);
lcd.setCursor(19-pwr,3);
lcd.print(" ");
pwr++;
}}
else
{while(pwr<=19)
{
lcd.setCursor(7,2);
lcd.print("Deschis ");
digitalWrite(LED_BUILTIN, HIGH);
myStepper.step(stepsPerRevolution);
lcd.setCursor(pwr,3);
lcd.print("X");
pwr++;
}}
digitalWrite(LED_BUILTIN, LOW);
}
void automat()
{
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
if (celsius > 40)
{
if (power == 1)
pwr = 1;
power = 9;}
else if (celsius <28)
{
if (power == 9)
pwr = 1;
power = 1;}
if (power == 1 && pwr == 1){
Motor(1);
pwr = 0;
}
else if (power == 9 && pwr == 1){
Motor(0);
pwr = 0;
}
delay(500);
}
void temp(){
int analogValue = analogRead(A0);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
lcd.setCursor(13,0);
lcd.print(celsius);
lcd.setCursor(0,1);
if(celsius>=10 && celsius<=11)
lcd.print("| ");
else if(celsius>=12 && celsius<=13)
lcd.print("|| ");
else if(celsius>=14 && celsius<=15)
lcd.print("||| ");
else if(celsius>=16 && celsius<=17)
lcd.print("|||| ");
else if(celsius>=18 && celsius<=19)
lcd.print("||||| ");
else if(celsius>=20 && celsius<=21)
lcd.print("|||||| ");
else if(celsius>=22 && celsius<=23)
lcd.print("||||||| ");
else if(celsius>=24 && celsius<=25)
lcd.print("|||||||| ");
else if(celsius>=26 && celsius<=27)
lcd.print("||||||||| ");
else if(celsius>=28 && celsius<=29)
lcd.print("|||||||||| ");
else if(celsius>=30 && celsius<=31)
lcd.print("||||||||||| ");
else if(celsius>=32 && celsius<=33)
lcd.print("|||||||||||| ");
else if(celsius>=34 && celsius<=35)
lcd.print("||||||||||||| ");
else if(celsius>=36 && celsius<=37)
lcd.print("|||||||||||||| ");
else if(celsius>=38 && celsius<=39)
lcd.print("||||||||||||||| ");
else if(celsius>=40 && celsius<=41)
lcd.print("|||||||||||||||| ");
else if(celsius>=42 && celsius<=43)
lcd.print("||||||||||||||||| ");
else if(celsius>=44 && celsius<=45)
lcd.print("|||||||||||||||||| ");
else if(celsius>=46 && celsius<=47)
lcd.print("||||||||||||||||||| ");
else if(celsius>=48 && celsius<=49)
lcd.print("||||||||||||||||||||");
}
void loop()
{
temp();
automat();
}