Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA:
PROFESOR:
ALUMNO:
CURSO:
MICROCONTROLADORES
2022
TITULO
Funcionamiento de un Arduino:
FUNCIONAMIENTO:
Esta unidad de control será la encargada de comparar la clave introducida por el usuario
con la estipulada por defecto, permitiendo visualizar “CLAVE CORRECTA” O “CLAVE
INCORRECTA” en nuestro dispositivo móvil.
Para la programación del Arduino, se utilizará el propio programa que cuenta Arduino, el
cual trabaja con un lenguaje c, ahí se irá desarrollando las líneas del código, utilizando
las diferentes librerías para que nuestro proyecto funcione de manera correcta a lo que se
plantea.
DIAGRAMA DE BLOQUES DEL PROYECTO
INICIO
DECLARAR LIBRERIAS
Y VARIABLES
IMPRIMIR BIENVENIDA
IMPRIMIR CONTRASEÑA
INCORRECTA COMPARAR CONTRASEÑA
NO
¿CONTRASEÑA
ES CORRERECTA?
SI
IMPRIMIR CONTRASEÑA
ES CORRECTA EN CELULAR
INGRESAR A MENU DE
ACCESO DE ENTRADA
ACCEDER AL COMANDO DE
ACCESO DE ENTRADA ABIERTO
INGRESA VEHÍCULO
ACCEDER AL COMANDO DE
ACCESO DE ENTRADA CERRADO
FIN
DISPOSITIVOS DE PROTEUS PARA SIMULACION DEL
CIRCUITO DEL PROYECTO
El teclado matricial 4x4 está formado por una matriz de pulsadores dispuestos en filas
(L1, L2, L3, L4) y columnas (C1, C2, C3, C4), con la intención de reducir el número de
pines necesarios para su conexión. Las 16 teclas necesitan sólo 8 pines del
microcontrolador en lugar de los 16 pines que se requerirían para la conexión de 16 teclas
independientes.
Arduino UNO
Características:
El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en
especial pequeños motores y cargas inductivas, con la capacidad de controlar corriente
hasta 600 mA en cada circuito y una tensión entre 4,5 V a 36 V.
El integrado permite formar, entonces, dos puentes H completos, con los que se puede
realizar el manejo de dos motores. En este caso el manejo será bidireccional, con frenado
rápido y con posibilidad de implementar fácilmente el control de velocidad.
Motor DC :
El motor de corriente continua (motor DC) es una máquina que convierte la energía
eléctrica en mecánica, provocando un movimiento rotatorio. En algunas modificaciones,
ejercen tracción sobre un riel. Estos motores se conocen como motores lineales. Una
máquina de corriente continua (generador o motor) se compone principalmente de dos
partes, un estator que da soporte mecánico al aparato y tiene un hueco en el centro
generalmente de forma cilíndrica. El rotor es generalmente de forma cilíndrica, también
devanado y con núcleo, al que llega la corriente mediante dos escobillas.
Pantalla LCD de 16x2
1. Ingreso de clave
3. Pantalla LCD
L a pantalla LCD de 16x2, sirve para visualizar los mensajes que se deben imprimir en el
desarrollo del funcionamiento, cuando se ingresa la clave y se compara con la
programada, sirve para que el usuario observe la posición que debe tomar cuando ingresa
al estacionamiento y por último se podrá observar la cantidad de vehículos que ingresan.
4. Mecanismo de acceso a entrada
Portón corredizo
Posiciones interiores del estacionamiento
INICIO
DECLARAR LIBRERIAS
Y VARIABLES
IMPRIMIR BIENVENIDA
IMPRIMIR CONTRASEÑA
INCORRECTA COMPARAR CONTRASEÑA
NO
¿CONTRASEÑA
ES CORRERECTA?
SI
IMPRIMIR CONTRASEÑA
ES CORRECTA EN CELULAR
INGRESAR A MENU DE
ACCESO DE ENTRADA
ACCEDER AL COMANDO DE
ACCESO DE ENTRADA ABIERTO
INGRESA VEHICULO
ACCEDER AL COMANDO DE
ACCESO DE ENTRADA CERRADO
FIN
INICIO
MOSTRAR INGRESE
CLAVE EN CELULAR
SI ¿CONTRASEÑA NO
ES CORRECTA?
MOSTRAR EN
PANTALLA DE
CONTADOR PANTALLA DE CONECCIÓN
CELULAR
i=i+1 MENU ABIERTA BLUETOOTH
“CONTRASEÑA ES
INCORRECTA”
ACCIONAR ABRIR CONECTAR
IMPRIMIR NÚMERO DE MECANISMO DE ENTRADA
POSICIÓN “i” DE VEHÍCULO
DESCONECTAR
Y
ACCIONAR CERRAR
MECANISMO DE ENTRADA
CONTADOR
J=J+1
IMPRIMIR INGRESO DE
VEHÍCULO NUMERO “J”
ESTACIONAMIENTO
COMPLETO
5 SEGUNDOS
FIN
PROGRAMACION EN IDE DE ARDUINO
#include <LiquidCrystal.h>
#include <Keypad.h>
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE");
lcd.setCursor(0, 1);
}
void loop() {
char key = keypad.getKey();
if (key) {
Password[dir] = key;
lcd.print('*');
dir = dir + 1;
if (dir == 4)
{
if(Password[0] == '7' && Password[1] == '3' && Password[2] == '7' &&
Password[3] == '7')
{
lcd.setCursor(0, 0);
lcd.print("CLAVE CORRECTA ");
lcd.setCursor(0, 1);
lcd.print("ADELANTE......");
j++;
delay(1000);
if(j==1){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-1 ");
delay(1000);
}
if(j==2){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-2 ");
delay(1000);
}
if(j==3){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-3 ");
delay(1000);
}
if(j==4){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-4 ");
delay(1000);
}
if(j==5){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-5 ");
delay(1000);
}
if(j==6){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-6 ");
delay(1000);
}
if(j==7){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-7 ");
delay(1000);
}
if(j==8){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-8 ");
delay(1000);
}
if(j==9){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-9 ");
delay(1000);
}
if(j==10){
lcd.setCursor(0, 0);
lcd.print("OCUPE POSICION");
lcd.setCursor(0, 1);
lcd.print(" P-10 ");
j=0;
delay(1000);
}
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, HIGH);
delay(3000);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ABIERTO SOLO POR");
lcd.setCursor(0, 1);
lcd.print("10 SEGUNDOS ");
digitalWrite(11, HIGH);
delay(10000);
digitalWrite(11, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CERRANDO EN ");
lcd.setCursor(0, 1);
lcd.print("5 SEGUNDOS...!!");
delay(5000);
digitalWrite(8, HIGH);
digitalWrite(MotorPin1, HIGH);
digitalWrite(MotorPin2, LOW);
delay(3000);
digitalWrite(MotorPin1, LOW);
digitalWrite(MotorPin2, LOW);
digitalWrite(8, LOW);
k++;
if(k==1){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-1 ");
delay(1000);
}
if(k==2){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-2 ");
delay(1000);
}
if(k==3){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-3 ");
delay(1000);
}
if(k==4){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-4 ");
delay(1000);
}
if(k==5){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-5 ");
delay(1000);
}
if(k==6){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-6 ");
delay(1000);
}
if(k==7){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-7 ");
delay(1000);
}
if(k==8){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-8 ");
delay(1000);
}
if(k==9){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-9 ");
delay(1000);
}
if(k==10){
lcd.setCursor(0, 0);
lcd.print("INGRESO VEHICULO");
lcd.setCursor(0, 1);
lcd.print(" V-10 ");
delay(1000);
lcd.setCursor(0, 0);
lcd.print("ESTACIONAMIENTTO");
lcd.setCursor(0, 1);
lcd.print(" COMPLETO!! :) ");
delay(500000);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE ");
dir = 0;
}else {
lcd.setCursor(0, 0);
lcd.print("CLAVE INCORRECTA");
i++;
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO ");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE ");
dir = 0;
}
lcd.setCursor(0, 1);
if(i ==3 )
{
lcd.setCursor(0, 0);
lcd.print("SISTEMA BLOQUEADO");
lcd.setCursor(0, 1);
lcd.print("POR 15 SEGUNDOS");
i=0;
digitalWrite(12, HIGH);
delay(15000);
digitalWrite(12, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BIENVENIDO AL ");
lcd.setCursor(0, 1);
lcd.print("ESTACIONAMIENTO");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("DIGITE CLAVE ");
dir = 0;
}
lcd.setCursor(0, 1);
}
}
}