Montándonos un (easy) ventilador con Arduino

Hace ya unas semanas, mi amigo Pablo (@pablogonzalepe) me propuso hacer algún nuevo proyecto maker. Aprovechando que estamos en verano y que tenemos tiempo libre, pensé que estaría bien hacer algún proyecto veraniego sencillo con Arduino.

 

Busqué algunos componentes y encontré algunos motores pequeños de corriente continua y algunas piezas de plástico con forma de hélice, por lo que se puede hacer algún experimento para hacer un ventilador pequeño de mano y aprender algo más sobre el uso de motores y microcontroladores.



Realmente puedes pensar que para mover un motor pequeño se podría conectar a una pila e incluso se podría poner un botón para el encendido y el apagado del motor, de tal manera que haciendo un circuito simple analógico tendríamos listo el proyecto, y esto es cierto, sin embargo, vamos a pensar en hacerlo un poco más complejo y más completo gracias a Arduino.

 

Si conoces algo de Arduino puedes pensar en tratar a un motor como otro componente digital más. Para encender poner la salida digital a HIGH y para apagar poner a LOW ¿no? ¿digitalWrite(pin, estado)?¿Y si queremos variar la intensidad? ¿Se podría utilizar la modulación por ancho de pulso (PWM)? ¿analogWrite(pin, valorentre0y255)?.

 

Podría ser tan sencillo como eso, sin embargo, al trabajar con motores no es tan fácil ya que las placas Arduino no tienen potencia suficiente para moverlos. Si has trabajado con impresoras 3D hechas con Arduino, recordarás los pololus para controlar la potencia de los motores paso a paso. En este caso ocurre lo mismo y es necesario contar con los llamados drivers. Uno de los más utilizados es el L298N, que es un módulo muy económico y funcional.


Este componente está formado por un puente H, esto es un componente formado por 4 transistores que permiten invertir el sentido de la corriente de tal manera que se puede mover el motor en ambos sentidos. El L298N además permite controlar dos motores independientes, así como la velocidad de los mismos conectado a los pines PWN.

 

Para el control se tienen 6 pines indicados como IN1, IN2, IN3, IN4, ENA y ENB. Tres son para el control de un motor (IN1, IN2 y ENA) y los otros tres para el otro (IN3, IN4 y ENB). Los pines indicados con INX son para marcar la dirección del giro y los indicados con ENX para la velocidad.

 

Cuando ambos pines IN están en LOW no está declarado ninguna dirección de giro. Se deben alternar, por ejemplo:

 

digitalWrite (IN1, HIGH);

digitalWrite (IN2, LOW);

 

o

 

digitalWrite (IN1, LOW);

digitalWrite (IN2, HIGH);

 

para girar en el sentido contrario.

 

Por último, el pin ENA (para el caso del motor 1) se puede escribir con el control de PWM:

 

analogWrite (ENA, 128);

 

Nuestro ventilador realmente requiere de una configuración muy sencilla ya que únicamente girará en un sentido (¡en un sentido echará aire mientras que en otro lo absorbe!) pero sí utilizaremos el control de velocidad para mover más o menos aire. Y ahora que lo tenemos en un sistema digital, podremos programarlo de mil maneras distintas e incluir algunos componentes desde simples botones para encender/apagar o subir/bajar la velocidad, hasta cosas más complejas como sensores para que únicamente funcione cuando estamos cerca o poner un controlador remoto a través de distintas tecnologías como RF o NFC.

 

Si queremos hacer un ventilador más geek, podemos utilizar un ventilador de ordenador y regular también la potencia. Y si queremos molar todavía más, siempre podremos conectar nuestro ventilador a internet para poder programarlo y manejarlo desde cualquier lugar del mundo… pero esto ya es otra historia que dejaremos para otra ocasión.

 

Siente el espíritu maker y ¡hazlo tú mismo! 

 

Autor: Álvaro Núñez-Romero (@toolsprods), autor del libro Arduino para Hackers: PoCs & Hacks just for Fun (Contactar con Álvaro Núñez)