ImageImageImageImage
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

estudio servo 9g

Foro dedicado a la parte mecánica, impresoras 3D...

Moderator: Junta Directiva

Post Reply
xiculan
Posts: 8
Joined: Sat Oct 30, 2010 12:37 am
Nombre: francesc

estudio servo 9g

Post by xiculan » Tue Aug 22, 2017 7:31 pm

saludos a todos, hacia tiempo que no pasaba por aqui

estoy haciendo un estudio acerca del funcionamiento de los servos tower pro 9g.

Con un arduino y un potenciometro hago mover el servo, pero cuando le pongo carga (una pieza hecha con impresora 3d) le se mueve un poco a tropezones

el programa que utilizo es:
/* 
servo con potenciometro
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int val_max = 138;
int val_min = 72;

int pot_pin = 0;  // analog pin used to connect the potentiometer
int servo_pin = 9;

int potval = 0;    // variable to read the value from the analog pin
int esc_pot_val;
int servo_val;



void setup()
{
   Serial.begin(9600);
  myservo.attach(servo_pin);  // attaches the servo on pin 9 to the servo object
  pinMode(pot_pin , INPUT);  
}

void loop() 
{ 
  potval = analogRead(pot_pin);            //leemos valor del poten (entre 0 i 1023)
  
  servo_val = map(potval, 0, 1023, val_min, val_max);     //escalamos el valor para el servo
  
  myservo.write(servo_val);                  // sets the servo position according to the scaled value 
  
  Serial.print("in pot val:");
  Serial.print(potval);
    
  Serial.print("      out servo val:");
  Serial.println(servo_val);
  //delay(500);                           // waits for the servo to get there 
}
entonces la pregunta que me surge es: si muevo el potenciometro rapido, el servo no se mueve suavemente, esto esta causado por la mecanica/calidad del servo?

se podria corregir mediante codigo?

gracias

Ranganok
Usuario Desarrollador
Usuario Desarrollador
Posts: 3874
Joined: Mon Nov 07, 2005 3:10 pm
Location: Barbaros del Valle
Contact:

Re: estudio servo 9g

Post by Ranganok » Sun Aug 27, 2017 5:18 pm

En principio los datos de los servos hay que refrescarlos cada 20ms es posible que no lo estés haciendo por culpa de la transmisión serie (no he hecho los cálculos).

Deberías separar el envío de datos al servo de la transmisión, por ejemplo usando interrupciones del micro o un PWM (aunque tan bajo no se si llegará).

S2

Ranganok Schahzaman
skiras.blogspot.com

"En igualdad de condiciones la explicación más sencilla es la cierta"

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests