Pages: [1]   Go Down
Author Topic: ATMEGA 1280, Servos  (Read 578 times)
0 Members and 1 Guest are viewing this topic.
Brasil
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Brazil
Offline Offline
Sr. Member
****
Karma: 0
Posts: 383
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

 smiley-cool
Logged

????????????????????

Pages: [1]   Go Up
Jump to: