La conexión de motores a la placa Arduino suele generar algunos inconvenientes, sobre todo entre los usuarios con menos experiencia. Algunos incluso intentan conectar el motor directamente a los pines de la placa. Esto es un grave error que puede dañar seriamente tu placa Arduino, más allá del tamaño del motor.
La corriente máxima que Arduino puede suministrar es de 20 mA y el motor más pequeño puede consumir fácilmente 100 mA. Conectando el motor directamente a la placa la podemos arruinar en un abrir y cerrar de ojos.
En este proyecto veremos cómo podemos utilizar un transistor simple y barato para controlar el motor. Esto será un simple circuito, no un puente H completamente funcional, pero servirá muy bien para controlar el motor de forma sencilla.
Control de motores Arduino DC
Estos son componentes que necesitaremos:
- Placa Arduino Uno
- Transistor BC547
- 1 resistencia de 47K ohmios
- Motor de corriente continua
- Protoboard
- Cables
Primero comencemos con el cableado. Asegúrate de que el transistor esté conectado correctamente. Si no tienes un transistor BC547 puedes utilizar un transistor NPN diferente, sólo asegúrate de que su voltaje y corriente máximos sean suficientes para tu motor.
También puedes experimentar con el valor de la resistencia, aunque la de 47 kΩ es la que mejor funciona.
El programa para este proyecto es súper simple, sólo dos bucles for para encender y apagar lentamente el motor utilizando PWM (modulación por ancho de pulso). Este proyecto se trata más de hardware que de software, por eso el código es tan simple.
void setup() { //declaramos el pin 13 como salida para controlar el transistor pinMode(13, OUTPUT); } void loop() { //incrementamos lentamente la señal PWM en el transistor for (int a = 0; a < 255; a++){ analogWrite(13, a); delay(10); } //disminuyendo lentamente la señal PWM en el transistor for(int a = 255; a> 0; a--){ analogWrite(13, a); delay(10); } }
Parece muy sencillo verdad? Lo es. Esta es la forma más facil y económica de controlar un motor de corriente continua con Arduino y se puede utilizar en cualquier proyecto.
Otros Proyectos con Arduino que pueden interesarte: