Paso 5.2

Detector acústico de baja tensión y reinicio

Cuando el suministro de voltaje eléctrico cae por debajo del nivel que el dispositivo necesita para funcionar correctamente se produce un apagón parcial. La tarjeta se protege a sí misma de esta situación haciendo que el procesador y los microchips de memoria permanezcan en estado de reposo hasta que el suministro de energía vuelva a niveles normales.

Una bajada de tensión en Vin por debajo de 5,2 V provoca un voltaje inferior a 4,3 V en el regulador interno de la tarjeta, valor insuficiente que origina una anomalía y que provoca, como hemos señalado, que se ponga en marcha un mecanismo de autoprotección del sistema en el que tanto el procesador como la memoria pasan a un estado de reposo que detiene la ejecución de instrucciones. Cuando el voltaje vuelve a niveles adecuados, la tarjeta se pone en funcionamiento de nuevo pero no donde había quedado ejecutándose el programa, sino desde el principio del mismo. Es lo mismo que sucede cuando pulsamos el botón de reinicio del sistema.

Cuando las baterías están bajas, es posible que estas bajadas de tensión hagan reiniciarse al robot cuando menos lo esperamos, haciendo que tome direcciones erróneas, dé vueltas sobre sí mismo etc.

Esto hace que un programa que indique la posibilidad de reinicio del robot sea muy útil (de esta forma sabemos claramente cuál ha sido la causa del funcionamiento incorrecto de nuestro robot). Una forma para avisar de un posible reinicio es incluir una señal inconfundible al comienzo de todos los programas del robot. La señal se produce cada vez que se conecta el suministro de energía y cuando se produce un reinicio debido a una bajada de tensión.

En este ejercicio vamos a colocar un dispositivo llamado zumbador piezoeléctrico que se puede usar para generar diferentes tonos en función de la frecuencia de las señales que se envíen desde la tarjeta.

El programa que vamos a cargar a continuación produce un pitido a través del zumbador. Utiliza el comando FREQOUT para enviar las señales de la frecuencia que se deseemos por una patita de la tarjeta. Su sintaxis es como sigue:

                FREQOUT Pin, duración, frecuencia1, {Frecuencia2

Un ejemplo sería FREQOUT 4, 2000, 3000: envía una señal de 3000 hercios (3 kHz) durante 2000 ms (2 segundos) por el pin 4.

En este punto debemos tener presente que la frecuencia es una magnitud que mide el número de repeticiones por unidad de tiempo de cualquier fenómeno o suceso periódico. Nuestro zumbador funciona gracias a la piezoelectricidad: es un fenómeno presentado por determinados cristales que al ser sometidos a tensiones mecánicas adquieren una polarización eléctrica en su masa, apareciendo una diferencia de potencial y cargas eléctricas en su superficie. Este fenómeno también se presenta a la inversa, esto es, se deforman bajo la acción de fuerzas internas al ser sometidos a un campo eléctrico. El efecto piezoeléctrico es normalmente reversible: al dejar de someter los cristales a un voltaje exterior o campo eléctrico, recuperan su forma.

De esta forma, cuando aplicamos cambios de voltaje a gran velocidad hacemos que el cristal piezoeléctrico cambie de forma rápidamente. Esto provoca una vibración. Los objetos que vibran hacen que el aire que los rodea vibre también, y esta vibración es lo que nuestros oídos detectan como sonido y tonos.

La frecuencia se mide en hercios (Hz). Un hercio representa un ciclo por cada segundo, entendiendo ciclo como la repetición de un suceso. De esta forma, un kHz representa mil ciclos por segundo.

Más abajo se muestra el símbolo del zumbador y el esquema de conexión del terminal positivo del zumbador a la patita P4 de E/S.

zumbador

Para el montaje tomamos el zumbador y lo colocamos sobre la tarjeta. Vemos que una pegatina indica cuál de las dos patas es de signo positivo así que solo tenemos que presionar y listo. Para dejar más espacio para el resto de componentes, y dado que este elemento quedará fijo de forma permanente, es mejor colocarlo lo más esquinado posible.

Una vez colocado, sólo tenemos que realizar la conexión de los cables, uno conectando el polo positivo del zumbador a P4 (cable azul) y el otro al conector de energía (Vss)

Programa ejemplo

El siguiente programa emite un pitido del zumbador al iniciarse su ejecución y luego envía mensajes visualizadores de DEBUG cada medio segundo dentro de un bucle infinito. Se puede simular una bajada de tensión presionando el botón de reinicio o bien desconectando la batería del robot; entonces el programa se reiniciará, emitiendo un pitido de nuevo. Cada vez que se produce un pitido sabemos que el programa se ha iniciado desde el principio.

  1. ‘ Programa de reinicio.  Indicadorinicioreinicio.bs2
  2. ‘ Prueba del altavoz piezoeléctrico.
  3. ‘ {$STAMP BS2}
  4. ‘ {$PBASIC 2.5}
  5. DEBUG CLS, “Beep!!!”                         ‘visualiza el mensaje mientras suena
  6. FREQOUT 4, 2000, 3000                      ‘señal sonora
  7. DO                                                         ‘bucle DO…LOOP
  8. DEBUG CR, “Esperando el reinicio”      ‘visualiza el mensaje
  9. PAUSE 5000                                          ‘cada medio Segundo
  10. LOOP                                                     ‘hasta que se reinicie el sistema

El programa comienza mostrando el mensaje (en la pantalla del ordenador) “Beep!!!” cuando se inicia su ejecución. Inmediatamente envía una señal de 3 kHz al zumbador durante 2 segundos. Como la tarjeta ejecuta muy rápidamente las instrucciones dará la sensación de que el mensaje se muestra al mismo tiempo que el zumbador comienza a pitar.

Cuando cesa el pitido, el programa entra en un bucle infinito mostrando una y otra vez el mensaje “Esperando el reinicio”. Cada vez que se produzca un reinicio, bien porque se aprieta el botón o porque se desconectan las baterías o pierden tensión, el programa se reiniciará.

De ahora en adelante vamos a usar este programa cada vez que escribamos otro. Lo consideraremos parte de la rutina de inicialización de cada programa.







Deje un comentario