Vous êtes sur la page 1sur 24

Automatismo para Garaje

con Arduino
Hoy: 16 Marzo 2014, Incluir en favoritos, para volver a
visitarnos. Creado por: V. Garca.
Tema:
Buscar

Introduccin.
Como con cualquier proyecto de ingeniera, hay incontables modos de
construir un mecanismo automtico, si adems incluimos los automatismos
electrnicos, las opciones aumentan exponencialmente. De modo que hay
que plantearse una pormenorizada y cuidadosa planificacin.
Uno, debe tomar decisiones para hacer un diseo, basadas en el tiempo
disponible, el coste, elementos que lo constituyen y datos especficos del
proyecto. Lo siguiente consiste en escoger los componentes principales del
proyecto y el resto de cosas que intervienen en el mismo.
Analizaremos, los elementos intervienen para obtener y ejecutar acciones
con los datos de (interruptores, finales de carrera, motores, lectores,
sensores, circuitera estndar, microprocesadores, lenguaje, etc.), es decir,
todos los dispositivos necesarios para ejecutar con xito el proyecto.
En el caso de necesitar que el proyecto necesite cierta flexibilidad o se deba
adaptar a elementos externos, es el momento de plantearse usar en un
microcontrolador. El micro debe leer los sensores, controlar los motores y
permanecer en estado de espera 'Estand by', todo al mismo tiempo. Existen
un amplio y variado abanico de opciones para elegir el ms adecuado.
As pues, debemos asegurarnos de que el microcontrolador que elijamos
tiene bastantes puertos de E/S para cubrir todas las necesidades. El
microcontrolador tendr que leer los sensores y enviarn ordenes a los
manejadores de los motores. El desarrollo del software, se har ms fcil, si
se dispone de un monitor en forma de LCD, LEDs y/o un altavoz. Tambin
queremos que lea un pulsador o dos para iniciar y terminar en algn
momento. Si vamos a usar sensores analgicos tendremos que contemplar,
como realizar la conversin analgica/digital, si por el mismo
microcontrolador o por otro medio externo.
Si vamos a usar motores de corriente continua o paso a paso, el
microcontrolador tendr que generar una seal concreta para el control de
velocidad. El modo ms fcil para hacer esto es, usar temporizadores
internos del microcontrolador. Algunos microcontroladores, ahorran este
problema, ya que proporcionan una funcin de modulacin de anchura de
pulso o PWM. Si el diseo utiliza ruedas de codificador para determinar la
velocidad y la distancia de desplazamiento, tambin necesitaremos
monitorizar esto.
Si ya tenemos alguna experiencia con algn microcontrolador en particular
y creemos que ste puede controlar de algn modo nuestro proyecto,
deberamos seguir adelante y usarlo. No pensemos que, se necesita un
poderoso micro para controlar nuestro proyecto. Otra ventaja en el uso de
un micro, consiste en que, encontraremos muchos ejemplos de programas
sobre el mismo, en Internet, con la ayuda de alguien, para poner en accin
nuestro proyecto.
La cantidad de memoria a utilizar, depender del algoritmo que, de
solucin al proyecto, el lenguaje usado, la forma del cdigo, etc. Para estar
seguros, el espacio adecuado de programa, debera ser de 16 a 32 kilobytes.
Si esto est disponible como memoria flash, entonces reprogramar de nuevo
ser rpido y fcil. Para poner en prctica la rutina, ser necesario 1 kilobyte
aproximadamente de espacio de datos.
Considerando los motores, uno puede escoger motores de corriente
continua, motores paso a paso o servo motores como los utilizados en
coches teledirigidos y aeroplanos.
Fuente de informacin.
Una tarea muy importante, consiste en obtener informacin sobre
proyectos similares existentes en el mercado, documentacin de los distintos
elementos que vamos a utilizar en el proyecto. Internet sin duda, es una
buena fuente de informacin, as como, libros que desarrollan la teora, la
prctica y los conocimientos sobre distintos elementos que intervienen,
cuanto mayor informacin, ms posibilidades de xito tendremos.
Conocimientos previos.
Necesitaremos unos conocimientos previos sobre como manejar o
controlar, motores DC, control de velocidad PWM, servos, sensores, lectores,
codificadores, LCD y sobre todo si es el caso el microcontrolador a utilizar.
Ahora, veremos algo de teora sobre algunos de estos dispositivos.
Motores DC.
Los motores de corriente continua, han sido usados satisfactoriamente en
muchos proyectos. Podemos encontrar motores de sobra, motores de forma
y tama? en el marcado, en juguetes y en viejos artefactos electrnicos.

Motor DC
Los motores DC, tienden a girar demasiado rpido y no tienen bastante
momento de rotacin para mover directamente, entonces tendr que usarse
una especie de engranaje llamado reduccin o caja de cambio. Los
engranajes reducen tanto la velocidad como aumentan el momento de
rotacin del eje de salida. Esta caja de cambio, se puede crear con
engranajes individuales o puede ser parte del motor. Por otra parte,
conociendo la velocidad del eje de salida (REVOLUCIONES POR MINUTO) y el
dimetro de la polea, se puede tener una idea de cuan rpido girar para
encajar en el proyecto.
Los codificadores.
Otra necesidad, cuando utilizamos motores DC, es un disco codificador
sobre el rbol motor, este codificador de eje, proporciona un tren de pulsos
que, puede ser contado y permite al microcontrolador, determinar cuanto se
ha viajado o desplazado y cuan rpido hace girar al eje.

2 Codificadores para 2 Ejes.
La rueda codificadora puede ser un disco solidario al eje, con rayas blancas
y negras alternas. Una fuente luminosa de IR apuntada al disco, al girar la
rueda, las rayas negras absorben la luz mientras las rayas blancas la reflejan
atrs sobre un fototransistor. La rueda tambin puede ser un disco con
ranuras en el, como aquellos encontrados en ratones de PC. En este caso, la
fuente luminosa de IR est a un lado del disco y el fototransistor est al otro
lado del disco. En ambos casos, el fototransistor convierte los pulsos de luz
en una seal que, para ser contados, son enviados al microcontrolador. El
conexionado del sensor de la rueda codificadora es similar al de los sensores
de proximidad de pared.
Los sensores de proximidad.
Los ratones necesitan un modo de detectar con precisin los movimientos y
la mayor parte emplea, sensores infrarrojos de proximidad para hacer esto.
Estos sensores IR pueden ser sensores de proximidad o pueden ser simples
sensores de distancia.
Estos tipos, tienen al menos dos sensores, un sensor con el eje montado en
ngulo de 90? sobre el eje del otro sensor, de modo que, cualquier
movimiento se manifiesta con un par de valores que, nos proporcionan una
posicin nica sobre un plano determinado.
Estos tipos de sensores, por lo general van montados sobre un eje solidario
a la rueda codificadora, de modo que al girar sta, la fuente luminosa de IR
est a un lado del disco y el fototransistor est al otro lado del disco. Si hay
un radio o pared directamente enfrente del sensor, ste devuelve un valor
lgico verdadero. Si no hay ningn obstculo enfrente del sensor, el valor
lgico que devuelve es falso.
Los sensores de proximidad son fciles de poner en prctica. La parte de
emisor se parecer con esta imagen:

La parte de sensor se parecer aqu

La resistencia R se escoge para establecer la corriente apropiada para el
LED. En vez de unirse directamente a +5 Voltios, otra opcin, ser unirlo por
un transistor as el LED podr ser activado por el micro, slo cuando los
sensores tengan que ser ledos.
Para que el fototransistor se comporte como un interruptor tiene que
conducir en la condicin de saturacin. Cuando el sensor deba ser conectado
a la lgica CMOS, un valor de resistencia de aproximadamente 10 k, ser
una buena opcin.
El LED y el sensor puede ser componentes separados, o pueden ser
empaquetados juntos en una cpsula de plstico, algo parecido a esta
imagen:

Sensor ptico compacto.
An as debe asegrese de que la altura del sensor, en mayor o menor
medida, es ajustable, dando as la posibilidad de modificar cualquier
desajuste. Tambin, podemos citar que existen los sensores por espira,
estos generan un campo magntico que vara con el paso de un elemento
metlico sobre su campo de accin, esto hace que se refleje a la salida de un
amplificador, presentando una variacin o seal que es lo que nos interesa.
Control de motores DC.

Circuito DC bsico
Conseguir hacer girar un motor de corriente continua, es tan simple como
la conexin del mismo a una batera (procurar no exceder el margen de
voltaje del motor). La inversin de la polaridad de las conexiones de motor,
causar que el motor gire en sentido contrario. La reduccin del voltaje
aplicado al motor, hace que ms gire lento.

Puente H
Para invertir la direccin del motor sin un nuevo conexionado requiere de
un circuito conocido como un PUENTE-H (advierta cmo el circuito alrededor
del motor est en forma de la letra H).
El cierre de los interruptores A y D hace que el motor gire adelante.

Giro adelante
Cerrando los interruptores B y C hace que el motor gire hacia atrs.

Giro atrs
Una vez que el motor se conecta y aumenta de revoluciones, cerrando los
interruptores A y C se desconecta la batera del motor y cortocircuita los
terminales del motor. Esto produce un efecto que frenado en motores de
corriente continua.

Frenado en motores DC
Tambin es fcil hacer un corto de batera al cerrar por descuido los
interruptores A y B o cerrando los interruptores C y D. Est muy atento
para no hacer esto!!. Esto pondr en peligro la batera. Tome medidas para
evitarlo, una buena medida es automatizar al mximo el control de los
interruptores.
Para permitir controlar el Puente H al microcontrolador, los interruptores
mecnicos, deben ser substituidos por transistores. Ntese, el empleo de
diodos de retorno (flyback) en el circuito. La bobinado en el motor es
esencialmente un inductor. Cuando el flujo de corriente en un inductor de
repente es cortado, la corriente de pronto no puede ir a 0. Por consiguiente,
inducen un voltaje oponindose a esta corriente. Este voltaje puede ser tan
alto que esto destruya los transistores. Los diodos de retorno (flyback)
proporcionan un camino de vuelta seguro para esta corriente que evita y
protege los transistores.

Puente H con transistores
El puente-H, puede ser realizado con transistores discretos o puede ser
comprado como un circuito integrado. Utilizar un circuito integrado ayudar
a mantener el proyecto compacto y la lgica interna previene que la batera
pueda ser cortocircuitada como se describi ms arriba.
Al escoger uno de estos IC de puentes-H, se deben examinar las hojas de
datos, con cuidado. Algunos, contienen diodos internos de retorno o flyback
y algunos requieren que al disear se agreguen diodos externos. Aqu estn
algunos integrados populares:
Modelo: L293
Manufacturador: SGS - Thompson Microelectronics
Coste Aprox.: 2
Nmero de puentes-H por chip: 2
Corriente Continua: 600mA
Corriente de Pico: 1A
Margen de Voltaje: 5v - 36v
Notes: Varios modelos del L293. Con el sufijo "D" contiene diodos
internos flyback.

Modelo: L298
Manufacturador: SGS - Thompson Microelectronics
Coste Aprox.: 3
Nmero de puentes-H por chip: 2
Corriente Continua: 1A
Corriente de Pico: 3A
Margen de Voltaje: 5v - 46v
Nota: Se necesitar? diodos externos flyback.
Control de velocidad de un DC.
Aplicar toda la energa al motor DC, har que ste, gire a la mxima
velocidad y quitando la energa al motor, haremos que el motor deje de
girar. El puente-h que hemos comentado antes es capaz de controlar estos
dos estados. Para conseguir hacer que el motor pueda girar a velocidades
inferiores, puede usarse una tcnica conocida como, Modulacin de Anchura
de Pulso (PWM).
La PWM es un modo eficiente, para simular una gama de valores analgicos
en circuitos digitales. Conmutando rpidamente entre encendido y apagado,
se puede simular un valor medio. Se muestran tres seales en la figura. Las
tres seales comparten la misma frecuencia, pero la anchura de los pulsos
es diferente. Por medio de la variacin del tiempo en "alto", podemos hacer
que el motor "vea" un valor entre 0V y +V.

Como para la frecuencia de esta seal, deber estar bien algo por encima
de 10khz. Si se oyera una vibracin o tono que llega de los motores,
entonces se podr usar una frecuencia por encima del umbral del odo de
humano, es decir, de 20khz a 25khz.
Los Servos.
Los servomotores, ms conocido por servos, est constituidos por un motor
de corriente continua.

Servo Futaba S-3003
Dicho motor, tiene un sistema reductor, mediante engranajes que, adems,
est mecnicamente vinculado a un potencimetro.

Engranaje reductor
Dicho motor, dispone de un sistema electrnico integrado que, mediante
una seal PWM externa al servo permite que, podamos modificar en cada
momento, el ngulo del eje del servo en la posicin que nos interese, por lo
general con un tope entre 0 y 180 grados. Existe un modo de modificar la
mecnica del reductor de velocidad, para que pueda girar sin fin. En algunos
casos puede interesar esta modificacin.

Control electrnico.
Esto es una gran ventaja, por ejemplo, si disponemos de un micro con 8
pines de salida, podremos posicionar hasta 8 servos.
Los servos como ya se ha dicho, se controlan aplicando una seal PWM por
su cable de control. Como ya se describir ms abajo, las seales PWM
(Pulse Width Modulation, modulacin por anchura de pulso) son impulsos
digitales (que pueden valer 0 ?1 y permiten) que usando un nico pin de un
microcontrolador podamos controlar el ngulo de giro para posicionar el
servo, la seal enviada al servo es traducida en rdenes de posicin por la
electrnica dentro del servo, permaneciendo en dicha posicin inamovible,
mientras permanezcan, la tensin de alimentacin y la seal de control.
Conexin
El servo, normalmente presenta tres cables que llegan a un conector
hembra. De los tres cables, el rojo es el de alimentacin (4,5 - 6 voltios), el
negro es masa y el blanco es el encargado de controlar el ngulo de giro,
mediante la seal de control PWM.

Conector
La seal PWM.
Para posicionar el servo hay que aplicar una seal perifrica, de 50Hz
(20ms de periodo). La anchura del pulso determina la posicin del servo. Si
la anchura es de 2,3ms, el servo se sita en un extremo y si la anchura es
de 0,3ms se sita en el opuesto. Cualquier otra anchura entre 0,3 y 2,3 sita
el servo en una posicin comprendida entre un extremo y otro. Por ejemplo,
si queremos que se site exactamente en el centro, aplicamos una anchura
de 1,3ms.

Mientras se le aplique la seal PWM, el servo permanecer fijado en su
posicin, reteniendo su eje con fuerza para permanecer en ella. Esto es una
cualidad de especial relevancia ya que permite que se mantenga el eje en
una posicin mientras permanezca alimentado el servo, por ejemplo; en un
brazo robot. Cuando se deja de enviar la seal, el servo entra en un estado
de reposo y por tanto, se podr mover con la mano.
Llegados aqu deberemos tener claro el contenido del proyecto ya que
tenemos bastante claro los dispositivos implicados y algo de idea sobre la
tcnica de su control.
Planificacin y diseo del proyecto.
Bsicamente, se pretende realizar el control de entrada y salida de un
cierto nmero de personas a un local, mediante una tarjeta de proximidad o
lector (el sistema de deteccin ya existe), puede considerarse que, nos
presenta una seal digital cada vez que se acerca a un detector la tarjeta de
la persona autorizada.
Cuando se recibe un impulso desde el detector, de entrada o de salida,
ambos son iguales, se debe poner en marcha un proceso que comprende los
siguientes puntos:
1- Detectar si la seal, se ha producido de entrada o salida del
local.
2- Activar una seal de alarma sonora y otra luminosa.
3- Despus de un tiempo (de 3-5 segundos), generar una seal
para activar un motor de
entrada o salida.
4- El sistema de potencia (puentes-h para manejar los motores),
se usar el existente.
5- Generar una seal que enviar al sistema central para hacer
constar la presencia
o no del vehculo.
6- Guardar en memoria el ltimo estado de los distintos estados
de seal.

El sistema de control del proyecto, dispondr adems de: un interruptor de
puesta en marcha/parada, un pulsador de reinicializacin, puesta a cero o
RESET y una entrada digital (H-L) para usos varios.
La puerta, para abrir, recibe una seal de apertura y permanecer abierta,
durante un tiempo (determinado) que depender de la condicin que no se
reciba una nueva seal de lectura de tarjeta por un espacio de tiempo de 10
segundos de seguridad.
Por otra parte, debe disponer de un sistema manual auxiliar independiente,
que pueda actuar en el caso eventual, de falta de energa de la red, por
motivos ajenos a la propia instalacin e inesperados.
El sistema se apoyar en su funcionamiento con una memoria que guardar
los ltimos datos de las seales activadas, para poder reiniciarse con las
mismas condiciones anteriores al apagn.
Eleccin del Microcontrolador.
Se considerar los microcontroladores, los pines de entrada analgicos y
digitales, as mismo los pines de salida. Se tendr en consideracin si
dispone de temporizadores, pines de salida PWM integradas, bajo consumo,
frecuencia de trabajo de 8MHz, dimensiones del dispositivo, patillaje, modo
de grabacin, lenguaje, hojas tcnicas del fabricante, coste, disponibilidad,
facilidad de mantenimiento y fcil sustitucin.
Despus de sopesar las posibilidades expuestas en el apartado anterior, se
opta por el uso de un sistema basado en el AVR (Arduino), entre otras
cuestiones, por su facilidad de programacin y por tener cierta experiencia,
adems del hecho de que disponga de salidas PWM que, pueden manejar
seales para los puentes en H para los motores de las puertas de entrada y
salida, tambin, dispone de temporizadores.
El sistema se sustenta en monitorizar dos eventos constantemente. Puesto
que tenemos dos eventos que escrutar todo el tiempo, consideraremos que
dividimos en dos ciclos, el tiempo de escrutinio, es decir, en el primer ciclo
comprobamos el estado de las entradas y se ejecuta la tarea prevista que
corresponda a las datos de entrada y en el segundo ciclo, se comprueba la
estado de las salidas, ejecutando las tareas que correspondan a su situacin.
En cada secuencia, se ejecutar la orden que cumpla la condicin que exija
el evento activo, pasando el control a la siguiente secuencia. Este ciclo se
repite en un bucle sin fin.
Herramientas Hardware.
Los requerimientos del hardware son realmente importantes, ya que, se
necesita del control de una puerta y una barrera de paso de entrada al que
hay que aadir el lector de tarjetas y el detector de espira. Estos elementos
electromecnicos son idnticos tanto para la entrada como para la salida,
con las pequeas variantes de posicin fsica que no afectan a su
comportamiento.
Software.
Necesitamos herramientas de desarrollo que, nos permitan plantear
distintos estados y posibilidades de la aplicacin, esto nos facilitar nuestra
labor a la hora de generar los esquemas electrnicos y las correspondientes
placas de desarrollo o PCB. Es de vital importancia, la posibilidad de que
dicho software nos permita realizar simulaciones del prototipado y
rectificacin del mismo antes de la puesta en prctica del prototipo final.
Las herramientas de desarrollo del microcontrolador AVR en las que vamos
a centrar nuestro diseo, es de las llamadas OpenCode, o sea, de cdigo
abierto y de licencia libre, por lo que no tendremos que desembolsar ningn
derecho de uso. Con la ventaja que esto conlleva.
Software Arduino
El Entorno de Desarrollo Integrado de Arduino (del ingls IDE - Integrated
Development Environment) es una herramienta que funciona en diferentes
plataformas (Windows, Macintosh, Linux) dedicada a la edicin y descarga
de programas en la placa Arduino. El sistema est basado en el uso de
Processing que est hecho en Java. El cdigo que se ejecuta en las placas
est basado en las libreras de aplicacin Wiring API y en las de desarrollo de
los integrados AVR.
(Nota - Para bajar la ltima versin pincha aqu). Esta es una muestra de
una versin comercial conocida por Diecimila.

Ardiuno Diecimila.
Este pequeo paquete de desarrollo integrado, formado por un
microcontrolador de la familia Atmel. En las ltimas versiones concretamente
con al Atmega168 que es bastante ms completo. Este es su patillaje.

ATmega 168
Cdigo Fuente. Las fuentes del IDE y las libreras de generacin del cdigo
est disponibles all. Visita dicho enlace para recibir instrucciones de como
descargar el cdigo. Para una informacin ms extensa sobre el sistema de
desarrollo Arduino, en espaol, este es el enlace. No entraremos con ms
detalles al respecto ya que no es el propsito de este artculo.
La herramienta de desarrollo software, corren con distintos sistemas
operativos como: Windows, Mac OS X PPC / Mac OS X Intel, en nuestro caso
nos basamos en el Windows. Este es el aspecto que tiene y como se puede
ver est basado en el Procesing o el Wiring.

Click para ampliar
Este es un medio potente para desarrollar nuestras ideas, aplicando los
conocimientos que tengamos de programacin. Existen un amplio nmero de
ejemplos sobre diferentes aplicaciones ya resueltas, las cuales, directamente
o mediante unos pocos cambios, se pueden adaptar a nuestras necesidades.
Puesta en prctica.
Para aproximarnos a lo que supone el proyecto, debemos plantear una
serie de opciones de conexionado de los diferentes elementos que
intervienen, para hacernos una idea de lo que representa lo que podemos
definir como vista general del proyecto. En la figura que sigue se presenta el
conexionado aproximado referido.

Esquemtico general
En la figura anterior, podemos apreciar tres partes bien diferenciadas. Por
una parte muestra los elementos (lector, puerta, barrera, espira) que
conectan a las entradas digitales del Arduino, Esto se repite, uno para ka
entrada y otro para la salida. Por otra parte est el conjunto, puente H y el
motor y tambin el propio Arduino.
Cabe destacar que, se ha considerado que los distintos objetos conectados
a las entradas digitales nos entregan pulsos digitales, hay que considerar
que si hubiera alguno que entregara seales analgicas, stas seales, se
pueden conectar a las correspondientes entradas del Arduino.
En cuanto al conjunto puente H, su construccin final, va a depender del
tipo de motor que se vaya a utilizar esto se dejar para solucionar al final.
Este elemento se resolver en un apartado concreto. A continuacin una
muestra del circuito integrado utilizado en aplicaciones de bajo consumo,
juguetes, robots, etc.


Segn esta tabla, el circuito dispone de una posicin para girar a derecha,
otra posicin para girar a izquierda y una opcin que asegura que el motor
no se mover. Esto nos permite realizar el control del motor dc, con la ayuda
de dos inversores y medio circuito integrado L293N, con slo poner en
estado L (bajo) la entrada de habilitado (Enhabled), podemos parar el motor
y con una sola seal de control, podremos direccionar el giro del motor. Esta
puede ser una aplicacin de lo que estamos tratando.

Nos estamos basando en un puente H que tan slo permite un consumo
de 1A. Naturalmente, para un gran nmero de aplicaciones no ser
suficiente. as que, mediante transistores adecuados, se puede lograr
un puente H que permita un mayor consumo, los transistores deben ser
escogidos con los parmetros adecuados al consumo exigido, diodos de
flyback igualmente escogidos y los inversores utilizados en este caso, deben
ser triestado, aprovechando el estado de alta impedancia para detener el
motor.

Puente H transistorizado
Con esto, de algn modo, podemos decir que tenemos resuelto, el control
de los motores, por lo que vamos a abordar otro punto. Sin lugar a dudas,
estos motores necesitan de una pequea aplicacin que permita su
verdadero control, ya que tal cual se encuentran, en estos momentos, los
motores siempre estarn girando, en una u otra direccin.
Una condicionante, para la seal que abre la puerta (de entrada o salida),
ha de disponer de un retardo que se reiniciar tantas veces como sea
necesario, permaneciendo abierta mientras que entren o salgan las personas
o vehculos segn el caso.
Supuesto 1.
Lega un vehculo, pasa la tarjeta, se autoriza la seal, abre la puerta y se
levanta la barrera, se enva una seal sonora y al mismo tiempo sirve para
encender una luz de alerta, entra el vehculo hasta que rebasa la barrera,
esto acciona la espira y sta, enva una seal durante 10 segundos de cierre
condicional, es decir, si en esos 10 segundos no recibe una nueva peticin de
apertura, la barrera se cerrar y pasados 5 segundos, la puerta se cerrar.
Supuesto 2.
Si el vehculo en circulacin no rebasa la barrera, no activar la espira
electromagntica, la seal de apertura de la puerta, tiende a cerrarse
despus de los 10 segundos. Entonces, recibe una seal de reinicio
proveniente del sistema, permaneciendo otros 10 s. abierta, esto retrasa la
bajada de la barrera ya que no ha sido pisada la espira electromagntica
todava. En caso de no recibir la seal de la espira electromagntica, se
volver a reiniciar de nuevo el tiempo de 10 segundos.
A los 5 segundos de pisar la espira electromagntica o de ser rebasada,
bajar la barreara, si la puerta si no recibe una nueva peticin de apertura
desde el lector de tarjetas o de un modo manual, permanecer abierta,
hasta terminar el perodo que le quede desde el ltimo reinicio.
Supuesto 3.
Estando abierta la puerta, llega un nuevo vehculo, se le da permiso. El
perodo de reinicio de puerta abierta, se vuelve a iniciar y el proceso
continua su rutina.
La puerta abierta, reinicia los 10 segundos de retardo, la barrera si haba
bajado, se levanta o permanece alta, hasta que se alcance la espira
electromagntica por el vehculo o se inhiba su accin de forma manual, lo
que dejar la puerta abierta de forma permanente hasta que se cierre el
sistema manual que, inhibe la funcin de la espira electromagntica y pueda
as continuar el proceso de cierre.
Como podemos manejar la seal de entrada En, para poner en marcha o
parar cada motor, cabe preguntarse, que seal podemos aprovechar, para
su control.

Observando la figura del esquemtico general y procurando aplicar los
supuestos mencionados, vemos que podemos aprovechar una seal
El cdigo.
En primer lugar, debemos asignar los pines de entrada y salida y las
variables que tenemos que usar. Basndonos en aplicar el cdigo, del sensor
de presencia de Igor Gonzlez Martn 14-01-2008 que, hemos modificado un
poco para nuestro propsito.
Estas son las variables principales que debemos considerar:

Sistema de Entrada / Salida
Una variable es un identificador con nombre y almacenaje en memoria, de
un valor para su posterior empleo segn el programa, como son, datos de un
sensor o un valor intermedio usado en un determinado clculo, etc.
cdigo.

// Asignacin de pines y funcin que desempea.

int lectorPuertaE = 3; // lector de entrada conectado a entrada
digital pin3
int lectorPuertaS = 4; // lector de entrada conectado a entrada
digital pin4
int espiraE = 5; // Sensor de espiraE de entrada pin5
int espiraS = 6; // Sensor de espiraS de salida pin6
int motorS = 7; // pin7 salida de seal para activar motores
cerrar puerta de salida y barrera
int motorS = 8; // pin8 salida de seal para activar motores abrir
puerta de salida y barrera

int motorE = 11; // pin11 salida de seal activa motor cerrar
puerta de entrada y barrera
int motorE = 12; // pin12 salida de seal activa motor abrir puerta
de entrada y barrera
// int alrma = 12; // pin12 salida para distintas actividades,
sonido, luz, etc.

// variables especficas
long tiempoEN = 60000; // Tiempo encendido en mili-segundos (1
minuto)
long retardo = 30000;
int PuertaEactiva=0; // guarda estado puertaE
int PuertaSactiva=0; // guarda estado puertaS
int SensorE=0; // guarda estado sensor espira E = SensorE
int SensorS=0; // guarda estado sensor espira S = SensorS
long contador = 0;

Generalizando, las variables son expresiones que almacenan valores, como
capturas o lecturas de los valores de entrada de un pin que puede ser digital
o analgico. Para ms informacin sobre asignacin de modos de entrada
(input) o salida (output) de los pines, debe referirse la funcin pinMode.
La funcin void setup () se llama al principio del programa. Se utiliza para
inicializar variables, definir los modos de entrada o salida de los pines,
indicar libreras, etc.
pinMode(pin, mode) Configura el pin especificado, para que se comporte
como indica mode: entrada (input) o salida (output)

void setup (){ // seccin Setup de la estructura de programa,
// establece el comportamiento de los pines

pinMode(motorE, OUTPUT); // configura interruptorE (pin12) como salida
pinMode(motorS, OUTPUT); // configura interruptorS (pin11) como salida
pinMode(lectorPuertaE, INPUT); // configura lectorPuertaE (pin3) como
entrada
pinMode(lectorPuertaS, INPUT); // configura lectorPuertaS (pin4) como
entrada
pinMode(espiraE, INPUT); // configura espiraE (pin5) como entrada
pinMode(espiraS, INPUT); // configura espiraS (pin6) como entrada

}
La seccin loop(), como su nombre indica (en ingls) hace un bucle que se
repite continuamente, provocando que responda y modifique sus estados
segn el programa que contiene. Se usa, para controlar de forma activa la
tarjeta Arduino.
El tiempo que emplea el bucle, vara segn el nmero de instrucciones que
ste contenga. Se puede conocer y controlar con las funciones de
temporizacin (millis(), delay(), etc) intercaladas en el programa a tal
efecto.
Con loop se chequean continuamente, los pines de entrada conectados y
dependiendo de si est activados o no, enviar un valor diferente a las
patillas de salida que se hayan configurado en la seccin setup().
Este ser una forma de bucle que puede servir para nuestro propsito.
void loop (){

PuertaEactiva=digitalRead(lectorPuertaE); // Lee el lectorPuertaE
PuertaSactiva=digitalRead(lectorPuertaS); // Lee el lectorPuertaS
if (PuertaEactiva==HIGH) or // Si la puertaE
(PuertaSactiva==HIGH) // o la puertaS esta activa,
reinicia el contador de tiempo
& (SensorE==HIGH) or
& (SensorS==HIGH)
{
contador=tiempoEN; // al tiempo de
encendido total.
}
if (contador > 0) { // Si el contador de
tiempo es positivo mantiene
contador = contador - 200; // encendido el
interruptor y decrementa el
digitalWrite(interruptor,HIGH); // tiempo de encendido,
digitalWrite(alrma,HIGH);
} else {
digitalWrite(interruptor,LOW); // sino, lo apaga.
digitalWrite(alrma,LOW);
}
}
Continuar ....
Novedades.
He observado que el mecanismo de las puertas debe disponer de un
contacto que indique si se ha llegado a cerrar o abrir totalmente, es decir, un
fin de carrera para la posicin de abierto y uno para la de cerrado. Esto
mejora el control de las puertas, aunque requiere de la disponibilidad de un
par de pines para su lectura en la tarjeta microcontroladora, salvo que
utilicemos alguna puerta lgica externa para este control.
Puesto que estamos en el umbral de disponibilidad de pines en el
microcontrolador, sin recurrir a estrategias para evitar dicho lmite. No es
mala idea el uso de unas puertas lgicas que mejoren el conexionado y
control de las puertas.