Arduino LCD termostat! (2 / 4 steg)
Steg 2: Koden
Så koden:Skrivet av Dylon Jamna (mig!)
inkludera bibliotek-koden
#include < EEPROM.h >
#include < LiquidCrystal.h > / / inkluderar bibliotek-koden
int tempPin = A0; göra variabler / / termistor är på A0
int ledde = 13. LED är på pin
float härda; göra en variabel med namnet temp
float settemp; göra en variabel med namnet temp
int swtu = 7. växla upp är på pin 7
int swtd = 6; Växla ner är på stift 6
LiquidCrystal lcd (12, 11, 5, 4, 3, 2); LCD är på 12,11,5,4,3,2
void setup() {
pinMode (led, 1). göra led eller pin13 en utgång
Serial.BEGIN (9600); ställa in följetong skärmen tx och rx speed
LCD.BEGIN (16, 2); ställa in alla "block" i displayen
lcd.setCursor(0,0); ställa markören till colum 0 raden 0
LCD.Print ("hello, world!"); Visa Hej världen för 1 sekund
LCD.Clear(); tydlig lcd
EEPROM.read (1). göra det eeprom eller atmega328 minnesadressen 1
}
void loop() {
int tvalue = analogRead(tempPin); göra tvalue vad vi läst på tempPin
float temp = (tvalue / 6.388888888889); matematik / konvertering till temp-
lcd.setCursor (0,0); ställa markören till 0,0
LCD.Print (temp); Skriv ut aktuell temp i f
LCD.Print 'F'.
Serial.println (temp); skriva ut temp den följetongen övervaka
settemp = EEPROM.read(1); Läs settemp på eeprom
fördröjning (250); vänta på LCD-skärmen att uppdatera varje 250 millisekunder
om / / om vi se växeln upp stiftet läsning på 1 eller 5 volt
(digitalRead(swtu) == 1)
{
settemp ++ / / Lägg till ett till settemp, settemp är en idealisk temperatur för dig
;
}
annat {/ / andra kloka gör ingenting
}
om
(digitalRead (swtd) == 1) / / om vi upptäcker en 1 på den andra växeln pin
{
(settemp)--;// subtrahera en fromm settemp
}
annat {
annars, gör ingenting
}
om (temp > settemp) / / om temperaturen överstiger din valda settemp
{
digitalWrite (led, 1). slå på led
}
annat / / om det inte sker, då stänga led av
{
digitalWrite (led, 0);
}
lcd.setCursor (0,1); Ställ markören på 0,1
LCD.Print ("in till"); Skriv ut inställd och din idealisk temperatur i f
LCD.Print (settemp);
LCD.Print 'F'.
Serial.println(settemp); Skriva ut settemp i den seriella montior
EEPROM.write (1, settemp); / * skriva de senaste settemp i eeprom data stoage
så att om strömmen kopplas bort, du settemp sparas! * /
fördröjning (250); vänta 250 millisekunder
} / / Vi är klara