Relacionar la entrada de voltaje del sensor de posición a la salida Arduino PWM%

0

Esta es una pregunta general, creo que quizás sea una pregunta matemática, pero es para la plataforma Arduino.

Estoy haciendo un proyecto de levitación de pelota que mantendrá una pelota de ping pong suspendida en un punto de ajuste en un tubo, la posición de las bolas se lee con un sensor de posición láser que proporciona un voltaje analógico relacionado con la posición de las bolas. La salida del sensor es bastante lineal para el rango de operación de la longitud del tubo.

Luego tengo un ventilador controlado con PWM como%, esto se ajusta manualmente con una olla, y marqué una escala en el tubo en incrementos de una pulgada.

Básicamente, hice una tabla de valores de salida de voltaje del sensor, relacionada con los valores de PWM% del motor para diferentes posiciones en el tubo.

Hice una gráfica que relaciona las dos variables y es sorprendentemente bastante lineal. Hice una línea de tendencia en Excel y obtuve una ecuación de línea de Y = 3.0265X + 15.05

X es la posición del sensor (en voltios) e Y es el valor PWM en%,

La parte que tengo es tomar el voltaje analógico del pin analógico que es un valor de 0 a 1023 en el arduino y relacionarlo con un PWM para escribir de forma analógica con el motor (valor A de 0 a 255).

Sé que analogRead () es y ADC, así que convierto el valor de 0 a 1023 a un voltaje de (5.0 * valor analógico) / 1023;

Eso me dará voltios, pero no entiendo cómo relacionar esto con PWM, como un cambio en el voltaje del sensor a un cambio en PWM al motor. Creo que estoy en el camino correcto pero no estoy conectando los puntos.

Cualquier ayuda será apreciada!

Gracias

    
pregunta zacharoni16

1 respuesta

2

Todo lo que necesitas hacer es escalar la ecuación basada en las nuevas unidades. Si X era anteriormente voltios y ahora está en unidades de 5 V / 1023. Entonces, escale sus coeficientes en 5/1023 para obtener el mismo Y con las nuevas unidades X.

Mientras estás en ello, probablemente quieras escalar los coeficientes para que Y sea algo más útil que el porcentaje. El porcentaje puede ser apropiado para mostrar una fracción a los humanos, pero es bastante inútil e inconveniente de lo contrario. O bien, conviértalo en una fracción de 0 a 1 para que pueda multiplicarlo fácilmente por el valor máximo de PWM que su hardware necesite, o incorporarlo en la ecuación en primer lugar. Así que comience por escalar los coeficientes por 100, luego por el valor máximo del ciclo de trabajo del hardware. Después de escalar a la nueva X como se indica arriba, tiene la ecuación de lectura A / D a valor de salida PWM.

Eso responde a tu pregunta, pero nada de esto es lo que realmente quieres. Parece que quieres implementar un sistema de control. Para eso es bueno saber que la salida de control (el valor del ciclo de trabajo PWM) produce una salida del sistema aproximadamente lineal (la posición de la bola). Las ganancias de retroalimentación que usa entonces son una función de la dinámica del sistema. Su coeficiente X representa la ganancia de bucle abierto que afectará los coeficientes de retroalimentación, pero probablemente sea más sencillo encontrar los valores correctos mediante ajustes imperiosos.

Un esquema de control simple para el que hay mucha información se llama "PID". Eso significa proporcional, integral y derivativo. Un controlador PID es un tema completo sobre sí mismo, pero hay mucho disponible que hay por lo que no tiene mucho sentido repetirlo aquí.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas