Smart växthusgaser (4 / 4 steg)
Steg 4: programmering
1 - definiera stiften, inkluderar labbet. , och mappning av knappsatsen enligt nedan:-
#include
#include
#include
DHT DHT;
int h, t, dh, dt;
int v.
LiquidCrystal lcd(7,6,5,4,3,2);
#define DHT11_PIN 9
CONST byte rader = 4; fyra rader
CONST byte COLS = 4; fyra kolumner
char nycklar [rader] [COLS] = {
{HADE ',' C ',' B', 'A'},
{'#','9','6','3'},
{'0', '8', '5',' 2'},
{'*','7','4','1'}
};
byte rowPins [rader] = {22,24,26,28}. ansluta till rad Stifttilldelningar för knappsatsen
byte colPins [COLS] = {30,32,34,36}. ansluta till kolumn Stifttilldelningar för knappsatsen
Tangentbordet knappsatsen = knappsatsen (makeKeymap(keys), rowPins, colPins, rader, kolumner);
2 - starta LCD och ange tid hålla för knappsatsen enligt nedan:
LCD.BEGIN(16,2);
keypad.setHoldTime(250);
pinMode(A0,OUTPUT);
pinMode(A3,OUTPUT);
digitalWrite(A0,1);
digitalWrite(A1,1);
Observera vi använder analog som digital utgång att förse oss med lämplig nuvarande och spara våra arduino
3 - Ange temperaturen och konvertera tecken till int. parameter för jämför med faktiska värde att fatta beslut
att ge ställdon en order att arbeta.
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("retur Temp");
för (int jag = 0; jag < 2; i ++) {
char Nyckel1 = keypad.waitForKey();
Växla (Nyckel1) {
ärende '0': om (jag == 0) dt = 0; om (jag == 1) dt = (dt * 10 + 0), bryta;
ärende '1': om (jag == 0) dt = 1; om (jag == 1) dt = (dt * 10 + 1), bryta;
ärende '2': om (jag == 0) dt = 2; om (jag == 1) dt = (dt * 10 + 2), bryta;
ärende '3': om (jag == 0) dt = 3; om (jag == 1) dt = (dt * 10 + 3), bryta;
ärende '4': om (jag == 0) dt = 4; om (jag == 1) dt = (dt * 10 + 4), bryta;
ärende '5': om (jag == 0) dt = 5; om (jag == 1) dt = (dt * 10 + 5), bryta;
ärende '6': om (jag == 0) dt = 6; om (jag == 1) dt = (dt * 10 + 6), bryta;
ärende '7': om (jag == 0) dt = 7; om (jag == 1) dt = (dt * 10 + 7), bryta;
ärende '8': om (jag == 0) dt = 8; om (jag == 1) dt = (dt * 10 + 8), bryta;
ärende '9': om (jag == 0) dt = 9; om (jag == 1) dt = (dt * 10 + 9), bryta;
}
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print("Temp=");
lcd.setCursor(7+i,0);
LCD.Print(DT);
}
4 - nu läsa parametern från sensorn och jämföra mellan faktiska och lust att göra beslut på slutet
t=DHT.temperature;
h=DHT.humidity;
Starta comparter
IF(t < DT) {
digitalWrite(A3,0);
digitalWrite(A0,1);
}
IF(t > DT) {
digitalWrite(A0,0);
digitalWrite(A3,1);
}
IF(t == DT) {
digitalWrite(A0,1);
digitalWrite(A3,1);
}
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("D Temp =");
lcd.setCursor(7,0);
LCD.Print(DT);
lcd.setCursor(10,0);
LCD.Print("C");
lcd.setCursor(0,1);
LCD.Print ("C Temp =");
lcd.setCursor(7,1);
LCD.Print(t);
lcd.setCursor(12,1);
LCD.Print("C");
Delay(1500);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("D Humi =");
lcd.setCursor(7,0);
LCD.Print(DH);
lcd.setCursor(11,0);
LCD.Print("%");
lcd.setCursor(0,1);
LCD.Print ("C Humi =");
lcd.setCursor(7,1);
LCD.Print(h);
lcd.setCursor(12,1);
LCD.Print("%");
Delay(1500);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("Vänligen tryck på");
lcd.setCursor(0,1);
LCD.Print ("C till förändring").
Delay(1000);
}