Stap 4: programmeren
1 - definiëren van de pinnen, omvatten het lab. , en in kaart brengen van het toetsenbord zoals hieronder:-
#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 rijen = 4; vier rijen
Const byte COLS = 4; vier kolommen
char toetsen [ROWS] [COLS] = {}
{HAD ',' C ',' B', 'A'},
{'#','9','6','3'},
{'0', '8', '5',' 2'},
{'*','7','4','1'}
};
byte rowPins [ROWS] = {22,24,26,28}; verbinding maken met de pinouts rij van het toetsenbord
byte colPins [COLS] = {30,32,34,36}; verbinding maken met de kolom pinouts van het klavier
Toetsenbord toetsenbord toetsenbord = (makeKeymap(keys), rowPins, colPins, rijen, COLS);
2 - start van het LCD-scherm en tijd vasthouden voor toetsenbord instellen zoals hieronder:
LCD.begin(16,2);
keypad.setHoldTime(250);
pinMode(A0,OUTPUT);
pinMode(A3,OUTPUT);
digitalWrite(A0,1);
digitalWrite(A1,1);
Opmerking dat we de analoge uitgang als digitale uitgang gebruiken om ons te voorzien van geschikt huidige en opslaan van onze arduino
3 - Voer de temperatuur en de char. omzetten in int. parameter voor vergelijken met de werkelijke waarde om besluit
te geven actuator een om te kunnen werken.
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("Enter Temp");
for (int i = 0; ik < 2; i ++) {}
char key1 = keypad.waitForKey();
schakelaar (key1) {}
kast '0': als (ik == 0) dt = 0; als (ik == 1) dt = (dt * 10 + 0); break;
kast '1': als (ik == 0) dt = 1; als (ik == 1) dt = (dt * 10 + 1); break;
kast '2': als (ik == 0) dt = 2; als (ik == 1) dt = (dt * 10 + 2); break;
kast '3': als (ik == 0) dt = 3; als (ik == 1) dt = (dt * 10 + 3); break;
kast '4': als (ik == 0) dt = 4; als (ik == 1) dt = (dt * 10 + 4); break;
kast '5': als (ik == 0) dt = 5; als (ik == 1) dt = (dt * 10 + 5); break;
kast '6': als (ik == 0) dt = 6; als (ik == 1) dt = (dt * 10 + 6); break;
kast '7': als (ik == 0) dt = 7; als (ik == 1) dt = (dt * 10 + 7); break;
kast '8': als (ik == 0) dt = 8; als (ik == 1) dt = (dt * 10 + 8); break;
kast '9': als (ik == 0) dt = 9; als (ik == 1) dt = (dt * 10 + 9); break;
}
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print("temp=");
lcd.setCursor(7+i,0);
LCD.Print(DT);
}
4 - nu de parameter lezen van sensor en vergelijken tussen werkelijke en verlangen om te beslissen aan einde
t=DHT.temperature;
h=DHT.humidity;
Start 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 ("Please Press");
lcd.setCursor(0,1);
LCD.Print ("C tot verandering");
delay(1000);
}