Actualmente estoy trabajando en el control de los servomotores con un ATtiny85 . Me cuesta entender cómo lograr una granularidad fina para los ángulos del servo.
Estoy utilizando una técnica similar a la indicada por KyranF .
Un ángulo de servo se determina por el ancho de pulso entre 1-2ms de un PWM de 50Hz.
Estoy usando el temporizador 1 con un prescaler de 1 con un reloj de 8 Mhz. Esto significa que un desbordamiento del temporizador (tick) toma (1 / 8MHz) * 256 = 32 microsegundos.
Un periodo de 20ms lleva 625 desbordamientos. Esto significa que mi granularidad de 1 ms es 625/20 ms = 31,25 = ~ 31 ticks por ms.
Debido a que el ángulo del servo se controla al configurar el ancho del pulso en algún lugar entre 1 y 2 ms, solo puedo tener una precisión de 31/180 ° = ~ 6 grados.
¿Hay alguna manera de lograr una precisión de 1 °?