Servo SG99 vibra en determinada posición (angulo)

Hola

Estoy experimentado con un servo sg99 conectado a Arduino directamente. El problema que veo es que en determinados angulos el servo se pone a vibrar, pero en otros angulos no.

En concreto.

¿Es un problema del servo que he comprado o puede ser otra cosa?

El esquema de conexión es (lo pongo por si acaso):

PIN 9 Arduino a PIN de control servo.
GND Arduino a PIN negro servo
5V Arduion a PIN rojo servo.

#include <Servo.h>

Servo servo1;
int angle = 90;

void setup() {
  servo1.attach(9);
  Serial.begin(9600);
}

void loop() {
  
  unsigned char comando = 0;
  if(Serial.available())
  {
    comando = Serial.read();

    if(comando == 'a') angle+=1;
    else if(comando == 's') angle+=10;
    else if(comando == 'd') angle-=10;
    else if(comando == 'f') angle-=1;
    angle = constrain(angle,0,180);
    servo1.write(angle);
    Serial.println(angle);
  }
  
}

En concreto, por ejemplo, con el angulo 73 no vibra, pero con el 78 sí.

He probado otro servo, y este solo vibra en la posición 0.

¿Esto es normal? ¿Hay maneras de "calibrarlos" o algo parecido?

Gracias.

No tengo ni idea, pero por probar no perdemos nada. Cambia el attach a:

servo1.attach(9, 500, 1400);

Aparte del pin, en el attach se le puede indicar la duración del ciclo mínimo y máximo (microsegundos). Googleando he visto que para tu servo son esos.

Gracias, no, no funciona.

Según he leído es posible que el servo intente alcanzar una posición continuamente pero no llegue por problemas de engranajes. Por ejemplo, cuando el servo se queda así, toco un poco el aspa y deja de sonar.

No sé si quejarme a los que me lo han vendido (banggood).