Sie sind auf Seite 1von 11

CIRCUITOS Y CONEXIONES.

 LED INDICADOR DE LUGAR

Estos led´s cumplen la función de indicar si el lugar está ocupado o no; se encuentran arriba del
cuarto además de contar con un LDR en la parte de abajo. Están en los 8 cuartos.

El circuito del cual me base fue el de ¨Prender un Led con un LDR¨ con la única diferencia de
cambiar el Led por un Relevador , asi con los ocho cuartos. Para esto utilice 2 módulos de
Relevadores de 4 reles cada uno.
NOTA: El transistor es un BC547

Fig. Circuito utilizado en el interior de los sitios de estacionamiento.

En la Proto de la parte baja se hcieron las


conexiones del circuito descrito en la parte de
arriba.
Seguidamene se observan los relevadores (se
observa que hay 2 mas aparte de los 8, mas
adelante se explicara su uso)

Y finalmete un proto pequeño en el cual se


colocaron las salidas de los relevadores del
N.O. y N.C. las cuales iran a los Led´s.

Bryan Simón Quintero Barrón.


Para simular la luz que da directamente al LDR coloque tiras Led de 12V en la parte del techo.

Funcionamiento:

Para esto se debe tener claro como funciona el circuito (en caso de no entenderlo ver:
https://www.youtube.com/watch?v=2blGHqdFZSM&t=295s)

Una vez claro , recordemos que el relevador solo puede tener una posicion, me refiero a que solo
tiene un contacto N.O. y uno N.C. , cuando se energice el relevador los conatactos cambiaran a N.C
y N.O.nunca tendremos 2 N.O o 2 N.C. , basicamente son dependientes.

Lugar Disponible:

Aquí la luz da directamente al LDR haciendo que baje el valor de resistencia y perimita el flujo de
corriente, energizando al transistor y seguidamenete al relevador , cerrando un contacto y
enciendo un led el cual sera de color azul indicando la disponibilidad del cuarto.

Bryan Simón Quintero Barrón.


Lugar Ocupado:

Aquí la luz no da al LDR debido a que el carro la obstruye al ponerse encima ,provocando que el
valor de resistencia aumente y deje sin corriente al transistor y seguidamenete al relevador ,
abriendo el contacto anteriormente cerrado(led color azul) y cierre el que estaba abierto
permientiendo que el otro led se encianda el cual sera de color rojo indicando queel cuarto esta
ocupado.

De igual manera sino quedo claro adjuntare un video en la publicación.

Bryan Simón Quintero Barrón.


 CONTADOR LCD , SERVO(PLUMA) Y SENSOR DE TEMP.

LCD , contador y Servo:

El LCD nos va a mostrar cuantos lugares están disponible y cuantos no.


El servomotor sirve para levantar la pluma cada vez que un carro quiera pasar al estacionamiento

Marco de Entrada:
En el marco de Entrada tenemos lo mismo que en un cuarto
anteriormente descrito. Tenemos el LDR en la parte de abajo una tira
Led de 12V en la parte de arriba y con respecto al circuito es el mismo,
con la diferencia de que ahora en los contactos del relevador solo
usamos el N.C. , este contacto básicamente funciona como un botón
que cada vez que pasa el carro por encima este se cierra y manda un 1
al Arduino el cual hace la suma de 1 unidad en la variable ¨Ocupados¨
y hace la operación en la variable ¨Libres¨ que es igual a ¨Libres = 8 -
Ocupados¨

Marco de Salida:
En el marco de Salida tenemos lo mismo que en el marco de
Entrada. Tenemos el LDR en la parte de abajo una tira Led de 12V en
la parte de arriba y con respecto al circuito es el mismo, con la
diferencia de que ahora en los contactos del relevador solo usamos
el N.C. , este contacto básicamente funciona como un botón que
cada vez que pasa el carro por encima este se cierra y manda un 1 al
Arduino el cual hace la resta de 1 unidad en la variable ¨Ocupados¨ y
hace la operación en la variable ¨Libres¨ que es igual a ¨Libres = 8 -
Ocupados¨

Nota: Aquí utilizamos 2 relevadores más (unos para la entrada y otro para
la salida) que son los 2 dos relevadores de más que mencionamos que
teníamos al inicio de este documento.
Bryan Simón Quintero Barrón.
Funcionamiento:

Cuando un carro quiera entrar tiene que pasar por un marco de Entrada este manda un 1 al
arduino en el pin 8 y el codigo nos indica que se tiene que levantar la pluma 5s(Lo suficiente para
que el carro pase) e inmediatamente se haga secuencia nombrada anteriormente en el marco de
Entrada.

Cuando el carro salga entrar tiene que pasar por un marco de Salida se va a mandar un 1 en el pin
9 y se ejecutar lo que se dijo enteriormene en el marco de Salida.

Bryan Simón Quintero Barrón.


Condiciones generales del funcionamiento en el código:

 Cada vez que el carro pasa por debajo del marco de Entrada se suma una unidad.
 Cada vez que pasa un carro por debajo del marco de Salida va a restar una unidad.
 Mientras el contador sea menor a 9 la pluma se va alzar permitiendo el paso del carro.
 Cuando la cuenta supere el 8 el codigo impide que otro carro pase dejando de levantar la
pluma. La pluma solo va funcionar cuando se cumpla la 3er condición.

Conexión:
En la parte de arriba tenemos los dos circuitos del inicio cada una con su relevador indicado cual es
que suma(Ascendente-Marco de Entrada) y el que resta(Descendente-Marco de Salida)que
funciona como botón.
Después tenemos la conexión del LCD al Arduino que nos permite saber el conteo.
Y finalmente un Servomotor que hace la funcion de la pluma

En el archivo .rar se agregó la conexión en el programa PROTEUS.


Recuerda que para simular en proteus debes colocar el archivo .hex generado por el código de
Arduino.

Bryan Simón Quintero Barrón.


Codigo:

#include <Servo.h> //Incluye librería Servo


Servo servo1;
#include <LiquidCrystal.h> // Incluye la Libreria LiquidCrystal
LiquidCrystal lcd (1, 2, 4, 5, 6, 7); // Crea un Objeto LC. Parametros: (rs, enable, d4, d5, d6, d7)
int libres,ocupados;
const int pulsador_asc = 8; // pin 8 como entrada para el contador asc
const int pulsador_des = 9; // pin 9 como entrada para el contador des

//VARIABLES PARA EL CONTADOR ASCENDIENTE


// estas variables si puede ser cambiado
int contador = 0; // contador para el número de veces presionados
int estado_pulsador_asc = 0; // estado actual del pulsador
int lastButtonState_asc = 1; // estado anterior del pulsador

//VARIABLES PARA EL CONTADOR DESCENDIENTE


// estas variables si puede ser cambiado

int estado_pulsador_des = 0; // estado actual del pulsador


int lastButtonState_des = 1; // estado anterior del pulsador

void setup() {

lcd.begin(16,2); // Inicializa la interface para el LCD screen, and determina sus dimensiones
(ancho y alto) del display
servo1.attach(A0);
pinMode(pulsador_asc, INPUT_PULLUP); //Resistencia de pullup interna
pinMode(pulsador_des, INPUT_PULLUP); //Resistencia de pullup interna
}

void loop() {

estado_pulsador_asc = digitalRead(pulsador_asc);
estado_pulsador_des = digitalRead(pulsador_des);
// comparar el estado del botón a su estado anterior
if (estado_pulsador_asc != lastButtonState_asc) {
// si el estado fue cambiado, incremente el conteo
if (estado_pulsador_asc == HIGH) {
// si el estado actual es alto, entonces
// que pase de off a on:
contador++;
if(contador<9){ // si el Contador es menor a 9 se ba a sumar una unidad
servo1.write(90); //Aqui movemos el servo para que el vehiculo pueda pasar
delay(3000); //con delay de 5s
servo1.write(180); // el servo vuelve a su posición original

Bryan Simón Quintero Barrón.


}
if(contador>=8){ // Esto por si quiere entrar alguien mas no puede y vuelva a 8
contador=8; // aquí no damos instrucción al servo ya que todos los lugares están ocupados
}
delay(100);
}
}
lastButtonState_asc = estado_pulsador_asc;
// comparar el estado del botón a su estado anterior
if (estado_pulsador_des != lastButtonState_des ) {
// si el estado fue cambiado, decrementa el conteo
if (estado_pulsador_des == HIGH) {
// si el estado actual es alto, entonces
// que pase de off a on:
contador--;
if(contador<=0){
contador=0;
}
delay(100);
}
}
//guarda el último estado actual como el ultimo estado
//para el próximo bucle
lastButtonState_des = estado_pulsador_des;
libres = 8-contador; // Este variable resta el valor del contador a 8 para indicar los lugares libres

//LCD indicador

lcd.print("L. Libres:");
lcd.setCursor(15,0);
lcd.print(libres);
lcd.setCursor(0,1);// Seteamos la ubicación texto 0 linea 1 que sera escrita sobre el LCD
lcd.print("L. Ocupados:");
lcd.setCursor(15,1);
lcd.print(contador);
delay(1000);
/* lcd.clear(); // Limpia la pantalla
delay(1000);*/
}

Bryan Simón Quintero Barrón.


 Sensor de Temperatura

Este componente solo es opcional yo lo agregue porque mi proyecto me lo pedia de igual manera
adjunto el código y la conexión.Si se quiere agregar al código general solo se copia cada parte y se
pega en el lugar correcto.

Funcionamiento:

Basicamnete es un sensor DTH11 el cual lo coloque en la parte de fuera por estética, este manda
una señal baja (0) a un relevador cuando supera los 30 grados de temperatura (El cual lo señalizo
con el nombre de ¨motor¨ en el código) este se cierra y permite el flujo de corriente a un motor
que puse en la cabina de la entrada. Dura aproximadamente 10 segundos encendido si lo
añadimos al código general. Cuando la temperatura es menor a los 30 grados este manda un 1 y
apaga el relevador y por lo tanto el motor también se apaga.

Conexión:

Bryan Simón Quintero Barrón.


Código:

#include <DHT.h>
int sensor = 3 ;
int temp, hum;
int motor= 10;

DHT dht(sensor, DHT11);

void setup() {
pinMode(motor , OUTPUT);
}

void loop() {

//Codigo sensor de Temp.


hum = dht.readHumidity();
temp = dht.readTemperature();
if(temp>= 30){
digitalWrite(motor,HIGH);
}
else{
digitalWrite(motor,LOW);
}
}

Bryan Simón Quintero Barrón.


OPINION ACERCA DEL PROYECTO:

Esta fue la forma en la que resolví mis problemas ya que no contaba con un ¨Arduino mega¨ y
bueno simpre hay personas que piensan ellos lo pueden hacer mejor y es cierto no es la única
manera. Vi un comentario sobre el hecho de que estaba utilizando un sensor DTH-11 y decía que
me hacía falta cayo algo así, y pues pude utilizar un LM35 meter la salida a un pin Analogico y
hacer un adc( conversor analógico-digital) de 8 bits y ya utilizarlo en un if, al final es lo mismo
pero bueno.
Finalmente agradezco su apoyo y solo quiero decir que todo se puede mejorar ya sea el código o
visualmente hablando.
Esto solo es la forma en la que lo hice y espero les ayude a ustedes.

Bryan Simón Quintero Barrón.

Das könnte Ihnen auch gefallen