martes, 31 de marzo de 2015

Practicando con Relés y ArduinoUNO. Otra vez, #ArduinándomeLaVida


Sigo preparando mi formación para el próximo curso, en el que estrenaremos la nueva asignatura "Tecnología, programación y robótica", que sustituirá a la tecnología como tal como la entendemos ahora en la Comunidad de Madrid.
Una de los temas que incluirá esta nueva área es la conexión con el mundo físico de de los componentes electrónicos a través de microcontroladores. Se está pensando en Arduino como elemento estrella, una placa con un microprocesador capaz de controlar diferentes conexiones analógicas y digitales, e incluso capaz de conectarse a internet a través de puertos ethernet, wifi o GSM, con los elementos anexos (shields) correspondientes. Todo ello con un software IDE que permite asimismo la gestión de los pines (en los que se pueden conectar todo tipo de elementos electrónicos, como resistencias, diodos o transistores, o diversos sensores), los tiempos y la transmisión de datos bidireccional.
Una de las prácticas que he realizado es la conexión de dos diodos led de manera temporizada a través de un relé y un transistor capaz de aumentar la intensidad entregada. Un circuito aparentemente sencillo, pero que se lleva un ratito para su montaje.
Me he servido de los apuntes de Sparkfun para montar el circuito, pero realizando el montaje con elementos comprados por libre.
Un relé es un interruptor mecánico controlado eléctrica-electrónicamente desde una bobina...


...capaz de manejar diferentes voltajes. Puede controlar circuitos con una tensión bastante mayor de lo que le entrega la placa de Arduino, ya que bobina y contactos son circuitos separados. Como la bobina del relé necesita bastante energía para ser activada, la alimentamos a través de un transistor, que amplifica la señal de salida de Arduino, que es señal de entrada para la bobina.

Este sería el circuito montado:


Se trata de un circuito que activa la bobina de un relé a través de un transistor, con un diodo protector puenteando la bobina (evita los picos de intensidad de la desconexión de la bobina, que podrían dañar al transistor), y dos resistencias en la base del transistor (para limitar la señal de entrada desde Arduino) y en el contacto común del relé (para proteger a los diodos de una señal demasiado elevada). Se repite, en bucle infinito (esto lo controlamos por software) , una secuencia de cambio de contacto continuamente de uno a otro pin del relé NA-NC, con lo que encendemos y apagamos sendos diodos alternativamente.
A continuación mostramos la manera de conectarlo a la placa. El cable magenta iría al pin2 de Arduino, y los cables rojo y negro a 5V y GND, respectivamente.

Y esta es la sencilla programación en el IDE de Arduino:
const int relayPin = 2;    //Definimos dos variables: Usamos el pin 2 para manejar el transistor
const int timeDelay = 1000; // retraso en milisegundos para encender o apagar las fases

void setup()
{
  pinMode(relayPin, OUTPUT);  // Configuramos el pin 2 como salida
}

void loop()                  
{
  digitalWrite(relayPin, HIGH);  // encendemos el relé

  delay(timeDelay);              // esperamos un segundo

  digitalWrite(relayPin, LOW);   // apagamos el relé

  delay(timeDelay);              // esperamos un segundo
}
El resultado es el que ves en el siguiente vídeo.



Cuando el relé está en posición normalmente cerrado (NC), está conectado al diodo verde, y cuando se energiza la bobina del relé para cambiar a la posición normalmente abierta (NA), se conecta el diodo rojo. Todo ello es temporizado a través del programita descrito más arriba.

He probado también a ejecutarlo con otra aplicación, Scratch for Arduino (S4A.cat), diseñada en el Medialab de Cornellá, un software de programación por bloques que permite conectar el programa a la placa y gobernar los pines digitales 10-14 y analógicos 4,7,8. El funcionamiento es tan sencillo como programar esto (he bajado la secuencia a 0,5 segundos):



Con circuitos similares, gobernados por botones o teclas en scratch, y a través de una conexión bluetooth - por ejemplo -, podríamos gobernar los motores de un coche, su velocidad y dirección. Al principio cuesta un poco que la placa reconozca al software, pero los programadores de S4A te facilitan el firmware para conseguirlo, y luego funciona todo perfectamente.




No es tan complicado como parece. Todo es cuestión de ponerse, documentarse, realizar las conexiones adecuadas, la programación sencilla, y... ¡funciona!

Veremos el próximo curso cómo andamos de recursos en las escuelas.
Y si los alumnos se ponen en modo león o huevón.
;oP

@fjmontero

No hay comentarios:

Publicar un comentario

Gracias por tus comentarios!

Blogging tips