Étape 4: programmation
1 - définir les broches, notamment le laboratoire. et le mappage du clavier comme ci-dessous:-
#include
#include
#include
DHT DHT ;
int h, t, dh dt ;
int v ;
Innovente lcd(7,6,5,4,3,2) ;
#define DHT11_PIN 9
const byte rangs = 4 ; quatre rangées
const byte COLS = 4 ; quatre colonnes
touches de char [lignes] [colonnes] = {}
{A «, » C «, » B', « A »},
{'#','9','6','3'},
{'0', « 8 », '5', » 2'},
{'*','7','4','1'}
};
rowPins Byte [rangs] = {22,24,26,28} ; se connecter à la ligne de brochage du clavier
colPins Byte [CDL] = {30,32,34,36} ; se connecter à la liste des broches colonne du clavier
Clavier clavier = clavier (makeKeymap(keys), rowPins, colPins, lignes, colonnes) ;
2 - Lancez le LCD et définissez le temps prise pour clavier comme ci-dessous :
LCD.Begin(16,2) ;
keypad.setHoldTime(250) ;
pinMode(A0,OUTPUT) ;
pinMode(A3,OUTPUT) ;
digitalWrite(A0,1) ;
digitalWrite(A1,1) ;
Remarque pour nous fournir de courant appropriée et sauver notre arduino, nous utilisons la sortie comme sortie numérique analogique
3 - Entrez la température et de convertir les caract. au paramètre int. pour comparer avec la valeur réelle de prendre décision
peut donner actionneur l’ordre de travailler.
LCD.Clear() ;
lcd.setCursor(0,0) ;
LCD.Print ("Enter Temp") ;
pour (int i = 0; i < 2; i ++) {}
char de key1 = keypad.waitForKey() ;
commutateur (key1) {}
case « 0 »: si (j’ai == 0) dt = 0; if (j’ai == 1) dt = (dt * 10 + 0); break ;
affaire « 1 »: si (j’ai == 0) dt = 1; if (i == 1) dt = (dt * 10 + 1); break ;
affaire « 2 »: si (j’ai == 0) dt = 2; if (j’ai == 1) dt = (dt * 10 + 2); break ;
affaire « 3 »: si (j’ai == 0) dt = 3; if (j’ai == 1) dt = (dt * 10 + 3); break ;
affaire « 4 »: si (j’ai == 0) dt = 4; if (j’ai == 1) dt = (dt * 10 + 4); break ;
cas « 5 »: si (j’ai == 0) dt = 5; if (j’ai == 1) dt = (dt * 10 + 5); break ;
affaire « 6 »: si (j’ai == 0) dt = 6; if (j’ai == 1) dt = (dt * 10 + 6); break ;
affaire « 7 »: si (j’ai == 0) dt = 7; if (j’ai == 1) dt = (dt * 10 + 7); break ;
affaire « 8 »: si (j’ai == 0) dt = 8; if (j’ai == 1) dt = (dt * 10 + 8); break ;
affaire « 9 »: si (j’ai == 0) dt = 9; if (j’ai == 1) dt = (dt * 10 + 9); break ;
}
LCD.Clear() ;
lcd.setCursor(0,0) ;
LCD.Print("Temp=") ;
lcd.setCursor(7+i,0) ;
LCD.Print(DT) ;
}
4 - maintenant lire les paramètres du capteur et comparer entre le réelle et le désir de prendre la décision à fin
t=DHT.Temperature ;
h=DHT.Humidity ;
commencer 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 ("Temp D =") ;
lcd.setCursor(7,0) ;
LCD.Print(DT) ;
lcd.setCursor(10,0) ;
LCD.Print("C") ;
lcd.setCursor(0,1) ;
LCD.Print ("Temp C =") ;
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 ("s’il vous plaît Press") ;
lcd.setCursor(0,1) ;
LCD.Print ("C au changement") ;
Delay(1000) ;
}