16 dic 2012

Arranque, parada e inversión de giro en motores con Arduino

Continúo mi andadura con Arduino y más concretamente con el proyecto relacionado con el coche. Una de las piezas claves de este son los motores que lo mueven, por lo que resulta vital poder controlarlos. A simple vista, se plantea un problema, y es que, según indican en la propia web de Arduino la corriente máxima que pueden suministrar la salidas de nuestra arduino uno es de 40 mA, que resultará insuficiente para mover un motor. Tal es así que puede resultar incluso perjudicial para nuestra tarjeta arduino el intentar conectarlo directamente, pudiendo dañar partes de ésta. Es por ello que necesitamos incluir algún otro elemento. Aquí es donde entra en juego el transistor, que actúa como interruptor. En el mercado de la electrónica existen multitud de ellos, por lo que es conveniente saber elegir cuál puede valer. Los factores más importantes a tener en cuenta son el voltaje máximo que admiten y la corriente máxima. Transistores bipolares como el 2N2222A (admite hasta 800 mA) o TIP 120 (que admite hasta 5A) son suficientes para los motores pequeños que usaré. Información relativa a cómo controlarlo hay mucha. Mis referencias son ésta y ésta otra. Además, al disponer en nuestro arduino de salidas PWM, podemos controlar la velocidad del motor.
Ahora bien, ¿qué ocurre si queremos realizar inversión de giro?. Las referencias indicadas anteriormente explican cómo controlar el motor para que gire en un sólo sentido. Si queremos además inversión de giro podemos utilizar un puente en H, denominado HBridge. Uno de los puentes más populares para pequeños proyectos es el L293D, del cuál podéis encontrar un tutorial sobre cómo usarlo con arduino aquí. Como yo no disponía de ningún HBridge a mano, he decido crearlo por mi cuenta. El montaje en la breadboard lo podéis encontrar en la imagen a continuación
Esquema de conexionado para crear un HBridge

Básicamente consiste en cuatro transistores de los cuales dos de ellos estarán activos para que el motor gire en un sentido y los otros dos para que lo haga en el contrario. En la imagen también se pueden apreciar 4 diodos que son muy importantes para proteger el circuito. Tratan de evitar el efecto flyback, que básicamente consiste en unos voltajes de pico muy elevados que se producen cuando se intenta un cambio de giro en un motor. Si queréis saber más al respecto podéis consultar en la wikipedia.
A continuación os dejo un vídeo de mis montajes en funcionamiento, el primero de ellos controlando el motor remotamente y el segundo realizando inversiones de giro (perdonad por la escasa calidad)

Y por último comentar que he realizado mi primer proyecto en Fritzing. Incluyo aquí el enlace.

2 comentarios:

  1. Interesante, bastante util

    ResponderEliminar
  2. Gracias Autopsic. Por cierto, comentarte que quiero preparar una entrada relacionada con la pregunta que me hiciste de las luces para el estudio. Básicamente consiste en programar el puerto USB, conectarlo a Arduino y controlar los actuadores que sean necesarios. A ver si puedo prepararlo pronto.

    ResponderEliminar