Go Down

Topic: ATMEGA 1280, Servos (Read 618 times) previous topic - next topic

jcrazy

Boa tarde senhores

Venho aqui esclarecer uma dúvida, estou com um problema e to custando a entender

Eu tenho um topico aberto http://arduino.cc/forum/index.php/topic,62191.0.html

Aonde conversei com algumas pessoas sobre o controle de servos para meu robo hexapode

O meu problema maior esta em gerar 20 sinais para os servos

Eles me falaram sobre a biblioteca servo, se eu estou servo refere-se ao exemplo knob e sweep ? Ou a biblioteca em si Servo.h

Outra coisa, o que iria me matar seriam os delays, um exemplo seria usar o sweep, mas para eu ter um movimento suave do servo
Preciso de um delay certo? Ou teria outra maneira ?
#include <Servo.h>

Servo servo1,servo2,servo3;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 50, pos2 = 45;    // variable to store the servo position

void setup()
{
  servo1.attach(1);
  servo2.attach(22);
  servo3.attach(23);  // attaches the servo on pin 9 to the servo object
}


void loop()
{
  for(pos = 0; pos < 100; pos += 1)  // goes from 0 degrees to 180 degrees
  {                                  // in steps of 1 degree
    servo1.write(pos);
    servo3.write(pos);    // tell servo to go to position in variable 'pos'
    delay(5);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 100; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    servo1.write(pos);              // tell servo to go to position in variable 'pos'
    delay(5);                       // waits 15ms for the servo to reach the position
  }
    for(pos = 0; pos < 120; pos += 1)  // goes from 0 degrees to 180 degrees **************************
  {                                  // in steps of 1 degree
    servo2.write(pos);    // tell servo to go to position in variable 'pos'
    delay(10);                       // waits 15ms for the servo to reach the position
  }
  for(pos = 120; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
  {                               
    servo2.write(pos);              // tell servo to go to position in variable 'pos'
    delay(10);                       // waits 15ms for the servo to reach the position
  }
}


Aqui eu apenas adicionei servos, estou certo ou errado, parti para os pinos digitais, e consegui gerar o sinal.

Abraço

Kotch

Movimentacao suave, parecida com a real, olhem em cinematica inversa:

http://pt.wikipedia.org/wiki/Cinem%C3%A1tica_Inversa

8)
????????????????????

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy