Pessoal alguen poderia me ajudar a adicionar delay nesse código ? È para os servos se moverem mais lentamente já tentei de tudo mais não da certo.

Desde já Agradeço  a ajuda de todos.

#include <Servo.h> // Incluir a biblioteca de servo
#include <Stepper.h> // Incluir Biblioteca motor de passo'Stepper'
Stepper myStepper(300, 2, 4, 3, 5); // Define velocidade e a sequencia dos pinos do motor


Servo servoLeft; // Define left servo
Servo servoRight; // Define right servo

void setup() {
 servoLeft.attach(10); // Set left servo to digital pin 10
 servoRight.attach(9); // Set right servo to digital pin 9
}

void loop() { // Loop through motion tests

 myStepper.setSpeed(60); // Ajusta a velocidade, este valor pode ser mudado
 myStepper.step(200); // Numero de passos, sentido horário, - anti horario
 delay(500); // Delay de 0,5seg antes do próximo

 forward(); // Example: move forward
 delay(3000); // Wait 2000 milliseconds (2 seconds)
 reverse();
 delay(3000);
 turnRight();
 delay(3000);
 turnLeft();
 delay(3000);
 stopRobot();
 delay(3000);
}

// Motion routines for forward, reverse, turns, and stop
void forward() {
 servoLeft.write(0);
 servoRight.write(180);
}

void reverse() {
 servoLeft.write(180);
 servoRight.write(0);
}

void turnRight() {
 servoLeft.write(180);
 servoRight.write(180);
}
void turnLeft() {
 servoLeft.write(0);
 servoRight.write(0);
 }

void stopRobot() {
 servoLeft.write(90);
 servoRight.write(90);
}

  

Exibições: 2328

Responder esta

Respostas a este tópico

usa um for para reduzir a velocidade, por exemplo.

void forward() {

int i, j;

for(i=0,j=180; i<=180;i++,j--)

{
     servoLeft.write(j);
     servoRight.write(i);

     delay(10);
}

}

aí tu muda o delay conforme a velocidade que precisar, eu faço desse jeito.

Mais como ficaria no caso desse código ?

Obs. não sei se tem algum erro de sintaxe, pois digitei no bloco de notas, mas é mais ou menos assim

#include <Servo.h> // Incluir a biblioteca de servo
#include <Stepper.h> // Incluir Biblioteca motor de passo'Stepper'
Stepper myStepper(300, 2, 4, 3, 5); // Define velocidade e a sequencia dos pinos do motor

Servo servoLeft; // Define left servo
Servo servoRight; // Define right servo
int i, j;
void setup() {
servoLeft.attach(10); // Set left servo to digital pin 10
servoRight.attach(9); // Set right servo to digital pin 9

servoLeft.write(90);       //inicia com os 2 servos em 90
servoRight.write(90);    //inicia com os 2 servos em 90
}
void loop() { // Loop through motion tests
myStepper.setSpeed(60); // Ajusta a velocidade, este valor pode ser mudado
myStepper.step(200); // Numero de passos, sentido horário, - anti horario
delay(500); // Delay de 0,5seg antes do próximo
forward(); // Example: move forward
delay(3000); // Wait 2000 milliseconds (2 seconds)
reverse();
delay(3000);
turnRight();
delay(3000);
turnLeft();
delay(3000);
stopRobot();
delay(3000);
}
// Motion routines for forward, reverse, turns, and stop
void forward() {
for(i=90,j=90; i<=180;i++,j--)
{
servoLeft.write(j);
servoRight.write(i);
delay(10);
}
}
void reverse() {
for(i=180,j=0; i>=0;i--,j++)
{
servoLeft.write(j);
servoRight.write(i);
delay(10);
}
}
void turnRight() {
for(i=0; i<=180;i++)
{
servoRight.write(i);
delay(10);
}
}
void turnLeft() {
for(i=180,j=180; i>=0;i--,j--)
{
servoLeft.write(j);
servoRight.write(i);
delay(10);
}
}
void stopRobot() {
for(i=0,j=0; i<=90;i++,j++)
{
servoLeft.write(j);
servoRight.write(i);
delay(10);
}
}

Muito Obrigado funcionou perfeitamente

Agóra só falta eu duplicar esse código para funcionar em 4 servo motores sendo que 2 deles vao movimentar um sensor ultrasonico e mandar os comandos para a placa controladora do rover 5 e os outros 2 vai ficar para controlar a camera

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço