IMPLEMENTACION DE UNA SEGUNDA PLACA DE ARDUINO
jeanpierre12360Tarea23 de Noviembre de 2020
697 Palabras (3 Páginas)119 Visitas
1. IMPLEMENTACION DE UNA SEGUNDA PLACA DE ARDUINO
En esta parte se implemento una segunda placa de Arduino que nos facilitara el uso de mas sensores y actuadores. Además, se implementó un sensor ultrasónico , dos protoboard, una pantalla LCD, un sensor de gas y un potenciómetro, adicionales.
1.1. Código del primer Arduino:
#include <LiquidCrystal.h> #include <Keypad.h> LiquidCrystal lcd(13,12,5,4,3,2);
int frec=700; //potencia en HZ del buzzer
int lectura=0; //variable para la lectura del sensor de movimiento const byte ROWS = 4;
const byte COLS = 4; char tecla;
int teclasIngresadas=0, intentos=0, intentosR=5; char* contrasena="3422";
int x=0;
int estado = 0; int estadoOff =0;
int sensorState = 0; int hPin = A3 ;
int tPin = A4 ; char Grados = 'º'; int pin8 = 6;
int sensor = A5;
int sensorValue = 0;
//int cm = 0;
boolean alarmaActivada;
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {11,10,9,1}; byte colPins[COLS] = {0,A0,A1,A2};
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){ pinMode(hPin, INPUT);
pinMode(tPin, INPUT); pinMode(8,OUTPUT); //buzzer pinMode(7,INPUT); //sensor pinMode(6,OUTPUT); //buzzer
Serial.begin(9600);
lcd.begin(16, 2); //iniciar LCD con 16 caracteres en dos líneas
}
void loop(){
//sensor de humo
sensorValue = analogRead(sensor); Serial.println(sensorValue, DEC);
//sensores de temperatura y humedad int lt = analogRead(tPin);
float Temp = lt * 0.488285; int lh = analogRead(hPin); int humedad = lh ; lcd.setCursor(10,0); lcd.print("Tem"); lcd.setCursor(14,0); lcd.print("Hum"); lcd.setCursor(10,1); lcd.print(Temp); lcd.setCursor(14,1); lcd.print(humedad); lectura=digitalRead(7);
//Lectura lcd
if (lectura==HIGH && intentos!=5){ //si detecta movimiento lcd.setCursor(0,0); //pararse en la primera línea del display lcd.print("ALERTA"); //mensaje a imprimir en LCD lcd.setCursor(0,1); //pararse en la segunda línea del display lcd.print("CONTRASENA"); //mensaje a imprimir en LCD tone(8, frec); //buzzing
//digitalWrite(6, HIGH);
x=0;//esta línea nos permite tan solo ingresar CONTRASEÑA cuando el sensor deja de detectar movimiento.
alarmaActivada=true;
}
tecla=customKeypad.getKey(); //obtiene digitos desde keypad
if(tecla){
teclasIngresadas++;
}
if(tecla==contrasena[x]){ //si coincide digito a digito
x++; //aumentamos x: cuantas veces coincide el pin con los digitos que ingresa el usuario (de menor a mayor)
lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,12);
lcd.print("PASE "); noTone(8); delay(5000);
lcd.setCursor(0,0); //pararse en la primera línea del display lcd.print("CERRADO"); //mensaje a imprimir en LCD lcd.setCursor(0,1); //pararse en la segunda línea del display lcd.print("SEGURIDAD"); //mensaje a imprimir en LCD
}
if (x==4 || alarmaActivada==false) {//coinciden los 4 digitos digitalWrite(6, LOW); //dejar apagado led externo
noTone(8); //dejar apagado buzzer
lcd.setCursor(0,0); //pararse en la primera línea del display lcd.print("CERRADO "); //mensaje a imprimir en LCD lcd.setCursor(0,1); //pararse en la segunda línea del display lcd.print("SEGURIDAD"); //mensaje a imprimir en LCD alarmaActivada=false;
...