Arduino projekt #2 (3 / 4 steg)
Steg 3: Koden
Nedan följer koden krävs för att programmera denna termostat:
Du kan kopiera denna kod till en Arduino program och det bör fungera bra:
int cel;
int långt;
char låt;
booleska cf;
int desC;
int desF;
int inputDes;
int härda;
int changeTime = 2;
float spänning;
#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup() {
LCD.BEGIN (16, 2);
pinMode (8, ingående);
pinMode (9, OUTPUT);
}
void loop() {
spänning = getVoltage(0); initieringar
desC = (getVoltage(5) / 10) * 100;
desF = Far(desC) + 20.
inputDes = (analogRead(5) / 20.5);
cel = (spänning - 0,5) * 100;
långt = ((cel * 9) / 5) + 32;
lcd.setCursor (0, 0); LCD-kod
LCD.Print("temperature:");
lcd.setCursor (13, 0);
LCD.Print(temp);
lcd.setCursor (15, 0);
LCD.Print(Let); Displayen
lcd.setCursor (0, 1);
LCD.Print("desired:");
lcd.setCursor(9,1);
om (cf == true) {
LCD.Print(desF);
lcd.setCursor(11,1);
} annat {
LCD.Print(desC);
lcd.setCursor(11,1);
om (desC < 10) {
LCD.Print("");
lcd.setCursor(10,1);
}
}
LCD.Print(Let);
om (cf) {//Temp växla
Låt = "F";
Temp = långt;
} annat {
Låt = 'C';
Temp = cel;
}
om (cel > desC) {
digitalWrite 8, hög.
} annat {
digitalWrite (8, 0);
}
changeTime--;
om (analogRead(4) > 1000 & & changeTime < 0) {//temp toggle input
CF =! cf;
changeTime = 2;
}
Delay(150);
}
flyta fjärran (float en) {//farenheit omvandling
flyta b = (en * (9 / 5)) + 32;
returnera b;
}
flyta getVoltage (float en) {
flyta b = (analogRead(a) * 0.004882814);
returnera b;
}