Está en la página 1de 39

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Centro de Bachillerato Tecnolgico Industrial y


de Servicios Nm.7
Maestro: Ing. Oscar Snchez Ureo

Semestre: 4 Grupo: B Especialidad:


Mecatrnica
Nombre del equipo: Kappa

Integrantes:
-Betanzos Quevedo Israel
-Borjas Salinas Ramon Omar
-Leos Trevio Luis Eduardo
-Prez Valdez Alan Martin
-Salvador Carmona Felipe de Jess

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

ndice
Portada ..1
ndice...2
Introduccin........3
Objetivos del proyecto...4
Antecedentes .....4
Desarrollo
Captulo 1 Preparacin de materiales y organizacin de ideas. ...5
Captulo 2 Construccin del estacionamiento a escala...13
Captulo 3 Conexiones en el estacionamiento.....16

Conclusiones.21
Bibliografas...22
Anexos...13

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Introduccin
El congestionamiento de trfico actualmente y en el futuro representa un
problema, pues entre ms automviles se encuentren circulando ms espacios se
necesitan para poder estacionarlos en tiempo considerable y sobre todo conseguir
su seguridad aun cuando no se estn utilizando.
En esta ocasin el equipo Kappa realizara el proyecto: Estacionamiento con
Arduino que consiste en la realizacin de un estacionamiento moderno con varios
objetivos entre estos: el conteo y modulacin de automviles dentro del
estacionamiento con la automatizacin del mismo, con esto ahorrando el esfuerzo
de ms de una persona.
La realizacin de un estacionamiento automatizado ofrece una alternativa de
solucin convincente a diversos problemas y mejorar tecnolgicamente un
estacionamiento tradicional.
El Control de Estacionamiento automtico ser realizado con ayuda del
hardware arduino (de este saliendo el nombre) y su placa distintiva mega2560, con
ella logrando la programacin necesaria para cumplir los resultados esperados.

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Antecedentes
En Mxico y en el mundo los medios de transporte estn incrementando cada vez
ms, hoy en da se encuentran y transportes como: bicicletas, automviles,
motocicletas etc. Al igual que ya no se necesita tener un transporte propio para
transportarse sino que ya existen varios mtodos como taxis y autobuses, estos
usados como negocios. Es tanto el incremento que ya no hay suficientes lugares en
los estacionamientos o simplemente el costo para estacionarse es muy alto , lo que
obliga a los conductores a dejar sus vehculos a un lado de la cera , estos
arriesgndose a ser robados o sencillamente a ser modificados

Objetivos
1- Desarrollar un sistema que facilite la bsqueda de un lugar de
estacionamiento en centros comerciales, cines, auditorios multiusos,
oficinas, en general lugares de cmulo poblacional, para promover el ahorro
de tiempo y efectividad para encontrar un lugar.

2- Realizar un estacionamiento automatizado donde se pretende utilizar


dispositivos electrnicos programables.

3- Lograr innovar
tradicional

todas las

funciones principales de un estacionamiento

como meta que estas funcionen correctamente de manera

autoritaria. Entre dichas funciones se encuentran:


-Automatizacin de entradas.
-Automatizacin de salidas.
-El conteo de automviles.
-Control del estacionamiento sin estar presentes

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Desarrollo
Captulo 1:
Investigacin, organizacin de ideas y preparacin de
materiales
Investigacin:
Como primer paso dimos unas breves bsquedas por internet sobre el tema y ms
la experiencia propia nos dimos cuenta de
que los elementos de un
estacionamiento tradicional son muy simples, constan de: entradas, salidas,
lugares para estacionar los automviles (distanciados uno de otro para mayor
seguridad) y una gran variedad de personal encargados del mantenimiento y
seguridad de los mismos automviles.
Introducindonos ms a la investigacin logramos entender cmo funcionaban los
elementos principales de un estacionamiento tradicional. Una vez comprendido
esto, estamos listos para empezar a organizar las ideas de manera lgica y realista
para el desarrollo del estacionamiento a escala.
Se propusieron diferentes ideas para la innovacin de las funciones como meta:
lograr que sean automticas, efectivas y por supuesto funcionales
Como resultado final decidimos que las funciones que queremos que realice son:

Automatizacin de entradas:
Como primera funcin se encuentra la innovacin en entradas, con la meta de lograr
su automatizacin ,objetivo diseado para la situacin esperada de que cuando
un automvil con la intencin de entrar al estacionamiento se acerque lo suficiente
a la entrada y no espere ayuda o supervisin de una persona para permitir su
acceso , salvo que con la nica restriccin de que se encuentre un espacio
disponible para el automvil, este no tendr nada o nadie que interponga su acceso
,lo nico que tendr que hacer ser esperar los segundos en que la barra de entrada
se eleve permitiendo el paso
Una vez el automvil dentro, la barra de entrada de misma manera automticamente
bajara a su posicin inicial esperando otro automvil para repetir el proceso
Este objetivo se logra gracias los materiales como: botones pulsadores y motores
Este proceso no est programado para utilizarse como va de salida.

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Automatizacin de salidas:
Como segunda funcin se busca un resultado similar al primero, pero en esta
ocasin para salidas, objetivo diseado, para la situacin en donde el automvil
est listo para retirarse del estacionamiento, al momento que el automvil est lo
suficientemente cerca de la salida, un botn detectara el automvil haciendo que la
barra de salida se eleve dejando salir al automvil
Una vez fuera el automvil, la barra automticamente bajara a su posicin inicial
Este proceso no est programado para utilizarse como va de entrada
Este objetivo se logra gracias los materiales como: botones pulsadores y motores.

Conteo de automviles:
La tercera funcin se trata sobre el conteo de automviles que se ubican dentro del
estacionamiento, una vez que todos los lugares estn ocupados, el conteo llegara
a su lmite al igual que cuando los automviles decidan retirarse el conteo restara
el nmero de los automviles que salieron
Cuando el estacionamiento este lleno se demostrara con un letrero diciendo lleno,
de igual manera, si existen lugares disponibles se mostrara con el nmero de la
cantidad de lugares libres.
Este objetivo diseado para un mejor control de automviles, una mejor seguridad
y una mayor comodidad
Este objetivo se logra gracias a los materiales como: placa Arduino Mega 2560 y a
una pantalla TFT.

Ubicacin de los automviles


Esta es la ltima funcin del estacionamiento con arduino y trata de las sealar la
ubicacin de los cajones disponibles.
El momento en que un conductor entre al estacionamiento y finalmente estacione
su automvil en una de las 8 cajas disponibles, automticamente el estacionamiento
detectara que lugar es el que est ocupado.
Este funcin tiene la finalidad de ahorrar el tiempo al momento de buscar un lugar,
ya que habitualmente los conductores buscan un lugar viendo de lado a lado cada
cajn que van pasando, con este objetivo solamente se observara que cajn no est
ocupado en la pantalla TFT y al momento de entrar este se dirija directamente hacia
el cajn disponible.
6

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Materiales
Para lograr la realizacin de nuestro estacionamiento a escala se necesitan los
materiales necesarios para que todo funcione correctamente, para esto se hiso un
seleccin econmica pero a la vez muy eficaz
Los materiales que elegimos son:

-Arduino mega2560

Placa marca arduino en la cual


se introducir los cdigos
realizados en el programa
arduino, esta ira en la parte
inferior de la maqueta y estar
conectada directamente con un
protoboard.

-Adaptador de usb para arduino


Este adaptador sirve para que
la computadora y las placas de
arduino estn conectados y as
se puedan subir los cdigos
creados en la computadora a
los arduino.

-Una computadora con el programa arduino instalado

Para utilizar el programa


arduino se necesita instalar el
programa en una computadora
con entradas USB, el
programa se puede encontrar
en la pgina oficial de arduino.

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

-Dos motores a pasos y su respectivo driver

Los motores a pasos se


utilizaran que levantar y bajar
la barra que permite el acceso
al estacionamiento.

-Botones pulsadores
Los botones pulsadores se
ubicaran antes y despus de la
barra de entrada y salida sern
los encargados de detectar a los
automviles, cuando un automvil
este lo suficiente cerca para
entrar o salir, estos los detectaran
y mandaran seal a los motores
para que estos se eleven y bajen.

Fototransistores

Los fototransistores se
ubicaran en cada cajn que
existe en el estacionamiento,
servirn para saber qu
lugares estarn ocupados.

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Cables macho macho

Se utilizaran para las


conexiones de las placas
arduino al protoboard.

Cables macho hembra

Se utilizaran en las conexiones


para el driver de los motores
paso a paso.

-Pantalla arduino TFT


-

Se ubicara a simple vista en el


tercer escaln del
estacionamiento justo en la
entrada
En esta se mostraran, los
lugares ocupados y la cantidad
de lugares disponibles.
9

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

- Protoboards
Los protoboard servirn para
las conexiones necesarias en
el estacionamiento
Se ubicaran en segundo piso
del estacionamiento

- Hielo seco
El hielo seco solo se utiliz
para la estructura de las
paredes del estacionamiento,
puede ser remplazado por
cualquier otro material como
madera, cartn o cascaron de
huevo.

-tiles escolares
Entre estos materiales se
utilizaran: tijeras, tachuelas,
plumones, cascaron de huevo,
hojas de color, corrector y regla.
(Estos materiales pueden ser
remplazados).

10

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

-Herramientas

Se utilizaran herramientas
como: desarmador, exacto y un
taladro.

-Pistola de silicon

Se usara para pegar las


paredes y pisos del
estacionamiento una arriba de
otra,
Por razones obvias se
necesitara silicn.

-Juegos de construccion

En nuestro caso las utilizamos


como barra pero pueden ser
remplazados por palos de
madera o de plstico.

11

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

-Carros de juguete
Se usaran para la presentacin
del funcionamiento del
proyecto una vez est
finalizado.

12

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Captulo 2: construccin del estacionamiento a escala


Una vez la compra de los materiales necesarios, empezamos la construccin y
desarrollo del proyecto.
La maqueta tendr 3 escalones el 1 para el arduino mega 2560, el segundo para
los protoboard y el tercero para los automviles.
Para su construccin del estacionamiento a escala se utilizaron los materiales
bsicos al igual que materiales reciclados como: hielo seco cascaron de huevo y
tiles escolares.

Para el primer piso del estacionacionamiento se utilizo de suelo un cascaron de


huevo con una capa extra de hielo seco , fue forrado con hojas grises y en las
esquinas se colocaron 4 pequeas barras de hielo seco para la separacion de los
pisos, con sifuiciente espacio para la placa mega2560 y un protoboard.

13

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Para el segundo piso se utilizo el mismo proceso que para el primero: se coloco un
cascaron de huevo de suelo con una capa arriva de hielo seco y esta forrada esta
ves de color negro y de misma manera con 4 barras en las esquinas con suficiente
espacio para los protoboard

Una vez hechas los pisos se les pusieron silicn en las 4 barras del primer y piso y
se coloc la segunda arriba, no basta con ms de 1 minuto para que pegue
completamente

14

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Para la 3 capa se utiliz un proceso similar, se coloc para el piso un cascaron de


huevo con una capa de hielo seco por encima y de nuevo esta fue forrada de hojas
negras, la diferencia es que en esta capa se cre un cuarto de hielo seco que se
coloc encima de este 3 piso, el cuarto ser utilizado como estacionamiento, con
un exacto se hicieron unos cortes en forma de cuadro lo suficientemente grande
para que los carros de juguete pasen sin problema alguno

Se utiliz un corrector y una regla para trazar los cajones del estacionamiento para
los automviles. Una vez hecho esto se coloca silicn en las 4 barras de silicn del
segundo piso y el tercero piso se coloca encima, no tardara ms de 1 minuto en
pegarse completamente

15

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Captulo 3
Conexiones en el estacionamiento
Una vez terminado el estacionamiento a escala y los cdigos en la placa arduino
mega2560, se procedi a colocar todas las conexiones requeridas, desde la
computadora hasta la placa arduino est conectado a los protoboard y de ah a al
estacionamiento.
Los motores fueron colocados en la parte principal del estacionamiento: sern los
encargados de elevar y bajar la barra
La pantalla TFT est colocada a simple vista ya que en ella se mostrara el anuncio
de lleno o si hay espacio para un automvil ms
Otro material fcil de ver en el estacionamiento son los botones pulsadores ya que
estos son los que detectaran a los carros de juguete tanto en la entrada, lugar de
aparcamiento y salida
Fuera de estos materiales se intent esconder todas aquellas conexiones que no
sean requeridas en el momento de ponerlo en funcionamiento, se tom esta
decisin por esttica

16

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

El arduino mega2560 controlara los motores desde el primer piso, ser conectado
a un protoboard del segundo piso y del protobard a los motores del tercer piso

El arduino Mega controlara la pantalla TFT del tercer piso, desde el primero
conectado a otro protoboard colocado en el segundo piso

17

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

La pantalla se coloco en en la entrada del estacionameinto en el tercer piso justo en


medio de la entrada y salida ya que en esta se demostrara cuantos espacios vacios
hay displonibles y que lugares se estan ocupando.

Las conexiones pasan de piso a piso por orificios taladrados en las esquinas del
estacionamiento.

18

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Se hizo un orificio de igual maenera para los botnoes puladores que iran colocados
en la entrada y salida del estacionamiento , uno ante y otro despues de la barra de
entrada y salida , esto da resultado a que se nesecitara hacer 4 agujeros para 4
botones

Los fototransistores sern colocado en los 8 cajones del estacionamiento, esto para
que cuando llegue un carro el fototransistor lo detecte.
Se necesita solo un poco de presin para que traspase el hielo seco y el cascaron
de huevo

19

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Listo para usarse


Una vez todas las conexiones en su lugar, los carritos de juguete a la
mano y la computadora encendida, estamos listos para ver el
funcionamiento del estacionamiento con arduino.

20

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Conclusiones
El estacionamiento con arduino resulto ms difcil de lo esperado. Ya que an no
contbamos con los conocimientos necesarios para llevarlo a cabo , pero con un
poco de investigacin nuestras ideas se fueron aclarando poco a poco, y aunque se
tena planeado agregar ms funciones , sabemos que es lo suficientemente til y es
una buena prctica para aquellos que estn a punto de aprender a programar.
Con respecto a los gastos: aunque la mayora de los materiales sean reciclados
hay otros que no se pueden conseguir tan fcil como es el caso de motores a paso
y fototransistores, esto provoco que el proyecto se haya retrasado ms de lo
esperado ya que sus precios no son tan econmicos.
Al final no sentimos muy satisfechos con nuestro proyecto ya que se hizo un gran
esfuerzo por terminarlo.
Aunque nuestro proyecto sea a escala y exclusivo para autos, no significa que no
se pueda hacer un estacionamiento real, al contrario es una gran oportunidad para
empresas y gobiernos empezar a crear estacionamientos modernos y no solo para
automviles sino para todo tipo de transportes.

21

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Blibliografias
https://arduining.com/2012/10/13/arduino-parking-lot-filled/

https://www.arduino.cc/en/Reference/HomePage

https://sites.google.com/site/angmuz/home

http://vinculacion.dgire.unam.mx/Congreso-Trabajospagina/PDF/Congreso%20Estudiantil%202014/Proyectos%202014%20%C3%81rea/2.%20Ciencias%20Fisicomatem%C3%A1ticas/meca
tronica/5.1%20CIN2014A20036-%20Mecatr%C3%B3nica.pdf

https://www.youtube.com/watch?v=61BW966hY9g

https://zather94.files.wordpress.com/2015/04/estacionamientoautomatizado-con-arduino.pdf

https://prezi.com/ornm0wd0zqh3/control-de-estacionamientoautomatizado/

http://es.slideshare.net/alejandrogonzalezvillatoro/sistema-decontrol-de-acceso-al-estacionamientoproyecto-scae

https://www.youtube.com/watch?v=a7gjahyedqg

22

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Anexos
Realizacin de cdigos
En este espacio se crearon los cdigos de programacin gracias al
programa arduino misma empresa de las placas utilizadas.
Cdigo de motores
El cdigo que se realiz para el manejo de motores activados por medio
de botones pulsadores fue creado nicamente para la placa arduino
mega2560

Como se hace:
Lo primero que tenemos que hacer es declarar las variables en los
pines que nosotros queramos con la funcin int , en nuestro caso
int pulsador = 0;

Estado del Botn de Entrada que accionara la pluma

int entrada = 2;

Pin del primer botn

int pulsador1 = 0;

Estado del Botn de Entrada que bajara la pluma

int entrada1 = 3;

Pin del segundo botn

int pulsador2 = 0;

Estado del Botn de Salida que accionara la pluma

int entrada2 = 4;

Pin del tercero botn

int pulsador3 = 0;

Estado del Botn de Salida que bajara la pluma

int entrada3 = 5;

Pin del segundo botn

int motorPin1 = 10;

Pin 10 conectar a IN1 (A) (conexiones de motor)

int motorPin2 = 11;

Pin 11 conectar a IN2 (B) (conexiones de motor)

int motorPin3 = 12;

Pin 12 conectar a IN3(C) (conexiones de motor)

int motorPin4 = 13;

Pin 13 conectar a IN4(D) (conexiones de motor)

int motorPin5 = 6;

Pin 6 conectar a IN1 (A)

(conexiones de motor)

23

4-B Mecatrnica

Estacionamiento con arduino

int motorPin6 = 7;

Pin 7 conectar a IN2 (B)

Equipo: Kappa

(conexiones de motor)

int motorPin7 = 8;

Pin 8 conectar a IN3(C) (conexiones de motor)

int motorPin8 = 9;

Pin 9 conectar a IN4(D)

int retardo = 5;

Tiempo de retardo en milisegundos (Velocidad del Motor)

int pasos = 0;

Cuenta inicial de los pasos recorridos

(conexiones de motor)

Declaramos Entradas y Salidas con al funcin voidsetup


void setup() { Abrimos llave

Las llaves sirven para


definir el principio y el
final de un bloque de
instrucciones. Se utilizan
para los bloques de
programacin setup(),
loop(), if.., etc.

pinMode(2, INPUT); Pin del primer boton


pinMode(3, INPUT); Pin del segundo boton
pinMode(4, INPUT); Pin del tercer boton
pinMode(5, INPUT); Pin del cuarto boton

pinMode(motorPin1, OUTPUT);

(A1) Primer Motor

pinMode(motorPin2, OUTPUT);

(B1)

pinMode(motorPin3, OUTPUT);

(C1)

pinMode(motorPin4, OUTPUT);

(D1)

pinMode(motorPin5, OUTPUT);

(A2)

pinMode(motorPin6, OUTPUT);

(B2)

pinMode(motorPin7, OUTPUT);

(C2)

pinMode(motorPin8, OUTPUT);

(D2)

La funcin de
configuracin (setup)
debe contener la
declaracin de las
variables. Es la primera
Segundo Motor funcin a ejecutar en el
programa, se ejecuta
slo una vez, y se utiliza
para configurar o
inicializar pinMode

Cerramos corchete

Empezamos con el cdigo para esto usamos la funcin Voidloop

void loop() { se abre llave


y empieza el codigo

La funcin bucle (loop) contiene el


cdigo que se ejecutara
continuamente (lectura de entradas,
activacin de salidas, etc) Esta
funcin es el ncleo de todos los
programas de Arduino y la que
realiza la mayor parte del trabajo.
24

4-B Mecatrnica

Estacionamiento con arduino

Pulsador = digitalRead (entrada);


if (pulsador == HIGH)
for (pasos = 0; pasos < 128; pasos++){
Punto A (Primero)
digitalWrite(motorPin1, HIGH);

Equipo: Kappa

Aqu es donde se puede modificar la cantidad


de Paso que se desean asignar al motor, por
ejemplo:
(512 PASOS=360 GRADOS), en este caso
ocupo de que 1/4 de vuelta, sea
512/4 =128

digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(retardo); tiempo de espera
Punto B (Segundo)
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);

digitalRead(pin); La
instruccin digitalRead(pin)
lee el estado de un pin y
devuelve HIGH si est a 5V
o LOW si hay 0V en l.

digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(retardo);
Punto C (Tercero)
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(retardo);

El comando digitalWrite()
sirve para establecer la
salida digital en el pin que
establezcamos.
Este comando slo admite
dos estados HIGH o LOW,
alto o bajo

Punto D (Cuarto)
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);

Delay en este caso lo


utilizaremos como retardo

digitalWrite(motorPin4, HIGH);
delay(retardo); }

25

4-B Mecatrnica

Estacionamiento con arduino

pulsador1 = digitalRead(entrada1);
if (pulsador1 == HIGH)
for (pasos = 0; pasos < 128; pasos++){
Punto D (Cuarto)
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, HIGH);
delay(retardo);
Punto C (Tercero)
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin4, LOW);
delay(retardo);
Punto B (Segundo)
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(retardo);
Punto A (Primero)
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(retardo); }

Equipo: Kappa

Punto B (Segundo)
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
delay(retardo);
Punto A (Primero)
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, HIGH);
delay(retardo); }
pulsador = digitalRead(entrada2);
if (pulsador2 == HIGH)
for (pasos = 0; pasos < 128; pasos++){
Punto A (Primero)
digitalWrite(motorPin5, HIGH);
digitalWrite(motorPin6, LOW);
digitalWrite(motorPin7, LOW);
digitalWrite(motorPin8, HIGH);
delay(retardo); // tiempo de espera
Punto B (Segundo)
digitalWrite(motorPin5, HIGH);
digitalWrite(motorPin6, HIGH);
digitalWrite(motorPin7, LOW);
digitalWrite(motorPin8, LOW);
delay(retardo);

pulsador = digitalRead(entrada2);
if (pulsador2 == HIGH)
26

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

delay(retardo);
Punto C (Tercero)
digitalWrite(motorPin5, LOW);
digitalWrite(motorPin6, HIGH);
digitalWrite(motorPin7, HIGH);

digitalWrite(motorPin6, HIGH);
digitalWrite(motorPin7, LOW);
digitalWrite(motorPin8, LOW);
delay(retardo);

digitalWrite(motorPin8, LOW);

/Punto A (Primero)

delay(retardo);

digitalWrite(motorPin5, HIGH);

Punto D (Cuarto)

digitalWrite(motorPin6, LOW);

digitalWrite(motorPin5, LOW);

digitalWrite(motorPin7, LOW);

digitalWrite(motorPin6, LOW);

digitalWrite(motorPin8, HIGH);

digitalWrite(motorPin7, HIGH);

delay(retardo); }

digitalWrite(motorPin8, HIGH);
delay(retardo); }

} Cerramos llave

pulsador1 = digitalRead(entrada3);
if (pulsador3 == HIGH)
for (pasos = 0; pasos < 128; pasos++){
Punto D (Cuarto)
digitalWrite(motorPin5, LOW);
digitalWrite(motorPin6, LOW);
digitalWrite(motorPin7, HIGH);
digitalWrite(motorPin8, HIGH);
delay(retardo);
Punto C (Tercero)
digitalWrite(motorPin5, LOW);
digitalWrite(motorPin6, HIGH);

eeee
Ejemplo de conexion (No son los mismos pines)

digitalWrite(motorPin7, HIGH);
digitalWrite(motorPin8, LOW);
delay(retardo);
Punto B (Segundo)
digitalWrite(motorPin5, HIGH);
27

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

Cdigo de la pantalla TFT


El cdigo para el conteo de automviles dentro del estacionamiento fue realizado
de igual manera para el arduino mega2560
Este cdigo sirve para todas las funciones en donde se utiliza la pantalla tanto para
saber cuntos lugares hay disponibles como vara saber cuales estn desocupados
( para que se entienda mejor el cdigo se colocaron comentarios )
int FotoTrans1 = 3;
int FotoTrans2 = 4;
int FotoTrans3 = 5;
int FotoTrans4 = 6;
int FotoTrans5 = 7;
int FotoTrans6 = 8;
int FotoTrans7 = 9;
int FotoTrans8 = 10;
/*Iniciamos poniendo nuestras librerias*/
#include <SPI.h>

/* Libreria del Serial Peripheral Interface*/

#include <TFT.h>

/* Libreria de la pantalla*/

#define cs 13
#define dc 12
#define rst 11
int x=8;

/* Variable con la que ejecutaremos nuesto contador con esplora*/

TFT EsploraTFT = TFT(cs, dc, rst);


void setup() {
/* Definimos que es lo que queremos por default en nuestra pantalla*/
EsploraTFT.begin(); /*Iniciamos la comunicacion con la pantalla*/
EsploraTFT.background(255,100,0);/*Ponemos el color de un fondo necesario*/
EsploraTFT.stroke(255,255,255);
//Aqui escribo en la esquina superior derecha un mensaje de ayuda a nuestros visitantes
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
28

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

EsploraTFT.rect(90,3,10,5);

EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(90,10,10,5);

EsploraTFT.stroke(255,255,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("libre",110,2);
EsploraTFT.text("ocupado",110,10);
//Declaro mis fototransistores como entradas
pinMode(FotoTrans1, INPUT);
pinMode(FotoTrans2, INPUT);
pinMode(FotoTrans3, INPUT);
pinMode(FotoTrans4, INPUT);
pinMode(FotoTrans5, INPUT);
pinMode(FotoTrans6, INPUT);
pinMode(FotoTrans7, INPUT);
pinMode(FotoTrans8, INPUT);
}

void loop() {
int boton1=digitalRead(1);
int boton2=digitalRead(2);
Alpha();/*Ejecuto un void, que es donde tengo toda la parte derecha de la pantalla*/
if (boton1==HIGH){ /*Inicio una condicion que dice que "Si el boton1 esta presionado"*/
delay(300);
x--;

/* Retraso antirebote de 300 milisegundos*/

/* "x--" decrementa en 1 a mi variable por cada ciclo que se cumpla*/

}
29

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

if(boton2==HIGH){ /*Inicio una condicion que dice que si el "boton2" esta presionado haga: */
delay(300);
x++;

/*Un retraso antirebote de 300 milisegundos */

/* "x++" incrementa en 1 a mi vaiable por cado ciclo que se cumpla*/

}
Omega(); /*Inicia mi cuarto void llamado de una manera muy original*/
}
void Omega(){ /* Mi tercer void con un nombre muy originalc: */

switch(x){

/* Inicio un "Switch-case" con mi variable "x" */

case (0):
/*Ahora ponemos un mensaje de lleno*/
EsploraTFT.noStroke();
EsploraTFT.fill(255,100,0);
EsploraTFT.rect(10,0,160,25);
EsploraTFT.stroke(0,0,255);
EsploraTFT.setTextSize(2);
EsploraTFT.text("Lleno",13,20);
/* Vamos a poner las letras en rojo, que marcara que esta todo ocupado*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
EsploraTFT.stroke(0,0,255);
EsploraTFT.setTextSize(2);
EsploraTFT.text("0",30,50);

/*Ponemos en color azul las letras,pero el mismo azul que el de la pantalla, para que sea un
"Borrador" de esas letras, ya que se encendera la palabra "Lleno"*/
EsploraTFT.stroke(255,100,0);
EsploraTFT.setTextSize(1);
30

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

EsploraTFT.text("Bienvenidos",13,33);
break;
/*caso en el que x equivalga a 1*/
case 1:
EsploraTFT.noStroke();
EsploraTFT.fill(255,100,0);
EsploraTFT.rect(10,15,70,19);

/* Esto es para crear un "borrado" del numero anterior*/


EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un elegante 1*/
EsploraTFT.stroke (255,255 , 255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("1", 30, 50);
/* Cambiamos el color de las letras a un rojo*/
EsploraTFT.stroke(0,0,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Lugar(es)",15,80);
EsploraTFT.text("disponibles",20,100);

EsploraTFT.stroke(0,0,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Bienvenidos",13,33);
break;
/*caso en el que x equivalga a 2*/
case 2:
/* Esto es para crear un "borrado" del numero anterior*/
31

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un sensual 2*/
EsploraTFT.stroke (255,255 , 255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("2", 30, 50);
/* Ponemos las letras en un color Amarillo,Otra vez? si, otra vez ya que al ser un color diferente el
que se encuentra antes, se debe de volver a poner
*su color amarillo de advertencia de lleno*/
EsploraTFT.stroke(0,255,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Lugar(es)",15,80);
EsploraTFT.text("disponibles",20,100);

EsploraTFT.stroke(0,255,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Bienvenidos",13,33);
break;
/*caso en el que x equivalga a 3*/
case 3:
/* Esto es para crear un "borrado" del numero anterior*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un maravilloso 3*/
EsploraTFT.stroke (255,255 , 255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("3", 30, 50);
32

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

break;
/*caso en el que x equivalga a 4*/
case 4:
/* Esto es para crear un "borrado" del numero anterior*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un espectular 4*/
EsploraTFT.stroke(255,255,255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("4", 30, 50);
/* Le cambiamos el color a las letras a un rico amarillo*/
EsploraTFT.stroke(0,255,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Lugar(es)",15,80);
EsploraTFT.text("disponibles",20,100);

EsploraTFT.stroke(0,255,255);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Bienvenidos",13,33);
break;
/*caso en el que x equivalga a 5*/
case 5:
/* Esto es para crear un "borrado" del numero anterior*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un asobroso 5*/
EsploraTFT.stroke (255,255 , 255);
33

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

EsploraTFT.setTextSize (2);
EsploraTFT.text ("5", 30, 50);
/*Ahora regresamos al color original*/
EsploraTFT.stroke(0,255,0);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Lugar(es)",15,80);
EsploraTFT.text("disponibles",20,100);

EsploraTFT.stroke(0,255,0);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Bienvenidos",13,33);
break;
/*caso en el que x equivalga a 6*/
case 6:
/* Esto es para crear un "borrado" del numero anterior*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un flipante 6*/
EsploraTFT.stroke (255,255 , 255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("6", 30, 50);
break;
/*caso en el que x equivalga a 7*/
case 7:
/* Esto es para crear un "borrado" del numero anterior*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
34

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un tripiante 7*/
EsploraTFT.stroke (255,255 , 255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("7",30,50);
break;

/*caso en el que x equivalga a 8*/


case 8:
/* Esto es para crear un "borrado" del numero anterior*/
EsploraTFT.noStroke();
EsploraTFT.fill(0,0,0);
EsploraTFT.rect(22,40,30,30);
/*Aqui escribimos en nuestra linda pantalla en color blanco en letra tamao 2 un repampanante
8*/
EsploraTFT.stroke (255,255 , 255);
EsploraTFT.setTextSize (2);
EsploraTFT.text ("8", 30, 50);
/*Escribo en la parte arriba un pequeo mensaje para los visitantes*/
EsploraTFT.stroke(0,255,0);
EsploraTFT.setTextSize(1.5);
EsploraTFT.text("Lugar(es)",15,80);
EsploraTFT.text("disponibles",20,100);

EsploraTFT.stroke(0,255,0);
EsploraTFT.setTextSize(1);
EsploraTFT.text("Bienvenidos",13,33);
break;
}
}
35

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

void Alpha(){
/* Todos los delays son de 300 milisegundos y sirven para evitar el rebote
se puede leer mas de eso aqui : http://www.forosdeelectronica.com/f24/eliminar-rebotesinterruptores-6316/ */
//Fila 1
// cuadro 1
if( FotoTrans1==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(90,25,25,15);
}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(90,25,25,15);
}
//cuadro 2
if(FotoTrans2==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(90,50,25,15);

}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
36

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

EsploraTFT.rect(90,50,25,15);
}
//cuadro 3
if(FotoTrans3==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(90,75,25,15);

}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(90,75,25,15);
}
//cuadro 4
if(FotoTrans4==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(90,100,25,15);
}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(90,100,25,15);
}
//fila 2
//cuadro 1
37

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

if(FotoTrans5==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(130,25,25,15);
}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(130,25,25,15);
}
//cuadro 2
if(FotoTrans6==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(130,50,25,15);
}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(130,50,25,15);
}
// cuadro 3
if(FotoTrans7==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(130,75,25,15);
38

4-B Mecatrnica

Estacionamiento con arduino

Equipo: Kappa

}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(130,75,25,15);
}
//cuadro 4
if(FotoTrans8==LOW){
delay(300);
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,0,255);
EsploraTFT.rect(130,100,25,15);
}
else {
EsploraTFT.stroke(255,255,255);
EsploraTFT.fill(0,255,0);
EsploraTFT.rect(130,100,25,15);
}
}

Ejemplo de conexion

(No son los mismos pines)


39