En este tutorial vamos a conectar un motor de CC a Arduino UNO y controlar su velocidad usando el concepto PWM (Modulación de ancho de pulso). Esta función está habilitada en UNO para obtener voltaje variable sobre voltaje constante. El método de PWM se explica aquí; considere un circuito simple como se muestra en la figura.
Si se presiona el botón si la figura, entonces el motor comenzará a girar y estará en movimiento hasta que se presione el botón. Esta presión es continua y está representada en la primera ola de la figura. Si, para un caso, considere que el botón se presiona durante 8 ms y se abre durante 2 ms durante un ciclo de 10 ms, durante este caso, el motor no experimentará el voltaje completo de la batería de 9 V ya que el botón se presiona solo durante 8 ms, por lo que el voltaje del terminal RMS en el motor rondará los 7V. Debido a este voltaje RMS reducido, el motor girará pero a una velocidad reducida. Ahora, el encendido promedio durante un período de 10 ms = tiempo de encendido / (tiempo de encendido + tiempo de apagado), esto se llama ciclo de trabajo y es del 80% (8 / (8 + 2)).
En el segundo y tercer caso, el botón se presiona incluso menos tiempo en comparación con el primer caso. Debido a esto, el voltaje del terminal RMS en los terminales del motor se reduce aún más. Debido a este voltaje reducido, la velocidad del motor disminuye aún más. Esta disminución de la velocidad con el ciclo de trabajo continúa ocurriendo hasta un punto en el que el voltaje del terminal del motor no será suficiente para hacer girar el motor.
Entonces, con esto podemos concluir que el PWM se puede usar para variar la velocidad del motor.
Antes de seguir adelante, debemos discutir el H-BRIDGE. Ahora este circuito tiene principalmente dos funciones, la primera es impulsar un motor de CC desde señales de control de baja potencia y la otra es cambiar la dirección de rotación del motor de CC.
Figura 1
Figura 2
Todos sabemos que para un motor de CC, para cambiar la dirección de rotación, necesitamos cambiar las polaridades de la tensión de alimentación del motor. Entonces, para cambiar las polaridades usamos H-bridge. Ahora, en la figura 1 anterior, tenemos cuatro interruptores. Como se muestra en la figura 2, para que el motor gire, A1 y A2 están cerrados. Debido a esto, la corriente fluye a través del motor de derecha a izquierda, como se muestra en la 2ª parte de la figura 3. Por ahora, considere que el motor gira en el sentido de las agujas del reloj. Ahora, si los interruptores A1 y A2 están abiertos, B1 y B2 están cerrados. La corriente a través del motor fluye de izquierda a derecha como se muestra en el 1er. parte de la figura 3. Esta dirección del flujo de corriente es opuesta a la primera y, por lo tanto, vemos un potencial opuesto en la terminal del motor al primero, por lo que el motor gira en sentido antihorario. Así es como funciona un H-BRIDGE. Sin embargo, los motores de baja potencia pueden funcionar con un H-BRIDGE IC L293D.
L293D es un H-BRIDGE IC diseñado para impulsar motores de CC de baja potencia y se muestra en la figura. Este IC consta de dos puentes en H, por lo que puede impulsar dos motores de CC. Entonces, este IC se puede utilizar para impulsar los motores del robot a partir de las señales del microcontrolador.
Ahora, como se discutió antes, este IC tiene la capacidad de cambiar la dirección de rotación del motor de CC. Esto se logra controlando los niveles de voltaje en INPUT1 e INPUT2.
Habilitar Pin |
Pin de entrada 1 |
Pin de entrada 2 |
Dirección del motor |
Alto |
Bajo |
Alto |
Girar a la derecha |
Alto |
Alto |
Bajo |
Girar a la izquierda |
Alto |
Bajo |
Bajo |
Detener |
Alto |
Alto |
Alto |
Detener |
Entonces, como se muestra en la figura anterior, para la rotación en el sentido de las agujas del reloj, 2A debe ser alto y 1A debe ser bajo. De manera similar, en el sentido contrario a las agujas del reloj, 1A debe ser alto y 2A debe ser bajo.
Como se muestra en la figura, Arduino UNO tiene 6 canales PWM, por lo que podemos obtener PWM (voltaje variable) en cualquiera de estos seis pines. En este tutorial vamos a utilizar PIN3 como salida PWM.
Hardware: ARDUINO UNO, fuente de alimentación (5v), condensador 100uF, LED, botones (dos piezas), resistencia 10KΩ (dos piezas).
Software: arduino IDE (Arduino nightly).
Diagrama de circuito
El circuito está conectado en una placa de pruebas según el diagrama de circuito que se muestra arriba. Sin embargo, se debe prestar atención durante la conexión de los terminales LED. Aunque los botones muestran un efecto de rebote en este caso, no causa errores considerables por lo que no debemos preocuparnos esta vez.
El PWM de UNO es fácil, en ocasiones normales configurar un controlador ATMEGA para señal PWM no es fácil, tenemos que definir muchos registros y configuraciones para una señal precisa, sin embargo en ARDUINO no tenemos que lidiar con todas esas cosas.
Por defecto, todos los archivos de encabezado y registros están predefinidos por ARDUINO IDE, simplemente necesitamos llamarlos y eso es todo, tendremos una salida PWM en el pin apropiado.
Ahora, para obtener una salida PWM en un pin apropiado, necesitamos trabajar en tres cosas,
|
Primero debemos elegir el pin de salida PWM de seis pines, después de eso, debemos configurar ese pin como salida.
A continuación, debemos habilitar la función PWM de UNO llamando a la función "analogWrite (pin, value)". Aquí, 'pin' representa el número de pin donde necesitamos salida PWM, lo ponemos como '3'. Entonces, en PIN3 estamos obteniendo salida PWM.
El valor es el ciclo de trabajo de encendido, entre 0 (siempre apagado) y 255 (siempre encendido). Vamos a incrementar y disminuir este número presionando un botón.
El UNO tiene una resolución máxima de “8”, no se puede ir más allá de ahí los valores de 0-255. Sin embargo, uno puede disminuir la resolución de PWM usando el comando “analogWriteResolution ()”, ingresando un valor de 4-8 entre paréntesis, podemos cambiar su valor de PWM de cuatro bits a PWM de ocho bits.
El interruptor sirve para cambiar la dirección de rotación del motor de CC.