// Programa: Controlando um servo motor com ESP32 (servo motor arduino code)
#include <ESP32Servo.h>
Servo meuServo1; // Cria um objeto Servo para controlar o servo motor Coxa/Trocanter
Servo meuServo2; // Cria um objeto Servo para controlar o servo motor Trocanter/Fêmur
Servo meuServo3; // Cria um objeto Servo para controlar o servo motor Fêmur/Tíbia
Servo meuServo4; // Cria um objeto Servo para controlar o servo motor Coxa/Trocanter
Servo meuServo5; // Cria um objeto Servo para controlar o servo motor Trocanter/Fêmur
Servo meuServo6; // Cria um objeto Servo para controlar o servo motor Fêmur/Tíbia
int pos; // Declara uma variável para controlar a posição do servo motor
void setup() {
meuServo1.attach(5); // Associa o servo motor ao pino digital 5 do ESP32
meuServo2.attach(4); // Associa o servo motor ao pino digital 4 do ESP32
meuServo3.attach(2); // Associa o servo motor ao pino digital 2 do ESP32
meuServo4.attach(16); // Associa o servo motor ao pino digital 16 do ESP32
meuServo5.attach(17); // Associa o servo motor ao pino digital 17 do ESP32
meuServo6.attach(18); // Associa o servo motor ao pino digital 18 do ESP32
meuServo1.write(0); // Define a posição inicial do servo motor para 0 graus
meuServo2.write(0); // Define a posição inicial do servo motor para 0 graus
meuServo3.write(0); // Define a posição inicial do servo motor para 0 graus
meuServo4.write(0); // Define a posição inicial do servo motor para 0 graus
meuServo5.write(0); // Define a posição inicial do servo motor para 0 graus
meuServo6.write(0); // Define a posição inicial do servo motor para 0 graus
}
void loop() {
// Movimento do servo2 Trocanter de 0 a 45 graus
for (pos = 0; pos < 45; pos++) {
meuServo2.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 5 milissegundos antes de mover para a próxima posição
}
// delay(1000); // Aguarda 1 segundo antes de iniciar o próximo movimento
// Movimento do servo5 Trocanter de 45 a 0 graus
for (pos = 45; pos >= 0; pos--) {
meuServo5.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 5 milissegundos antes de mover para a próxima posição
}
// delay(1000); // Aguarda 1 segundo antes de iniciar o próximo moviment
// Movimento do servo Fêmur de 0 a 40 graus
for (pos = 0; pos < 40; pos++) {
meuServo3.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 5 milissegundos antes de mover para a próxima posição
}
delay(100); // Aguarda 1 segundo antes de iniciar o próximo movimento
// Movimento do servo6 Fêmur de 40 a 0 graus
for (pos = 40; pos >= 0; pos--) {
meuServo6.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 5 milissegundos antes de mover para a próxima posição
}
delay(100); // Aguarda 1 segundo antes de iniciar o próximo ciclo
// Movimento do servo Coxa de 0 a 180 graus
for (pos = 0; pos < 180; pos++) {
meuServo1.write(pos); // Define a posição atual do servo
delay(15); // Aguarda 15 milissegundos antes de mover para a próxima posição
}
delay(1000); // Aguarda 1 segundo antes de iniciar o próximo movimento
// Movimento do servo4 Coxa de 180 a 0 graus
for (pos = 180; pos >= 0; pos--) {
meuServo4.write(pos); // Define a posição atual do servo
delay(15); // Aguarda 15 milissegundos antes de mover para a próxima posição
}
delay(1000); // Aguarda 1 segundo antes de iniciar o próximo ciclo
// Movimento do servo Fêmur de 40 a 0 graus
for (pos = 40; pos >= 0; pos--) {
meuServo3.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 15 milissegundos antes de mover para a próxima posição
}
delay(100); // Aguarda 1 segundo antes de iniciar o próximo ciclo
// Movimento do servo Fêmur de 0 a 40 graus
for (pos = 0; pos < 40; pos++) {
meuServo6.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 5 milissegundos antes de mover para a próxima posição
}
delay(100); // Aguarda 1 segundo antes de iniciar o próximo movimento
// Movimento do servo Trocanter de 45 a 0 graus
for (pos = 45; pos >= 0; pos--) {
meuServo2.write(pos); // Define a posição atual do servo
delay(5); // Aguarda 15 milissegundos antes de mover para a próxima posição
}
// delay(1000); // Aguarda 1 segundo antes de iniciar o próximo moviment
// Movimento do servo Coxa de 180 a 0 graus
for (pos = 180; pos >= 0; pos--) {
meuServo1.write(pos); // Define a posição atual do servo
delay(15); // Aguarda 15 milissegundos antes de mover para a próxima posição
}
delay(1000); // Aguarda 1 segundo antes de iniciar o próximo ciclo
}