Stap 4: Programmeren uw thermostaat!
Nu komen we bij onze thermostaat code. Toegankelijk opwaarts naar de Arduino App (als je dit niet hebt, het is gratis! Download het hier: https://www.arduino.cc/en/Main/Software)
I 'm gonna de postcode en de foto's gebruiken om te verklaren wat er gebeurt helemaal de stadia.
#include
dubbele refV;
dubbele tL = 25;
dubbele tH = tL + 1;
Const int button6 = 6; deze knop brengt temp
Const int button7 = 7; deze knop brengt temp naar beneden
Const int button8 = 8;
int speakerPin = 10;
int numTones = 5;
int tonen [] = {261 294, 330, 370, 415};
int button6state = 0;
int button7state = 0;
int button8state = 0;
LiquidCrystal lcd(12,11,5,4,3,2);
VOID Setup
{
pinMode (button6, INPUT);
pinMode (button7, INPUT);
pinMode (button8, INPUT);
pinMode (10, OUTPUT);
pinMode(13,OUTPUT);
LCD.begin(16,2);
lcd.setCursor(0,0);
LCD.Print(tL);
LCD.Print ("to");
LCD.Print(th);
analogReference(DEFAULT);
refV = 5;
pinMode(13,OUTPUT);
Serial.begin(9600);
Serial.Print ("tL is:");
Serial.Print("\t");
Serial.println(tL);
Serial.Print ("tH is:");
Serial.Print("\t");
Serial.println(th);
Serial.Print("temp(C)");
Serial.Print("\t");
Serial.println("status");
Serial.println("___");
Serial.println ("het begin van de gegevens:");
}
void loop
{
int acc = 0;
int N = 10;
for (int i = 0; ik < N; i ++) {}
ACC += analogRead(0); delay(10);
}
Dubbel voltage = refV*acc/1023./(double(N));
dubbele tempC = (spanning) * 100.;
lcd.setCursor(0,1);
LCD.Print(tempC);
button6state = digitalRead(button6); code voor de knop 6
Als (button6state == HIGH)
{
tL = tL + 0,5;
tH = tH + 0,5;
lcd.setCursor(0,0);
LCD.Print(tL);
LCD.Print ("to");
LCD.Print(th);
for (int i = 0; ik < numTones; i ++)
{
Toon (speakerPin, tones[4]);
delay(30)
}
noTone(speakerPin);
}
if(th > 55)
{
for (int i = 0; ik < numTones; i ++)
{
Toon (speakerPin, tones[0]);
delay(100);
}
noTone(speakerPin);
tH = 55;
tL = 54;
for (int i = 0; ik < 3; i ++)
{lcd.setCursor(9,0);
LCD.Print("")
delay(300)
lcd.setCursor(9,0);
LCD.Print(th);
delay(300);
}
if(tL < 20)
{
for (int i = 0; ik < numTones; i ++)
{
Toon (speakerPin, tones[2]);
delay(100);
}
noTone(speakerPin);
tH = 21;
tL = 20;
for (int i = 0; ik < 3; i ++)
{
lcd.setCursor(0,0);
LCD.Print("");
delay(300);
lcd.setCursor(0,0);
LCD.Print(tL);
delay(300);
}
}
Als (tempC < tL)
{
digitalWrite(13,HIGH)
}
if(digitalRead(13)==High)
{
Serial.Print(tempC);
Serial.Print("\t");
Serial.println("1");
}
delay(50);
}