Vous êtes sur la page 1sur 11

#include <LiquidCrystal_I2C.

h>

#include <Keypad.h>; // reconozca el teclado

#include <Servo.h>;

//=============DETECTOR DE FUEGO===========================

int buzzer = 7; // selecciona el pin para el zumbador

int valorSensor = 0; // variable para almacenar el valor proveniente del sensor

//================DETECTOR DE GAS==========================

const int MQ_PIN = 3;

const int MQ_DELAY = 100;

int gas = 12;

//==============SENSOR DE MOVIMIENTO=============================

int led = 8 ;

int sensor = 24 ;

//==============CONTRASEÑA LED==========================
int x = 3;

int Led = 11;

Servo myservo;

char contrasena[] = "1014"; // En esta linea creamos la contraseña (el numero ** puede ser cambiado)

char codigo[4]; // Creamos otra constante, teclado matricial 4x4

char f = '*';

LiquidCrystal_I2C lcd(0x27, 16, 2);

int cont = 0; // Esta es una variable que nos servirá más adelante

int pos = 0;

const byte ROWS = 4; //Este código estable 4 filas

const byte COLS = 4; //Este código estable 4 columnas

char hexaKeys[ROWS][COLS] = //orden las teclas que posee nuestro teclado

{'1', '2', '3', 'A'},

{'4', '5', '6', 'B'},

{'7', '8', '9', 'C'},

{'*', '0', '#', 'D'}


};

byte rowPins[ROWS] = {47, 45, 43, 41}; //Conectar a la fila de pines del teclado.

byte colPins[COLS] = {39, 37, 35, 33}; //Conectar a la columna pinouts del teclado.

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //En este punto el teclado se inicia

void setup()

//==============CONTRASEÑA LED==========================

pinMode(11, OUTPUT);

pinMode(5, OUTPUT);

myservo.attach(2);

lcd.init(); //inicializa el lcd

lcd.backlight(); //abre la luz de fondo

lcd.clear();

lcd.setCursor(0, 0);

//lcd.print("BIENVENIDO");
//=============DETECTOR DE FUEGO===========================

// declarar buzzer como una SALIDA:

pinMode(buzzer, OUTPUT);

//================DETECTOR DE GAS==========================

pinMode(gas, OUTPUT);

//==============SENSOR DE MOVIMIENTO=========================

pinMode( 8 , OUTPUT) ;

pinMode (sensor , INPUT);

void loop()

//=========================================================
// leer el valor del sensor:

valorSensor = analogRead(A0);

Serial.println(valorSensor);

// activa el buzzer

if (valorSensor < 500){

digitalWrite(buzzer, LOW);

delay(500);

// Desactiva el buzzer

digitalWrite(buzzer, HIGH);

delay(500);

//=========================================================

lcd.setCursor(0, 0);

lcd.print("CLAVE");

char customKey = customKeypad.getKey(); //aqui guarda se guardara en la variable customKey

if (customKey != NO_KEY) //Con este siclo preguntamos si se presiono una tecla, si se presiono entonces el ciclo continua

codigo[cont] = customKey; //se guardaran en codigo[cont]


delay (500);

Serial.print(codigo[cont]); //Se imprime EL codigo[cont]

lcd.setCursor (cont + 5, 1);

lcd.print(codigo[cont]), lcd.setCursor(cont + 5, 1), lcd.print(f); // imprime los numeros guradados en el lcd

cont = cont + 1; //incrementamos la variable cont

if (cont == 4) //Ahora comienza otro siclo if,

if (codigo[0] == contrasena[0] && codigo[1] == contrasena[1] && codigo[2] == contrasena[2] && codigo[3] == contrasena[3])

Serial.println("clave correcta"); //si la contraseña es correcta entonces se imprime

lcd.clear();

lcd.print("CORRECTO");

delay(3000);

lcd.clear();

for (pos = 174; pos >= 0; pos -= 1)

{
myservo.write(pos);

lcd.clear();

delay(15);

digitalWrite(11, HIGH);

// delay(1000);

//lcd.print("abierto");

// delay(500);

for (int i = 0; i <= x; i++)

lcd.print("abierto"); //se espera 3 segundos

lcd.setCursor(0, 15); //Indicamos en que espacio de la pantalla lcd estara ubicado algun texto

lcd.print(i);
lcd.print(" ");

delay(1000);

lcd.clear();

}//se limpia la pantalla lcd

for (pos = 0; pos <= 174; pos += 1)

myservo.write(pos);

delay(15);

digitalWrite(11, LOW);

digitalWrite(5, LOW);

lcd.print("Cerrado");

delay(3000);
lcd.clear();

else //empieza un nuevo ciclo,si el código es diferente que la contraseña siga con el siclo

Serial.println("contraseña incorrecta"); // se imprime que que la Password es incorrecta

lcd.clear();

lcd.print("INCORRECTO");

delay(3000);

lcd.clear();

//==============SENSOR DE MOVIMIENTO=========================

if (digitalRead( sensor))
digitalWrite( 8 , HIGH);

else

digitalWrite( 8 , LOW);

//================DETECTOR DE GAS==========================

bool state= digitalRead(MQ_PIN);

if (!state)

Serial.println("Deteccion");

digitalWrite(12,HIGH);

else

Serial.println("No detectado");

digitalWrite(12,LOW);

delay(MQ_DELAY);
}

Vous aimerez peut-être aussi