Como controlar a velocidade e direção do motor DC usando um joystick e Arduino

Cómo controlar la velocidad y dirección del motor DC usando un joystick y Arduino

Tal como sugiere el nombre, los controladores de motores de CC controlan la velocidad y la dirección de un motor de CC. Sin embargo, para cambiar la dirección del motor, se debe invertir la potencia que recibe. Y para variar la velocidad del motor de CC, se le debe aplicar una señal u onda de modulación de ancho de pulso (PWM).

A medida que aumenta el ancho del pulso, también aumentará el voltaje promedio aplicado al motor, y viceversa. Esto significa que la velocidad del motor de CC varía con el ancho del pulso.

PMW se ha convertido en un método comúnmente utilizado para hacer precisamente eso. Pero otra opción que está ganando popularidad es controlar la velocidad y dirección de un motor de CC mediante un joystick. Cómo funciona: cuando el joystick está en la posición central, el motor de CC se detiene. Cuando el joystick se mueve hacia arriba o hacia abajo, el motor gira en la misma dirección: hacia adelante o hacia atrás.

Además, cuanto más lejos del centro se empuja el joystick (en cualquier dirección), más rápida será la velocidad del motor en esa misma dirección. Entonces los usuarios pueden controlar la velocidad del motor de CC de esta manera.

El método de control por palanca de mando para motores de CC se utiliza actualmente en varias aplicaciones diferentes, entre las que se incluyen:

1. Juguetes controlados a distancia (RC), como aviones, helicópteros, barcos, coches, etc.
2. Grúas para cámaras de vídeo
3. Controladores Jogg industriales
4. Brazos robóticos o para vehículos robóticos
5. Controladores de cámaras de vigilancia

También hay muchas otras aplicaciones en las que el motor de CC que impulsa la carga se controla mediante un joystick. En algunas, solo se cambia la dirección del motor (como en los juguetes RC), mientras que en otras aplicaciones, se varían tanto la dirección como la velocidad (como en las grúas con cámaras de video, controles de jog, etc.).

El siguiente proyecto demuestra el uso de un joystick para controlar la velocidad y dirección de un motor de CC. Utiliza un joystick resistivo de dos ejes que utiliza una placa de desarrollo Arduino NANO para controlar un controlador de motor L298.

Diagrama de circuito

El circuito se construye utilizando tres bloques de construcción principales con una placa Arduino NANO, un joystick resistivo de dos ejes y un controlador de motor L298:

  • El joystick tiene cinco pines de interfaz: Vcc, GND, X, Y y botón. El pin Vcc recibe un suministro de 5 V de la placa Arduino y el pin GND está conectado a tierra de la placa.
  • Los pines X e Y son salidas analógicas conectadas a los pines analógicos A0 y A1 de Arduino. El pin del botón no se utiliza aquí.
  • La salida PWM de los pines D5 y D6 de Arduino está conectada a los pines de entrada IN1 e IN2 del controlador del motor. Conducen el motor a través del controlador del motor.
  • El motor de 12 V CC está conectado a las salidas OUT1 y OUT2 del controlador del motor.
  • Tanto el Arduino como el controlador del motor reciben alimentación externa de 12 V.

Funcionamiento y operación del circuito:

Funcionamiento y operación del circuito:

  • Inicialmente, cuando el joystick está en la posición central o de reposo, el motor se para. A medida que la palanca de mando se mueve gradualmente hacia arriba, el motor comienza a funcionar a baja velocidad en el sentido de las agujas del reloj (hacia adelante). A medida que la palanca de mando se mueve hacia arriba desde el centro, aumenta la velocidad del motor. Cuando el joystick está lo más alto posible, el motor alcanza su velocidad máxima de avance.
  • Cuando la palanca de mando regresa a la posición central (reposo), la velocidad del motor comienza a disminuir y se detiene.
  • De manera similar, cuando se mueve el joystick hacia abajo, el motor comienza a funcionar en sentido antihorario (marcha atrás). A medida que el joystick se aleja del centro, la velocidad del motor aumenta hasta llegar a ese punto. Cuando el joystick se baja al máximo, el motor alcanza su velocidad máxima en marcha atrás.
  • Cuando el joystick se mueve completamente hacia la izquierda o hacia la derecha, el motor avanza o retrocede a máxima velocidad.

A continuación, repasemos el circuito en acción:

  • Mover el joystick hacia la posición central o de reposo siempre ralentiza el motor. Se detendrá por completo cuando esté en la posición central.
  • Cuando el joystick se mueve hacia arriba o hacia abajo, su resistencia interna (el potenciómetro) aumenta o disminuye. Básicamente, esto aumenta o disminuye el voltaje de salida analógica al pin X.
  • El Arduino leerá el voltaje analógico y lo convertirá a un valor digital, que oscila entre 0 y 1023 dependiendo de si el joystick se mueve completamente hacia arriba o hacia abajo.
  • Cuando el joystick está en la posición central, el Arduino recibe un valor de aproximadamente 510. Cuando se mueve hacia arriba, el valor aumenta gradualmente de 510 a 1023 como máximo. De manera similar, cuando se mueve el joystick hacia abajo, el valor disminuye de 510 a 0 como máximo.
  • Según estos valores, Arduino genera PWM en los pines D5 y D6. Cuando el joystick se mueve hacia arriba, el valor de PWM aumenta gradualmente de 0 a 255 (0 – 100%) en el pin D5 (y la velocidad del motor acelera hacia adelante). Cuando el joystick se mueve hacia abajo, el valor de PWM aumenta en el pin D6 (y la velocidad del motor acelera en la dirección inversa).
  • De manera similar, mover el joystick hacia la izquierda o hacia la derecha aumentará o disminuirá la salida analógica en el pin Y. El Arduino leerá el voltaje analógico y lo convertirá a un valor digital.
  • Cuando el joystick se mueve hacia la derecha, el valor será mayor que 750. Como resultado, el Arduino suministrará una señal PWM del 100% al pin D5 (y el motor avanzará a toda velocidad). Cuando el joystick se mueve hacia la izquierda, el valor será inferior a 250. Ahora el Arduino dará una señal PWM del 100% al pin D6 (y el motor funcionará en reversa a máxima velocidad).
  • La velocidad del motor aumenta y disminuye a medida que se mueve la palanca de mando. También cambiará de dirección dependiendo de si el joystick se mueve hacia arriba o hacia abajo.

El funcionamiento de este circuito depende del programa que se descarga en la memoria interna (FLASH) del microcontrolador Arduino ATMega328. Este programa fue escrito en lenguaje C, utilizando el software Arduino IDE. También utiliza la biblioteca Arduino “DC_Motor” que desarrollé (y está disponible en este sitio web, Garagem de Engenheiros ).

Programa de software:

#incluir
DC_Motordcm(5,6,1);
int velocidad_motor, velocidad_establecida;
configuración nula
{

}

bucle vacío
{
int valor_x,valor_y;
valor_x = lectura analógica (A0);
if((valor_x>=490) && (valor_x<=530)) dcm.motor_speed_zero;
si(valor_x>550)
{
set_speed = mapa(x_value,550,1020,10,100);
dcm.run_motor(1,set_speed);
}
si(valor_x<470)
{
set_speed = mapa(x_value,470,0,10,100);
dcm.run_motor(0,set_speed);
}
valor_y = lectura analógica (A1);
si(valor_y>750)
{
dcm.jogg_set_speed(1.100);
}
si(valor_y<250)
{
dcm.jogg_set_speed(0,100);
}
}

Conteúdo Relacionado

El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
En cada vehículo hay una red de sensores integrada...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Você pode estar se perguntando por que Portas NAND...
Se você é um Diagrama do circuito da porta...
Você provavelmente já se deparou com o termo 'E...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.