//Homer Mejia
//0321200600555
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Servo compuerta;
// LEDs
int ledVerde = 7;
int ledAmarillo = 9;
int ledRojo = 10;
int buzzer = 6;
int servoPin = 13;
// Teclado 4x4
const byte FILAS = 4;
const byte COLUMNAS = 4;
char teclas[FILAS][COLUMNAS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinesFilas[FILAS] = {A0, A1, A2, A3};
byte pinesColumnas[COLUMNAS] = {A4, A5, 0, 1};
Keypad teclado = Keypad(
makeKeymap(teclas),
pinesFilas,
pinesColumnas,
FILAS,
COLUMNAS
);
void apagarTodo() {
digitalWrite(ledVerde, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledRojo, LOW);
noTone(buzzer);
compuerta.write(0);
}
void setup() {
lcd.begin(16, 2);
pinMode(ledVerde, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(buzzer, OUTPUT);
compuerta.attach(servoPin);
compuerta.write(0);
lcd.print("Seleccione:");
lcd.setCursor(0,1);
lcd.print("1-4");
}
void loop() {
char tecla = teclado.getKey();
if(tecla){
apagarTodo();
lcd.clear();
switch(tecla){
case '1':
digitalWrite(ledVerde, HIGH);
lcd.setCursor(0,0);
lcd.print("NORMAL");
lcd.setCursor(0,1);
lcd.print("0-25 C");
break;
case '2':
digitalWrite(ledAmarillo, HIGH);
lcd.setCursor(0,0);
lcd.print("PRECAUCION");
lcd.setCursor(0,1);
lcd.print("26-35 C");
break;
case '3':
digitalWrite(ledRojo, HIGH);
tone(buzzer, 1000);
lcd.setCursor(0,0);
lcd.print("ALERTA");
lcd.setCursor(0,1);
lcd.print("36-45 C");
delay(1000);
noTone(buzzer);
break;
case '4':
digitalWrite(ledRojo, HIGH);
tone(buzzer, 1000);
compuerta.write(90);
lcd.setCursor(0,0);
lcd.print("EMERGENCIA");
lcd.setCursor(0,1);
lcd.print(">45 C");
break;
}
}
}