Servo calibration

- 1 min read

Este experimento es para tratar de calibrar los servos que se van a usar como motores.

Este paso es importante ya que hay que encontrar el punto en el que el servo queda detenido.

Material -Un servo de rotación continua

Conexiones - Usar para el servo una salida con PWM

#include <Servo.h>
#define SERVO_PIN  6

Servo servo;
int velocity;
void setup()
{

    Serial.begin(9600);
    Serial.flush();

    // Initialize
    velocity = 0;

    servo.attach(SERVO_PIN);
}

void loop()
{
    // commands
    if ( Serial.available()) {
      char ch = Serial.read();
      switch(ch) {
        case 's':
          servo.write(0);
          servo.write(velocity);
          break;

        case 'a':
          velocity += 10;
          break;      
        case 'd':
          velocity -= 10;
          break; 
        case 'z':
          velocity += 1;
          break;      
        case 'x':
          velocity -= 1;
          break;   
        case 'f':
          servo.detach();
          servo.attach(SERVO_PIN);
          break;
        case 'q':
          velocity = 0;
          servo.write(velocity);
          break;
        case 'w':
          velocity = 90;
          servo.write(velocity);
          break;
        case 'e':
          velocity = 180;
          servo.write(velocity);
          break; 
      }
       Serial.print("> ");
       Serial.print(ch);
       Serial.print(" ");
       Serial.print(velocity);
       Serial.print(" ");
       Serial.print(servo.readMicroseconds());
       Serial.println();
  }
}

Resultados

Servo A

Stop 86 (momento en que el servo deja de meter ruidito)

Servo B

Stop 83