Estoy utilizando la biblioteca PID en Arduino para controlar la temperatura de un láser. La cosa es que me gustaría poder cambiar las ganancias del controlador Kp, Ki y Kd desde potenciómetros externos en lugar de hacerlo directamente desde el código.
Como ya sabrás, para ajustar el PID tienes que jugar un poco con estas ganancias y por eso me gustaría hacerlo en tiempo real en lugar de compilar y cargar el programa en Arduino cada vez. Quiero cambiar cualquiera de los valores.
La forma de declarar el PID en Arduino es:
PID myPID(&Input, &Output, &SetPoint, Kp, Ki, Kd, DIRECT);
Lo que entiendo de ahí es que puede pasar el valor de Input, Output y SetPoint por referencia, lo que le permite actualizar los valores en cada bucle. Pero Kp, Ki y Kd son valores constantes que se definen al principio y no se pueden cambiar mientras se ejecuta el programa.
Me gustaría saber si es posible actualizar esos valores mientras el programa se está ejecutando porque, de lo contrario, creo que no podré ajustar este PID correctamente en menos de un mes.
Gracias.