Calibración del servomotor

0

Estoy trabajando en un proyecto de seguimiento de imágenes en MATLAB, al mover la cámara montada en un servomotor controlado por la placa Arduino Uno, los datos se envían en serie al arduino usando un USB, según el cual el servomotor cambia su ángulo. , pero hay un problema al arrancar, el motor se inicializa a su posición RESET que está a 0 grados, pero después de pasar un ángulo en serie, no vuelve a la posición RESET cuando envío 0 como un ángulo nuevamente.

#include <Servo.h>
Servo myservo; 
int incomingByte=0;
void setup() {
  Serial.begin(9600);
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
void loop() {
  if(Serial.available()>0){
    incomingByte=Serial.read();
     Serial.println(incomingByte,DEC);
    Serial.write("readvalue");
    myservo.write(incomingByte);
  }
}

Tampoco responde a algunos de los ángulos que se envían en serie. Estoy usando un servomotor SG90, aquí está su Gracias.

    
pregunta MonteCristo

1 respuesta

2

Probé su código en un Arduino Pro Mini con un servo Towerpro SG90, y funcionó perfectamente. Por lo tanto, sospecho que tiene una falla en el cableado o la fuente de alimentación.

El SG90 es un servo pequeño pero con bastante consumo de energía, incluso sin carga, alcanza los 0.75A. Para mi prueba, utilicé una batería de 4.8 V por separado para alimentar el servo, asegurándome de que el Arduino no se viera afectado por las sobrecargas de corriente o la caída de voltaje cuando el servo está funcionando.

Si usar una fuente de alimentación por separado no ayuda, es posible que tenga un cableado defectuoso o un servo defectuoso.

    
respondido por el Bruce Abbott

Lea otras preguntas en las etiquetas