Controlador de motor DC usando codificador rotativo

Controlador de motor de CC mediante codificador rotatorio

Controlar un motor de CC significa:

  • Arrancar y parar el motor
  • Cambie la dirección de funcionamiento del motor a avance (CW) o retroceso (CCW)
  • Variar la velocidad del motor (RPM)

Todos los diferentes tipos de controladores de motores de CC controlan la velocidad y la dirección del motor. Utilizan diferentes tipos de dispositivos de entrada como

  • Se utilizan dos botones (o quizás un solo botón) para arrancar y detener el motor.
  • El interruptor tipo SPDT se utiliza para seleccionar la dirección del motor como CW o CCW.
  • El potenciómetro se utiliza para variar la velocidad del motor.
  • En algunos controladores, se utilizan dos botones para aumentar y disminuir la velocidad del motor (en lugar del potenciómetro)

Por lo tanto, todos estos controladores de motores de CC requieren botones, un potenciómetro, un interruptor SPDT y quizás otros componentes para controlar la velocidad y dirección del motor.

Pero en este proyecto, solo se utiliza un codificador rotatorio para controlar completamente el motor de CC.

Significa que podemos

  • Variar la velocidad del motor
  • Cambie la dirección del motor y
  • Arrancar/parar el motor

Con un solo codificador rotatorio. El codificador rotatorio reemplaza todos los componentes anteriores, como botones, potenciómetro, interruptor, etc.

El proyecto utiliza un codificador rotatorio con una placa de desarrollo Arduino NANO para controlar la velocidad y dirección del motor de CC. También utiliza un módulo controlador de motor (L293). El proyecto completo se puede construir con unos pocos componentes: módulos. Así que veamos cómo se hace.

Primero recopilemos las cosas necesarias.

Lista de artículos obligatorios

Placa de desarrollo Arduino NANO


motor de 12 VCC


módulo controlador de motores


Módulo codificador rotatorio


Ahora, primero construiremos el circuito y luego veremos su funcionamiento y funcionamiento. Es sencillo construir este circuito porque solo necesitamos conectar 3 módulos. Puedes construirlo fácilmente usando solo cables de puente y una placa de pruebas. Aquí está el chasquido del circuito.

Diagrama de circuito

Como se muestra en la figura, el circuito se construye utilizando tres módulos: codificador rotatorio, Arduino NANO y controlador de motor CC L298.

  • El módulo codificador rotatorio tiene 5 pines de interfaz. De estos 5 pines, 2 pines son para Vcc y Gnd, y están conectados con la salida de 5V y Gnd de la placa Arduino.
  • Sus otros 3 pines, SW, DI y CLK, están conectados a los pines digitales D12, D2 y D3 de la placa Arduino respectivamente.
  • El módulo controlador de motor de CC se utiliza para accionar el motor y proporcionar el voltaje y la corriente requeridos. Dispone de 4 entradas para accionar 2 motores DC, de las cuales se utilizan 2 entradas IN1 e IN2.
  • Las salidas PWM D5 y D6 de la placa Arduino están conectadas a estos IN1 e IN2 que se utilizan para accionar el motor.
  • Un motor de 12 V CC está conectado a OUT1 y OUT2 del módulo controlador de motor como se muestra
  • La placa Arduino y el módulo controlador del motor reciben 12 V de la fuente de alimentación externa.

Operación del circuito

Como dije antes, lo más interesante de este circuito es que, usando solo este codificador rotatorio, podemos…

  • Arrancar o detener el motor
  • Cambiar la dirección del motor.
  • Variar la velocidad del motor

Primero explicaré cómo funciona el circuito y luego explicaré cómo se hace.

  • Inicialmente, cuando se aplica alimentación de 12 V a la placa Arduino y al módulo controlador del motor, el motor se detiene.
  • El motor comienza a funcionar en cualquier dirección (en sentido horario o antihorario) cuando se presiona el interruptor del codificador giratorio. Cuando se presiona nuevamente el interruptor, el motor se para. Por lo tanto, presionando alternativamente el interruptor, el motor arranca o se detiene.
  • Mientras el motor está funcionando en el sentido de las agujas del reloj, si comenzamos a girar el codificador en la misma dirección (en el sentido de las agujas del reloj), continuará aumentando la velocidad del motor hasta que alcance el máximo.
  • De lo contrario, mientras el motor está funcionando en el sentido de las agujas del reloj, y si comenzamos a girar el codificador en dirección inversa (en el sentido contrario a las agujas del reloj), comenzará a desacelerar el motor hasta que se detenga.
  • Ahora, a medida que el codificador gira más en el sentido contrario a las agujas del reloj, el motor comienza a funcionar lentamente en el sentido contrario a las agujas del reloj y continúa aumentando la velocidad al máximo en el sentido contrario a las agujas del reloj.
  • Por lo tanto, la velocidad del motor aumenta y disminuye en cualquier dirección girando el codificador en el sentido de las agujas del reloj y en el sentido contrario a las agujas del reloj.
  • Por lo tanto, se puede configurar fácilmente la velocidad y dirección deseadas del motor usando solo el codificador rotatorio.

Para comprender el funcionamiento del circuito en detalle, primero debemos comprender el funcionamiento de un codificador rotatorio.

Codificador rotatorio funcionando

El codificador rotatorio consta de un disco ranurado conectado al pin C de tierra común y dos pines de contacto A y B, como se muestra en la figura.

Cuando gira la perilla, A y B entran en contacto con el pin de tierra común C, en un orden específico según la dirección en la que gira la perilla.

Cuando entran en contacto con puntos en común, producen señales. Estas señales se desfasan 90° entre sí cuando un pin entra en contacto con el otro pin. Esto se llama codificación en cuadratura .

Cuando gira la perilla en el sentido de las agujas del reloj, el pin A se conecta primero, seguido del pin B. Cuando gira la perilla en el sentido contrario a las agujas del reloj, el pin B se conecta primero, seguido del pin A.

Al rastrear cuándo cada pin se conecta y desconecta de tierra, podemos usar estos cambios de señal para determinar cómo se gira la perilla. Puedes hacer esto simplemente observando el estado de B cuando A cambia de estado.

Cuando A cambia de estado:

  • Si B y A no son iguales, entonces la perilla se ha girado en el sentido de las agujas del reloj.
  • Si B y A son iguales, entonces la perilla se ha girado en sentido antihorario.

Vea la figura a continuación

Por lo tanto, estas salidas A y B son pines DI y CLK del módulo codificador rotatorio. El Arduino verifica la salida de pulso de ambos y determina si el codificador gira en el sentido de las agujas del reloj o en el sentido contrario a las agujas del reloj.

Si el motor gira en el sentido de las agujas del reloj a cierta velocidad y

  • Caso 1: el codificador también gira en el sentido de las agujas del reloj, por lo que Arduino aumentará el ancho de PWM en D5; luego aumentará la velocidad del motor. si el codificador se gira continuamente en el sentido de las agujas del reloj, el motor alcanza la velocidad máxima
  • Caso 2: si el codificador se gira en sentido antihorario, Arduino disminuirá el ancho de PWM en D5, disminuyendo la velocidad del motor. Y al girar el codificador en sentido antihorario continuamente, el ancho de PWM en D5 será 0 y el motor se detendrá una vez. Continúe girando el codificador en la misma dirección, aumentando el ancho de PWM en D6, y el motor comenzará a girar en sentido antihorario. Si se sigue girando el codificador en sentido antihorario, el ancho de PWM en D6 se vuelve máximo y el motor alcanza la velocidad máxima en sentido antihorario.

El completo funcionamiento y funcionamiento del circuito se basa en el programa descargado en la memoria FLASH del microcontrolador Arduino ATMega328. El programa está escrito en lenguaje C utilizando Arduino IDE. El programa utiliza la biblioteca DC_Motor para variar la velocidad y dirección del motor de CC. Consulte la documentación de la biblioteca DC_Motor para obtener más detalles. aquí está el código del programa

Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.