Estoy tratando de usar la funcionalidad de detección de corriente de Arduino Motor Shield R3 , el escudo se basa en L289 . Los valores que leo parecen ser muy ruidosos. Estoy usando la función Arduino UNO A0 analogRead() para detectar la corriente. Para solucionar esto, he intentado usar un filtro de paso bajo entre el escudo del motor y arduino uno.
simular este circuito : esquema creado con CircuitLab
Esto ayudó a corregir el ruido de medición, sin embargo, tengo varias preguntas al respecto:
En el diagrama de bloques de la hoja de datos, puede ver que la detección de corriente está influenciada por las etapas de salida del puente H. Esto significa que cuando usa PWM para accionar el motor, el voltaje Sense variará con la señal PWM. El voltaje a través de la resistencia de detección es proporcional a la corriente a través de él, que a su vez depende del voltaje a través de la inducción del motor. Durante el período positivo de la señal PWM, la corriente aumentará "lentamente", mientras que durante el período negativo de la señal PWM, la corriente disminuirá "lentamente". En la práctica, esto se parecerá un poco a una onda triangular y ese es el ruido que mide.
La solución es asegurarse de sincronizar la medición del voltaje de detección con la señal PWM. Por ejemplo, puede adjuntar una interrupción al temporizador que se usa para la señal PWM y requiere un poco de investigación en la hoja de datos del microcontrolador (y algo de prueba y error) para descubrir cómo darse cuenta. Otra opción es conectar un pin de interrupción al pin de salida PWM, que puede ser más sencillo para empezar. Se puede hacer, aunque es posible que deba reducir la frecuencia de PWM (para ajustar la conversión de ADC dentro del ciclo de trabajo de PWM), programar directamente los registros de hardware (las bibliotecas de Arduino son lentas) o usar algún ensamblaje.
olin lathrop
Kaz