Paso 4: programación
1 - definir los pines, incluye el laboratorio. y el teclado como abajo:-
#include
#include
#include
DHT DHT;
int h, dh, t, dt;
int v;
LiquidCrystal lcd(7,6,5,4,3,2);
#define DHT11_PIN 9
const filas bytes = 4; cuatro filas
byte const COLS = 4; cuatro columnas
teclas de Char [filas] [COLS] = {}
{HABÍA ',' C ',' B', 'A'},
{'#','9','6','3'},
{'0', '8', '5',' 2'},
{'*','7','4','1'}
};
byte rowPins [filas] = {22,24,26,28}; conectar a las conexiones de la fila del teclado
byte colPins [COLS] = {30,32,34,36}; conectar a las conexiones de la columna del teclado
Teclado teclado = teclado (makeKeymap(keys), rowPins colPins, filas, COLS);
2 - iniciar la pantalla LCD y establecer tiempo de espera para teclado como abajo:
LCD.Begin(16,2);
keypad.setHoldTime(250);
pinMode(A0,OUTPUT);
pinMode(A3,OUTPUT);
digitalWrite(A0,1);
digitalWrite(A1,1);
Nota que utilizamos la analógica de salida como salida digital nos proporciona la corriente adecuada y guardar nuestro arduino
3 - Introduzca la temperatura y convertir los caracteres a parámetro int. para comparar con el valor real para tomar decisión
a actuador una orden de trabajo.
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("Enter Temp");
para (int i = 0; i < 2; i ++) {}
char la clave1 = keypad.waitForKey();
interruptor (clave1) {}
caso '0': Si (i == 0) dt = 0; si (i == 1) dt = (dt * 10 + 0); break;
caso '1': Si (i == 0) dt = 1; if (== 1) dt = (dt * 10 + 1); break;
'2' del caso: Si (i == 0) dt = 2; if (== 1) dt = (dt * 10 + 2); break;
'3' del caso: Si (i == 0) dt = 3; if (== 1) dt = (dt * 10 + 3); break;
'4' del caso: Si (i == 0) dt = 4; Si (i == 1) dt = (dt * 10 + 4); break;
'5' del caso: Si (i == 0) dt = 5; si (i == 1) dt = (dt * 10 + 5); break;
'6' del caso: Si (i == 0) dt = 6; Si (i == 1) dt = (dt * 10 + 6); break;
'7' del caso: Si (i == 0) dt = 7; si (i == 1) dt = (dt * 10 + 7); break;
'8' del caso: Si (i == 0) dt = 8; si (i == 1) dt = (dt * 10 + 8); break;
'9' del caso: Si (i == 0) dt = 9; if (i == 1) dt = (dt * 10 + 9); break;
}
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print("Temp=");
lcd.setCursor(7+i,0);
LCD.Print(DT);
}
4 - leer los parámetros del sensor y comparar entre real y deseo de tomar la decisión final
t=DHT.temperature;
h=DHT.Humidity;
Inicio 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 ("Humi D =");
lcd.setCursor(7,0);
LCD.Print(DH);
lcd.setCursor(11,0);
LCD.Print("%");
lcd.setCursor(0,1);
LCD.Print ("Humi C =");
lcd.setCursor(7,1);
LCD.Print(h);
lcd.setCursor(12,1);
LCD.Print("%");
Delay(1500);
LCD.Clear();
lcd.setCursor(0,0);
LCD.Print ("por favor presionar");
lcd.setCursor(0,1);
LCD.Print ("C a cambio");
Delay(1000);
}