- Ordenadores
- Arduino
- Cómo hacer girar un motor de corriente continua con el Arduino
Libro Relacionado
Arduino Para Dummies
Por John Nussey
El motor DC de tu kit Arduino es el más básico de los motores eléctricos y se utiliza en todo tipo de electrónica de aficionados. Cuando se pasa corriente, gira continuamente en una dirección hasta que la corriente se detiene. A menos que estén específicamente marcados con + o -, los motores de corriente continua no tienen polaridad, lo que significa que puede cambiar los dos cables para invertir la dirección del motor.
El boceto del Motor
Necesitará un circuito de control simple para encender y apagar el motor.
Necesitas:
- Un Arduino Uno
- Una protoboard
- Un transistor
- Un motor de corriente continua
- Un diodo
- Una resistencia de 2,2 kohms
- Alambres de salto
Para alimentar el motor, es necesario enviar 5V a través de él y luego a tierra. Este voltaje hace girar el motor, pero tú tienes el control. Para dar a tu Arduino el control de la potencia del motor, y por lo tanto de su rotación, colocas un transistor justo después del motor.
El transistor es un interruptor eléctrico que puede ser activado por los pines digitales de tu Arduino. En este ejemplo es controlado por el pin 9 de tu Arduino, de la misma manera que un LED excepto que el transistor te permite encender y apagar el circuito del motor.
Este circuito funciona, pero todavía permite la posibilidad de crear una corriente inversa debido al momento en que el motor se ralentiza, o porque el motor podría estar girando. Si se genera corriente inversa, viaja desde el lado negativo del motor e intenta encontrar la ruta más fácil a tierra.
Esta ruta puede ser a través del transistor o a través del Arduino. Usted no puede saber con seguridad lo que sucederá, así que necesita proporcionar una manera de controlar este exceso de corriente.
Para mayor seguridad, se coloca un diodo a través del motor. El diodo mira hacia la fuente de voltaje, lo que significa que el voltaje es forzado a través del motor, que es lo que usted desea. Si la corriente se genera en la dirección opuesta, ahora se bloquea para que no fluya hacia el Arduino.
Si coloca el diodo de forma incorrecta, la corriente puentea el motor y crea un cortocircuito. El cortocircuito intenta conectar a tierra toda la corriente disponible y podría romper su puerto USB o al menos, mostrar un mensaje de advertencia, informándole de que su puerto USB está consumiendo demasiada energía.
Construye el circuito como se muestra, y abre un nuevo sketch de Arduino. Seleccione el pulsador Guardar y guarde el sketch con un nombre memorable, como myMotor, y luego escriba el siguiente código:
int motorPin = 9;void setup() { pinMode(motorPin, OUTPUT);}void loop() { digitalWrite(motorPin, HIGH); delay(1000); digitalWrite(motorPin, LOW); delay(1000);}
Después de escribir el sketch, guárdelo y pulse el botón Compilar para comprobar el código. El entorno de Arduino comprueba si hay errores de sintaxis (gramática del código) en tu código y los resalta en el área de mensajes. Los errores más comunes incluyen errores tipográficos, falta de punto y coma y sensibilidad a las mayúsculas y minúsculas.
Si el sketch se compila correctamente, haga clic en Cargar para cargar el sketch a su foro. Usted debe ver su motor girar por un segundo y detenerse por un segundo repetidamente.
Si eso no es lo que sucede, debería revisar su cableado:
- Asegúrese de que está usando el pin número 9.
- Compruebe que su diodo está orientado correctamente, con la banda orientada hacia la conexión de 5v.
- Comprueba las conexiones de la protoboard. Si los cables o componentes de salto no se conectan utilizando las filas correctas en la protoboard, no funcionarán.
El desglose del croquis del motor
Este es un sketch muy básico, y puedes notar que es una variación del sketch de Blink. Este ejemplo cambia el hardware pero usa el mismo código para controlar un LED.
En primer lugar, la clavija se declara utilizando la clavija digital 9.
int motorPin = 9;
En la configuración, el pin 9 se define como una salida.
void setup() { pinMode(motorPin, OUTPUT);}
El lazo le dice a la señal de salida que vaya a HIGH, espere 1000mS (1 segundo), vaya a LOW, espere otros 1000mS, y luego repita. Este escenario le da lo más básico del control del motor, diciéndole al motor cuándo encenderlo y apagarlo.
void loop() { digitalWrite(motorPin, HIGH); delay(1000); digitalWrite(motorPin, LOW); delay(1000);}