Estoy usando la biblioteca de codificadores de Arduino para realizar un seguimiento de los recuentos de codificadores de mi motor. Necesito calcular la velocidad del motor para poder compararlo con una velocidad objetivo y someterlo a PID.
He pensado en un enfoque:
1) Calcular recuentos por paso de tiempo: digamos que tenemos un paso de tiempo de 100 ms y deseamos una velocidad de 50 cm / s. Determine la velocidad en unidades de paso de tiempo, 50/10.
Para calcular la velocidad a la que se desplaza el motor, simplemente calcule cuántas cuentas desde el último paso de tiempo, lo que dará velocidad en unidades de tiempo, que se pueden comparar directamente con la velocidad deseada;
speed = counts - prevCounts;
prevCounts = counts;
La ventaja que puedo ver con este enfoque es que no requiere que realicemos una división (es decir, velocidad = (cuenta - prevCounts) / 0.1) en cada paso del tiempo.
¿Es esto sensato? ¿Hay algún defecto en mi método?