Está en la página 1de 15

Tecnológico Nacional de México

Campus Querétaro
 

Reporte Semáforo de temperatura

 
Que presentan:

Sandoval Frías David


Benítez Gonzales Edgar
Rangel Arredondo Daniel
García García Alfonso

 
Estudiantes de la carrera:
Ingeniera en Electrónica

Docente
Armando Mora Campos

Fecha:

12/12/2022

1
Contenido
1.- ANTECEDENTES:...........................................................................................................3
2.- OBJETIVO........................................................................................................................3
3.-COMPETENCIAS A DESARROLLAR............................................................................3
4.MARCO TEÓRICO.............................................................................................................4
4.1.- Teclado matricial 4x4.................................................................................................4
4.1.1.- Pantalla LCD...........................................................................................................4
4.2.- Buzzer Activo.............................................................................................................4
4.3 Relevador......................................................................................................................4
5-. EQUIPO Y MATERIALES..............................................................................................5
6.- PROCEDIMIENTO...........................................................................................................5
6.1.- Código de Arduino.....................................................................................................5
6.2.- Diagrama esquematico..............................................................................................14
7.- RESULTADOS...............................................................................................................15

2
1.- ANTECEDENTES:

Para la práctica se realizara un sistema de seguridad con ciertas características especificas


solicitadas por la profesora, como un sistema de ingreso, de alarma, de bloqueo y
desbloqueo en caso de intruso, etc.

2.- OBJETIVO

El objetivo de esta practica será el experimentar con procesos de control de ingreso, ya sea
por contraseña con un teclado matricial 4x4 u algún hardware para ingresar clave, y
pantalla lcd para mostrar dicho proceso, también se contara con 2 leds (Abierto y Cerrado),
y se usara Arduino para la misma.

3.-COMPETENCIAS A DESARROLLAR.

Especifica:
Realiza programas de control que permitan monitorear señales de entrada.
Aplicar un sistema de seguridad.
Generar señales de visualización del proceso de control.
Genéricas:
Capacidad de generar nuevas ideas (creatividad).
Capacidad de aplicar los conocimientos en la práctica.
Capacidad de trabajar en equipo Interdisciplinario y multidisciplinario.
Destrezas tecnológicas relacionadas con el uso de maquinaria, destrezas de
computación; así como, de búsqueda y manejo de información.

3
4.MARCO TEÓRICO.

4.1.- Teclado matricial 4x4


El Teclado matricial de botones plásticos formado por 4 filas y 4 columnas para un total de
16 teclas permite agregar una entrada de usuario a tus proyectos. El teclado es de tipo
membrana, por lo que entre sus ventajas se encuentra el poco espacio que requiere para ser
instalado. Posee una cubierta adhesiva y un cable flexible de conexión.

4.1.1.- Pantalla LCD

Este display tiene un tamaño de 16×2 que hace referencia a que la pantalla cuenta con 2


filas y cada fila tiene la capacidad de mostrar 16 caracteres o símbolos, por lo general
alfanuméricos, los cuales se pueden definir desde programación utilizando un
microcontrolador o tarjeta de desarrollo

4.2.- Buzzer Activo

Los buzzer activos son dispositivos que generan un sonido de una frecuencia


determinada y fija cuando son conectados a tensión. Mientras que los pasivos pueden
variar dicha frecuencia.

4.3 Relevador

Cuando estamos desarrollando nuestros “inventos” a menudo sentimos la necesidad de


poder encender y apagar aparatos eléctricos de nuestro entorno. Por ejemplo, imaginemos
que queremos bajar o subir las persianas utilizando un motor eléctrico, necesitaríamos
activar o desactivar dicho motor, que habitualmente funciona a 220V. También podríamos
querer hacer que nuestra lámpara nocturna fuera de verdad una lámpara y poder encender y
pagar la lámpara de nuestra mesilla.
Para poder realizar esto necesitaríamos un interruptor que pudiéramos activar y desactivar
desde nuestra placa Zum. Pues bien, ese interruptor se llama relé.

4
5-. EQUIPO Y MATERIALES

Fuente de alimentación.
Arduino.
Leds.
Resistencias.
Buzzer.
Pantalla LCD
Protoboard.

6.- PROCEDIMIENTO

a) Programar la lógica de operación del sistema de control de Arduino y realizar las


conexiones en la protoboard como en la simulación para comprobar su funcionamiento.

6.1.- Código de Arduino


#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,20,4);

#include <Servo.h>
#include <Keypad.h>

//Variables
int mot_min = 90; //min servo angle (set
yours)
int mot_max = 180; //Max servo angle (set
yours)
int character = 0;
int activated =0;

5
char Str[16] = {' ', ' ', ' ', ' ', ' ', '
', '-', '*', '*', '*', ' ', ' ', ' ', ' ', '
', ' '};

//Pins
Servo myservo;
int buzzer=11; //pin for the buzzer beep
int external = 12; //pin to inside open
int internal = 13; //pin to inside close

//Keypad config
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the
keypads
char hexaKeys[ROWS][COLS] = {
{'1','4','7','*'},
{'2','5','8','0'},
{'3','6','9','#'},
{'A','B','C','D'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect
to the row pinouts of the keypad
byte colPins[COLS] = {9, 8, 7, 6}; //connect
to the column pinouts of the keypad

//initialize an instance of class NewKeypad


Keypad customKeypad =
Keypad( makeKeymap(hexaKeys), rowPins,
colPins, ROWS, COLS);

6
void setup(){
myservo.attach(10); //attach the servo to
pin D10
pinMode(buzzer,OUTPUT);
pinMode(external,INPUT);
pinMode(internal,INPUT);
//Init the screen and print the first text
lcd.init();
lcd.backlight();
lcd.clear();
lcd.print(" PASSWORD");
lcd.setCursor(0,1);
lcd.print(" -*** ");
//put the servo in the close position
first
myservo.write(mot_min);

void loop(){
///////////////EMERGENCY OPEN/CLOSE/////////
if (digitalRead(external))
{
myservo.write(mot_max);
lcd.clear();
lcd.setCursor(2,0);
lcd.print("INSIDE OPEN");
activated = 2;
analogWrite(buzzer,240);
delay(250);
analogWrite(buzzer,200);

7
delay(250);
analogWrite(buzzer,180);
delay(250);
analogWrite(buzzer,250);
delay(250);
analogWrite(buzzer,LOW);

lcd.clear();
lcd.setCursor(4,0);
lcd.print("WELLCOME");

lcd.setCursor(2,1);
lcd.print("ELECTRONOOBS");

lcd.clear();
lcd.setCursor(3,0);
lcd.print("DOOR OPEN");
lcd.setCursor(2,1);
lcd.print("ELECTRONOOBS");
delay(500);

if (digitalRead(internal))
{
myservo.write(mot_min);
activated = 0;
character=0;
Str[6]= '-';

8
Str[7]= '*';
Str[8]= '*';
Str[9]= '*';
Str[10]= ' ';
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PASSWORD");
lcd.setCursor(0,1);
lcd.print(Str);
}

///////////////KEYPAD OPEN/CLOSE////////////
char customKey = customKeypad.getKey();
//this function reads the presed key

if (customKey){

if (character ==0)
{
Serial.println(customKey);
Str[6]= customKey;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PASSWORD");
lcd.setCursor(0,1);
lcd.print(Str);

if (character ==1)
{

9
Serial.println(customKey);
Str[7]= customKey;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PASSWORD");
lcd.setCursor(0,1);
lcd.print(Str);

if (character ==2)
{
Serial.println(customKey);
Str[8]= customKey;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PASSWORD");
lcd.setCursor(0,1);
lcd.print(Str);

if (character ==3)
{
Serial.println(customKey);
Str[9]= customKey;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PASSWORD");
lcd.setCursor(0,1);
lcd.print(Str);

10
}

if (character ==4)
{
Serial.println(customKey);
Str[10]= customKey;
activated=1;

}
character=character+1;
}

if (activated == 1)
{
/*Change your password below!!!
Change each of Str[6], Str[7], Str[8],
Str[9]*/

if(Str[10]='A' && character==5 &&


Str[6]=='3' && Str[7]=='0' && Str[8]=='0' &&
Str[9]=='7' )
{
myservo.write(mot_max);
lcd.clear();
lcd.setCursor(4,0);
lcd.print("ACCEPTED");
activated = 2;
analogWrite(buzzer,240);
delay(250);
analogWrite(buzzer,200);

11
delay(250);
analogWrite(buzzer,180);
delay(250);
analogWrite(buzzer,250);
delay(250);
analogWrite(buzzer,LOW);
delay(1000);

lcd.clear();
lcd.setCursor(4,0);
lcd.print("WELLCOME");
delay(500);
lcd.setCursor(2,1);
lcd.print("ELECTRONOOBS");
delay(1000);

lcd.clear();
lcd.setCursor(3,0);
lcd.print("DOOR OPEN");
lcd.setCursor(2,1);
lcd.print("ELECTRONOOBS");

}
else
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("PASSWORD ERROR");
lcd.setCursor(3,1);
lcd.print("TRY AGAIN");
analogWrite(buzzer,150);

12
delay(3000);
analogWrite(buzzer,LOW);
character=0;
Str[6]= '-';
Str[7]= '*';
Str[8]= '*';
Str[9]= '*';
Str[10]= ' ';
activated = 0;
lcd.clear();
lcd.setCursor(4,0);
lcd.print("PASSWORD");
lcd.setCursor(0,1);
lcd.print(Str);
}
}
if (activated == 2)
{
if(customKey == 'B' )
{
myservo.write(mot_min);
activated = 0;
character=0;
Str[6]= '-';
Str[7]= '*';
Str[8]= '*';
Str[9]= '*';
Str[10]= ' ';
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" PASSWORD");

13
lcd.setCursor(0,1);
lcd.print(Str);

}
}
}

6.2.- Diagrama esquematico.

14
7.- RESULTADOS

Funciones correctas de acuerdo a lo solicitado.

15

También podría gustarte