Recientemente estuve jugando con unos servos para un proyecto que requiere hacer que el servo se mueva «grado por grado» desde cero hasta 180 grados.

Descubrí que de los 0º a los 10° no parece ocurrir movimiento alguno, así que por accidente descubrí que los servos comerciales que compré no tienen una resolución menor a 10 grados.

El siguiente sketch de Arduino hace ese barrido desde los  0º a los 180° en cámara lenta, de forma que nos permite ver de manera experimental cual es la resolución de un servo determinado.

En mi caso, al parecer el servo que tengo tiene una resolución de aproximadamente 7°, lo que quiere decir que si le pido una posición que no dista más de 7 grados de la posición actual, el servo no se moverá.


#include  
#include "rgb_lcd.h"
#define trigger    2
#define echo       7
#define led       13
rgb_lcd lcd;
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 

void setup() 
{ 
  Serial.begin(9600);
  Serial.println("SETUP");
  lcd.begin(16,2); // columns, rows.  use 16,2 for a 16x2 LCD, etc.
  lcd.setRGB(50,50,50);
  pinMode(trigger, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(13,OUTPUT);
  myservo.attach(3);  // attaches the servo on pin 9 to the servo object 
  myservo.write(0);
  Serial.println("SETUP COMPLETE!");
} 
 
 
void loop() 
{ 
  Serial.println("BEGINING SCAN...");
  blinkEffect(3,500);
  Serial.println("SCANNING...");
  for(int i=0; i<=180; i++){
    Serial.print("ANGLE: ");
    Serial.println(i);
    lcd.setCursor(0,0);
    lcd.print("ANGLE: ");
    lcd.print(i);
    lcd.print("    ");
    myservo.write(i);
    delay(1000);
  }
} 


void blinkEffect(int times, int duration){
  for(int i=0; i<3; i++){
    digitalWrite(led,HIGH);
    delay(duration);
    digitalWrite(led,LOW);
    delay(duration);
  }
}

 7,271 total views,  1 views today

6Shares
Última modificación: mayo 22, 2016

Autor

Comentarios

Escribe una respuesta o comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.