Saturday, 20 April 2024
MONOGRÁFICO: Arduinoblocks - Capítulo 4 PDF Print E-mail
EQUIPAMIENTO TECNOLÓGICO - Didáctica de la tecnología
Written by Leopoldo Mosquera   
Wednesday, 29 December 2010 21:27
Article Index
MONOGRÁFICO: Arduinoblocks
Capítulo 1
Capítulo 2
Capítulo 3
Capítulo 4
Capítulo 5
All Pages

Capítulo 4

 1) Introducción

Una posibilidad que proporciona la tarjeta Arduino, como ya comenté en el primervcapítulo, es la de crear señales de salida analógicas, es decir, variables en el tiempo y en su valor de tensión, desde 0 a 5V. El programa Amici permite programar estas señales de tipo PWM (pulse width modulation) en los pines 9, 10 y 11, asignando su tensión de salida gradual con números del 0 al 255, lo que probaré a continuación.

 

2) Iluminación variable de un diodo led

La utilización del bloque SONIDO para que suenen distintas notas musicales a través del piezoeléctrico conectado al pin digital 9 de nuestra placa, es una forma sofisticada de aprovechar una salida analógica de la tarjeta Arduino, en este caso, con una estrategia difícil de explicar a nuestros alumnos, ya que los tonos se calculan con el número inverso a la frecuencia de cada nota musical, y así aparece explicitado en el editor de texto de Arduino, a través de la librería denominada por el programa <Melody.h >.

 




Más comprensible para ellos puede ser la propuesta de crear un programa que realice una secuencia de cuatro intensidades de iluminación en el diodo led conectado al pin 11 de nuestra placa utilizando, por ejemplo, los valores 5, 50, 100 y 200 en la pestaña de cada bloque ON. La luminosidad puede graduarse de 0 a 255 mediante la función analogWrite(), de tal modo que si asignamos el valor 64 el diodo led brillará al 25% de su capacidad, con el valor 128 lo hará al 50%, y así sucesivamente: variamos, de forma imperceptible por nuestra vista, la relación entre el tiempo de encendido y apagado del led en un período de tiempo mínimo.

 

3) Creación de un detector de presencia utilizando el bloque METODO

 Las alarmas y detectores de presencia son dispositivos de control muy utilizados en nuestra vida cotidiana para crear sistemas antirrobo, la apertura automática de puertas de garaje o de comercios, activar escaleras mecánicas, barreras de paso de vehículos o la cinta corredera en la caja de un supermercado. Los sensores más utilizados en estos ejemplos son los detectores de presión (que actúan como un pulsador) y los conjuntos emisor-receptor de infrarrojos.

 

Voy a programar una alarma acústica-luminosa utilizando mi placa, para generar simultáneamente, una melodía y la variación de luz de un diodo led, cuando aproxime mi mano a un sensor de infrarrojos.

 

Si conecto un detector tipo Sharp GP2D12 en la entrada analógica 0, puedo asignar (con la pestaña “LEER VALOR” de Amici) un valor umbral de distancia que superado, produzca el sonido de alarma o, por contra, la variación de brillo en el led como señalización del sistema. Este sensor es más sofisticado y caro (unos 15 euros) que los que he utilizado hasta ahora, pero me parecía interesante mostrarlo en un ejemplo, ya que su conexionado es muy sencillo y funciona como un potenciómetro que varía su valor resistivo al situarse un elemento frente a él, a mayor o menor distancia (desde 10 a 80 cm); la luz infrarroja de medio alcance procedente del emisor rebotará en el objeto detectado y llegará una señal de luz al receptor (ambos formando una única pieza). Simplemente dispone de tres cables que conectar: negro en GND, rojo en + 5V y amarillo en al pin de entrada analógica elegido.

 


Para hacer más interesante la programación, voy a crear un MÉTODO con Amici, es decir, voy a incorporar dos subprogramas dentro del programa principal, que en mi caso he denominado SEÑAL (reduciendo el último ejemplo comentado) y SIRENA (compuesto de dos notas) .



 

 

Con esta estrategia no sólo evito el amontonamiento de bloques gráficos en la consola de Amici, sino que además ordeno el programa en el editor de texto, mejorando claramente su legibilidad. Al crear distintos MÉTODOS e incorporarlos al bloque LOOP, aplico el concepto de modularidad básico en la programación informática, el cual me parece una buena práctica que conviene forzar a los alumnos a utilizar en los ejercicios que les propongamos.

 

4) Arranque y cambio de velocidad de un pequeño motor

 Del mismo modo que se gradúa la luminosidad, podría modularse la velocidad de giro de un motor, pero antes de poder realizar esta experiencia, debemos saber cómo podemos activar este dispositivo con la tarjeta Arduino, ya que ésta no proporciona directamente desde sus pines digitales programados como salidas, la corriente necesaria (superior a 20 mA) para que un motor de 3 V, típico del taller de Tecnología, se ponga en funcionamiento.


Tenemos que diseñar una nueva placa con un transistor que realice la función de interruptor del circuito de alimentación del motor desde la tarjeta Arduino. La señal de salida emitida desde un pin digital será recibida por la base del transistor, conectando colector y emisor; de este modo se cerrará el circuito del motor, establecido desde una de las tomas de tensión de Arduino , pasando por el motor, atravesando el transistor y terminando en la patilla del emisor conectada a masa (GND).

 



 

He decidido utilizar el transistor Mosfet denominado IRF520, ya que lo recomiendan en diversas publicaciones de iniciación al uso de Arduino. Se trata de una tecnología de fabricación de transistores que funciona al aplicar tensión en la patilla denominada “gate” (equivalente a la “base” de los transistores comunes) y que conmuta a velocidades similares a las de trabajo del microprocesador ATmega de la tarjeta.

 

Como ya expliqué al inicio de este monográfico, soy partidario de crear placas para pinchar en los pines de Arduino al trabajar con los alumnos, de modo que he diseñado una sencilla de 5 pistas de cobre que me permite conectar un motor (con la salida 10) y encender un diodo led (con la 11); ambos dispositivos son susceptibles de ser modulados por pulsos, y además no renunciamos a conectar un piezoelétrico en el pin 9 para crear sonidos. Las líneas azules del esquema son cables de conexión en superficie entre pistas, y las verdes líneas de corte de las pistas de cobre en el reverso de la placa.

 


Para alimentar el motor debe utilizarse el pin denominado Vin, que proporciona una tensión independiente (cuando se conecta en la entrada del jack una fuente de alimentación externa, por ejemplo, una pila de 9 V) de la utilizada por el microprocesador para su normal funcionamiento, evitándose así fluctuaciones o inestabilidad durante los tiempos de activación del motor. Además conviene añadir un diodo normal en paralelo con las dos patillas de conexión del motor (conectando el cátodo del diodo a la entrada de tensión) para, como se hace comúnmente en los circuitos electrónicos con salida a través de relés, evitar que las corrientes creadas por el motor al girar su bobina dentro de un campo imantado (efecto generador), atraviesen el transistor.

 

He probado a programar la variación de la velocidad del motor, del mismo modo que lo hice con la luminosidad del diodo led, y ha funcionado perfectamente, si bien se observan dos aspectos: por un lado, la inercia del eje del motor hace más difícil apreciar las transiciones entre las distintas velocidades, y por otro, con valores de energía (denominación utilizada por el programa en la ventana del actuador con posibilidad de PWM) inferiores a 128 (modulación on-off al 50%) al motor le cuesta arrancar por sí mismo.

 

5) Programación de un ventilador con termostato

El dispositivo de control de mayor presencia actualmente en nuestras viviendas, tanto incorporado en distintos electrodomésticos (horno, frigorífico, radiadores, etc.) como presente en las modernas instalaciones de calefacción, es el termostato; de hecho, es el ejemplo que utiliza la mayoría de libros de texto de Secundaria para explicar el funcionamiento de un bucle de control en lazo cerrado o con realimentación.

 

Podemos nosotros construirnos un sensor de temperatura (ver capítulo 3) y conectarlo a nuestra placa para motor, ya que ésta incorpora una clema, aprovechando los pines de 5 V y GND de la tarjeta Arduino, que permite establecer una corriente a través de la resistencia variable NTC (o de cualquier otro sensor). Ahora la idea es enfrentar el pequeño motor con aspas al sensor, para provocar con su calentamiento (acercando el soldador o presionando con nuestros dedos la NTC) y refrescamiento (con el aire generado por las aspas), un encendido y apagado contínuo del motor, en un bucle sin fin.

 


El reto en la programación será, tras conectar el cable de datos amarillo en el pin analógico 0, determinar el valor umbral que, monitorizado a través del cable USB y mediante la pestaña “LEER VALOR” de la consola de Amici, provoque las transiciones de giro o parada en el motor, espaciando dichos estados en el tiempo según calentemos más o menos la resistencia.



 

6) Conclusión

La placa que he utilizado para activar un motor con la tarjeta Arduino abre la posibilidad el control de los pequeños proyectos que construimos con nuestros alumnos en el taller y que programamos con tarjetas comerciales tipo Enconor. También podríamos modificar el funcionamiento de pequeños juguetes con motor,

luz o sonido; por último, duplicando la presencia del transistor en una placa, tendremos la oportunidad programar un dispositivo móvil sencillo.



 

Revista INTEFP

Marcadores Sociales

Facebook MySpace Twitter Delicious Google Bookmarks 

Artículos relacionados