Cómo controlar el motor DC con Arduino

Cómo controlar el motor DC con Arduino
Arduino es un tablero de desarrollo electrónico basado en hardware y software. Arduino ofrece libertad a sus usuarios para diseñar proyectos de varios niveles basados ​​en diferentes módulos, hardware y motores. Con el tiempo, la demanda de Arduino para proyectos de robótica está aumentando. Cuando hablamos de proyectos robóticos, lo primero que viene a la mente es motores y controladores. DC Motors juega un papel vital en la construcción de proyectos de robótica. Aquí discutiremos cómo se pueden usar DC Motors con Arduino.

Control de motor DC con Arduino

Un motor de CC es uno de los tipos de motor ampliamente utilizados. Viene con dos cables, uno positivo y el segundo negativo. Si conectamos estos dos cables con una batería o fuente de alimentación, el motor comenzará a girar; Sin embargo, si revertimos la polaridad del motor terminal comenzará a girar en la dirección opuesta.

Usando Arduino, podemos controlar la velocidad y la dirección del motor de una manera más flexible. Para controlar el motor con Arduino, usamos un módulo de controlador de motor. Un módulo de controlador de motor es un circuito externo que puede interactuar un arduino con cualquiera de los motores de CC.

Aquí usaremos el Ln293d Módulo del controlador del motor IC para controlar la dirección y la velocidad del motor de CC. LN293D es un módulo de controlador de motor de 16 pines que puede controlar dos motores DC simultáneamente. Puede conducir un motor con corriente de hasta 600 mA por canal y rango de voltaje que comienza desde 4.5 hasta 36V (en el pin 8). Usando este módulo de controlador, podemos controlar múltiples motores de CC de tamaño pequeño.

Diagrama de circuito
Para controlar el motor de CC, diseñe el circuito de acuerdo con el esquema mencionado. Conecte el pin 2 y 7 del IC del controlador con el pin D10 digital y D9 de Arduino Uno respectivamente. Usando pines digitales, controlaremos la dirección y la velocidad de nuestro motor. El pin 1 y 8 reciben una lógica de alto nivel utilizando el voltaje de nivel lógico de 5V Arduino. El motor DC está conectado en el pin 3 y 6 del módulo del controlador. Los pines 4 y 5 son cortos debido a la tierra común en el módulo del controlador del motor.

Usando el pin 9 y 10 podemos controlar la dirección del motor. Cuando el pin 10 es alto y el pin 9 es un motor bajo, se aplicará en una dirección y girará en la dirección opuesta, se aplicarán condiciones inversas.

Esquema

Código

const int dcmotorSignal1 = 9; /*Pin 9 para el motor Primera entrada*/
const int dcMotorSignal2 = 10; /*Pin 10 para la segunda entrada del motor*/
Configuración vacía ()

PinMode (dcMotorSignal1, salida); /*Inicializar el pin DCMotorSignal1 como salida*/
PinMode (dcMotorSignal2, salida); /*Inicializar el pin DCMotorSignal2 como salida*/

bucle vacío ()

en sentido horario (200); /*girar en sentido horario*/
retraso (1000); /*Retraso de 1 segundo*/
Antiguismo (200); /*Gire en dirección antihorario*/
retraso (1000); /*Retraso por 1 segundo*/

void en sentido horario (int rotational speed) /*Esta función conducirá y girará el motor en sentido horario* /

Analogwrite (DCMotorSignal1, Rotational Speed); /*establecer la velocidad del motor*/
Analogwrite (dcMotorSignal2, bajo); /*Detenga el pasador DCMotorSignal2 del motor*/

Void Anticlockwise (int rotational speed) /*La función conducirá y girará el motor en dirección antihorario* /

Analogwrite (dcMotorSignal1, bajo); /*Detener el pasador DCMotorSignal1 del motor*/
Analogwrite (DCMotorSignal2, Rotational Speed); /*establecer la velocidad del motor*/

Aquí en el código anterior inicializamos dos pines digitales para el control del motor DC. El pin 9 digital se establece como entrada para el primer pin y D10 se establece como entrada para el segundo pin del motor DC. A continuación usando el pina función inicializamos ambos pines digitales como salida.

En el bucle Sección del Código Dos funciones llamadas en sentido horario y antihorario se inicializan con una velocidad de rotación de 200. Después de eso, utilizando dos funciones vacías en sentido horario y en sentido antihorario, cambiamos la dirección de la rotación del motor mediante la configuración del pin 9 y 10 como bajo y alto.

Por qué usamos el módulo de controlador de motor con Arduino?

Los controladores del motor pueden tomar una señal de baja corriente de un Arduino o cualquier otro microcontrolador y aumentarla en una señal de alta corriente que pueda conducir fácilmente cualquier motor de CC. Normalmente, Arduino y otros microcontroladores funcionan con baja corriente, mientras que para alimentar motores de DC requieren una entrada constante de alta corriente que Arduino no puede proporcionar. Arduino puede proporcionarnos un máximo de 40 mA de corriente por pin, que es solo una fracción de lo que un motor DC requiere para operar. Los módulos del controlador del motor como L293D pueden controlar dos motores y proporcionar a los usuarios mano libre para controlar la velocidad y la dirección de acuerdo con su facilidad.

Nota: Mientras usa múltiples motores con Arduino, se recomienda utilizar un suministro separado externo para motores de CC junto con el módulo de controlador de motor porque Arduino no puede retener la corriente más que 20 mA y normalmente los motores toman la corriente mucho más que esto. Otro problema es contragolpe, Los motores paso a paso tienen componentes magnéticos; Continuarán creando electricidad incluso cuando se corta la energía, lo que puede provocar suficiente voltaje negativo que pueda dañar la placa Arduino. Entonces, en resumen, es necesario un controlador de motor y una fuente de alimentación separada para ejecutar un motor de CC.

Conclusión

DC Motors es un componente importante para diseñar proyectos de robótica basados ​​en Arduino. Uso de DC Motors Arduino puede controlar el movimiento y la dirección de los periféricos del proyecto. Para controlar estos motores sin problemas, necesitamos un módulo de controlador que no solo guarde la placa Arduino de los picos de corriente extremos, sino que también brinde control completo al usuario. Este artículo lo guiará para diseñar e interfaz de motores DC en cualquier proyecto Arduino.