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);
}
Tags:
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por