Tengo un motor de imán permanente de 24 VCC como los que se encuentran comúnmente en un scooter de movilidad. Me gustaría poder controlar tanto la velocidad como la dirección del motor con el mismo control del acelerador sin necesidad de usar un interruptor de marcha atrás. Los scooters de movilidad actuales utilizan lo que se conoce como potenciómetro 'Wigwag' o potenciómetro de aceleración para lograr esto.
Mi pregunta es ¿cómo puedo controlar la velocidad y la dirección del motor usando el mismo control del acelerador sin un interruptor de marcha atrás?
Encontré un circuito simple en línea que parece útil; sin embargo, este circuito no permite la modificación de la tasa de aceleración/desaceleración u otros parámetros que me gustaría poder modificar.
¿Puedo usar un microcontrolador con el voltaje del acelerador como entrada y luego aumentar las corrientes y voltajes de salida de alguna manera?
Hay varias razones por las que su circuito de muestra no es adecuado:
Figura 1. Un potenciómetro de aceleración wigwag para un scooter de movilidad. Tenga en cuenta que solo se utiliza una pequeña parte del recorrido de 330° del potenciómetro, tal vez ±30°.
Las soluciones a esto son:
simular este circuito : esquema creado con CircuitLab
Figura 2. Un esquema simplificado de un puente H. Con los interruptores 1 y 4 cerrados como se muestra, el motor funcionará en una dirección. Abriendo 1 y 4 y cerrando 2 y 3 se puede hacer girar el motor en sentido contrario. Para detener el motor, abra todos los interruptores. En la práctica, los interruptores serán reemplazados por transistores.
Figura 3. Una señal PWM que va del 80 % al 20 % al 80 % a cero. Si la frecuencia del pulso es alta en relación con el tiempo de reacción del motor, se obtiene un control muy suave con pérdidas bajas en los transistores de conmutación.
El mejor enfoque será usar un microcontrolador para leer el potenciómetro, calcular el nivel de salida deseado usando un algoritmo limitador de aceleración simple, convertirlo a PWM y enviarlo a un puente H adecuado.
Figura 4. Diagrama de bloques crudo del sistema de control PWM.
Tareas de código:
Lea el potenciómetro y normalice o escale a, por ejemplo, -100 a +100. Probablemente debería agregar una banda muerta en el centro para evitar la fluencia o la corriente a través del motor cuando se detiene. p.ej:
0 ------------------------- mid ------------------------- 330°
^ max reverse max forward ^
-100 -------- 0 ---- 0 -------- +100 scaled output
El uso de esta estrategia requerirá un movimiento definido de la oscilación antes de que se encienda la corriente.
Sospecho que el motor será bastante débil y que incluso con el movimiento completo desde el reposo, es probable que la aceleración no sea un problema. Si es así, agregue una rutina:
// Very crude pseudo-code!
int v, a, pwm; // velocity and acceleration and pwm
ww = getScaledInput; // wigwag
if (ww > 0) {
if (ww > pwm) { // we need to accelerate to pwm
pwm = pwm + accel;
}
if (ww < pwm) { // we need to decelerate
pwm = pwm - accel;
}
if (ww == 0) { // stop
pwm = 0;
}
}
Ignacio Vázquez-Abrams
usuario_1818839