Servo que gira solo múltiplos de 10 grados

Buenas tardes.
Ten un problema con un servo.
Con el típico programa con un for de los que hay en mil manuales, debiera de hacer un giro suave y constante.

  for (posicion=0; posicion<=180; posicion++) {
    motor.write(posicion);
    delay(50);
  }

El problema lo tengo que en vez de girar de grado en grado, gira solo cuando posición se incrementa más o menos en 10. De tal forma que en vez de tener 180 posiciones, tengo 17-18.
He probado también a programar con motor.writeMicroseconds(tiempo); y me hace lo mismo (ej: con 1100 me lo pone a 52º, con 1200 me lo pone a 63º, y con los intermedios no se mueve aunque motor.read() vaya dando valores intermedios).
He probado con los tres servos que tengo (dos MG995 y un G9) y hacen los tres lo mismo.
He probado a alimentarlo a 5v tanto a través del arduino como con una fuente externa.
He probado a conectarlos en los pines PWM 3 y 9, nada.
Y ya no sé qué más probar.
Estoy con un Arduino UNO R4.
¿Alguna idea?
Muchas gracias.

Me respondo yo en parte. He cambiado a un Arduino R3 y funciona correctamente. ¿Alguien sabe si con el R4 hay que hacer algo especial?

El problema es que el Arduino UNO R4 no esta basado en un UNO sino que es la mezcla entre un Renesas (Arm® Cortex®-M4) y un ESP32-S3 o sea.. nada similar a lo que anda por ahi de la vieja escuela Arduino.
Entonces las cosas mas simples requieren adaptaciones o estudiar como se hacen.
La librería Servo no debe contemplar el Arduino Uno R4 para que salte de 10 en 10.
Asi que Buscas en tu navegador arduino UNO R4 Servo y fijate que encuentras.
Mira este video

minuto 11:47 y tu problema se presenta. Lo menciona como pequeñas inconsistencias en la lilbrería servo y sugiere otra librería PWMServo de PaulStoffregen

Prueba con esta sus ejemplos a ver que tal funciona.

Muchas gracias por la pronta respuesta!!
De momento ya tengo la librería instalada, pero me da error al compilar. Ya he visto (en github) que no he sido el único con este problema, pero de momento no hay respuesta.
Parece que hay problemas con dos declaraciones de begin en pwm.h
Sigo mirando...

Que barbaridad!!! 6 y 8 años tiene la librería.
image

Debes bajar a un IDE 1.6.X para que funcione esto.
Igualmente hay modificaciones del año pasado.. prueba de todos modos un IDE 1.6.18

Gracias por la ayuda, pero ni el 1.6.13, ni el 1.8.18, ni el 1.8.19, ni el 2.3.2!!!
No he encontrado el 1.6.18 (he supuesto que sería el 1.8.18).
La única solución que he encontrado es, como tiene conflicto entre dos funciones begin (con 2 y con 4 parámetros) de la librería pwm.h, he renombrado una de ellas tanto en pwm.h como en pwm.cpp
No me preguntes el por qué del problema ni de la solución, porque esta misma librería tiene otra función begin sin parámetros, pero parece que no hay problema con ella.
Curiosamente, tampoco hace falta modificar la llamada en PWMServo.cpp ¿? La utiliza solo para una comparación que ahora obviará.
Ahora me toca restablecer todo el proyecto que ya tenía hecho, pero que no iba nada fino!!!
De nuevo gracias.

Te aseguro que pensé que estaba fácil la solución, no insistí pero me alegro que al menos lo tengas encaminado.

Me guiaste con la librería, que ahí sí que estaba perdido!