[Proteus versión 8.1]

En lecciones anteriores hemos visto el uso de las entradas digitales y de las entradas analógicas. Vamos en esta lección a mezclar ambos conceptos para lograr utilizar en nuestro equipo Arduino entradas digitales con vigilancia de cable. Para entender que queremos decir, vamos a poner un ejemplo en el que sea necesario vigilar la correción del cableado en una entrada digital.

Supongamos que nuestro equipo Arduino lo utilizamos para controlar algún tipo de máquina móvil, por ejemplo la apertura y cierre de la puerta de un garaje. Cualquier máquina móvil encierra un cierto riesgo potencial para las personas que la utilizan. Siguiendo con nuestro caso, la puerta del garaje puede cerrarse cuando alguien está en el medio y pillarle. Para prevenir esta posibilidad, dotamos a nuestro sistema de control de un pulsador de parada, que detiene el movimiento de la puerta en cuanto se pulsa. El pulsador de parada lo hemos diseñado utilizando uno de sus contactos auxiliares como entrada digital de nuestro equipo Arduino. Por lo tanto tendríamos este esquema de montaje.

Lec08 001

Así, cuando nuestro amigo ve que la puerta que se está cerrando puede pillarnos, pulsará sobre el botón de parada, activará una de las entradas digitales de nuestro equipo Arduino y éste se encargará de detenerla evitando el accidente y todos estaríamos muy satisfechos y orgullos de nuestro trabajo.

Lec08 002

Pero, ¿qué ocurre si el cable que une el pulsador de parada con nuestro equipo Arduino se corta. Pues que cuando nuestro amigo vea el peligro y pulse sobre el pulsador de parada el equipo Arduino no recibirá la señal (porque el cable está roto) y no detendrá la puerta y nosotros acabaremos en el Hospital.

Lec08 003

Para evitar este riesgo, nuestra primera solucion consiste en utilizar un contacto normalmente cerrado. De esta forma nuestro equipo Arduino necesita recibir una señal activa (un uno) en la entrada digital donde conectamos el pulsador de parada para permitir el funcionamiento de la máquina. Al actuar sobre el pulsador de parada interrumpimos el circuito, impedimos la llegada de la señal y el equipo ordenará detenerse a la puerta. Si el cable se corta, la señal del pulsador de parada tampoco llega y, por lo tanto, en caso de ruptura del cable, la máquina se para.

Lec08 004

Sin embargo los riesgos aún contínuan. Los problemas con los cables no siempre están motivados por su ruptura. En ocasiones porque los cables están pillados o machacados por alguna máquina, o porque existen humedades y condensaciones en ciertas cajas de conexión, lo que se produce es el cortocircuito entre los dos hilos.

Lec08 005

En estos casos, al actuar sobre nuestro pulsador de parada, el circuito no se interrumpe y el equipo Arduino no es capaz de ver la orden y, lógicamente, no ordena la parada de la puerta.

Así pues, es necesario buscar un sistema que nos asegure que en todos los casos conocemos la situación real de un pulsador y que diferencie entre pulsador abierto, cerrado, cable roto y cable cortocircuitado. Para ello, y si recordáis nuestras primeras lecciones, las entradas digitales no nos pueden ayudar. Una entrada digital sólo distingue entre dos estados posibles y aquí tenemos que distinguir entre cuatro. Por eso, las entradas analógicas deben venir en nuestra ayuda.

Para implementar nuestra solución nos vamos a basar en el esquema siguiente:

Lec08 008

Básicamente, hemos utilizado dos entradas digitales IO2 e IO3 para manejar dos leds. De esta manera uno de ellos (D1) lo utilizaremos para mostrar la salida con la que controlamos nuestra puerta (luce cuando ordenamos detenerse a la puerta) y el otro (D2) lo utilizaremos para indicar que tenemos un problema en el cable (luce cuando el cable está mal y se apaga cuando el cable está en condiciones correctas).

También hemos conectado un terminal virtual para visualizar el valor de la entrada analógica.

Por último hemos hecho el siguiente esquema para controlar nuestro pulsador de parada. Mostramos esta parte ampliada para que se vea con más detalles y la comentamos.

Lec08 009

Desde nuestro equipo Arduino salen los +5V hacia el campo. El cable se prolonga hasta el contacto situado en la parada de emergencia. Allí hemos hecho el siguiente montaje. En serie con el contacto colocamos una resistencia de 120 Ohms y en paralelo con el mismo otra de 220 Ohms. El cable retorna y lo conectamos a nuestra entrada analógica AD0. Además a la entrada (dentro de nuestro equipo) conectamos en ese mismo punto una resistencia de 220 Ohms a tierra. Es decir, que lo que estamos haciendo es un simple divisor de tensión que varía según que el pulsador esté actuado o no.

Lec08 010

Lec08 011

Además hemos añadido, con caracter pedagógico, cuatro contactos para ayudarnos a simular los posibles fallos que se pueden producir en nuestro cable. Una derivación a tierra del hilo conectado a +5V, una derivación a tierra del hilo conectado a la entrada analógica, un cortocircuito entre ambos hilos y la ruptura de uno de los hilos. De esta forma es sencillo comprobar todos los casos posibles y ver como reacciona nuestro circuito.

El programa que corre en nuestro Arduino es muy sencillo.

Lec08 012

 

Primero definimos una variable que almacena la lectura analógica. Luego definimos los pines 2 y 3 como salidas y la velocidad de nuestro puerto serie a 9600 baudios. El bucle principal del programa lee el valor de la entrada analógica, lo envía por el puerto serie (hemos puesto un retardo de 0,1 segundos para no volvernos locos con tantas medidas) y luego evaluamos el valor leído. Si es menor de 350 o mayor de 700 generamos un error y activamos la salida del led D2. Si está comprendida entre 350 y 500 el pulsador está sin cerrar. Si, por último está comprendido entre 500 y 700 el pulsador está cerrado y activamos nuestra salida del led D1 (la orden de parada de la puerta).

La ejecución de este ejemplo y el estudio detallado de los valores obtenidos en cada posible situación se ven sencillamente utilizando el terminal virtual. El circuito con el interruptor cerrado se muestra a continuación. El valor leído es de 663:

Lec08 013

El circuito con el cable cortocircuitado genera una lectura de 1023:

Lec08 014

Por último queremos destacar el caso de que el hilo que lleva los +5V se derive a tierra. Observe que Proteus nos permite seguir la simulación. En realidad, en la vida real estaríamos cortocircuitando la fuente de +5V que alimenta nuestro Arduino y el equipo se apagaría. Por eso es necesario siempre proteger y separar la alimentación de las entradas que salen al campo, pero eso lo dejamos para otro momento. Por ahora, a los efectos de lo que nos ocupa en esta leccion nos sirve este esquema.

Lec08 015

De esta manera terminamos con la utilización de las entradas analógicas para implementar entradas digitales con vigilancia de cable.

 

Comparte este artículo en redes sociales

Submit to FacebookSubmit to Google PlusSubmit to TwitterSubmit to LinkedIn