Files
ESP32Servo/main.cpp
2026-06-10 14:53:17 +00:00

44 lines
1.3 KiB
C++

#include <Arduino.h>
#include <ESP32Servo.h>
Servo miServo; // Crea el objeto para controlar el servo
int pinServo = 13; // Pin GPIO del ESP32 conectado a la señal del servo
void setup() {
Serial.begin(115200);
// Asignación de temporizadores para el ESP32 (recomendado por la librería)
ESP32PWM::allocateTimer(0);
ESP32PWM::allocateTimer(1);
ESP32PWM::allocateTimer(2);
ESP32PWM::allocateTimer(3);
// Los servos suelen trabajar a una frecuencia de 50Hz
miServo.setPeriodHertz(50);
// Conecta el servo al pin, con anchos de pulso mínimo (500us) y máximo (2400us)
// Nota: Estos valores (500, 2400) son estándar, pero algunos servos usan (1000, 2000)
miServo.attach(pinServo, 500, 2400);
Serial.println("Iniciando prueba del servomotor...");
}
void loop() {
Serial.println("Moviendo a 180 grados...");
// Gira de 0 a 180 grados
for (int pos = 0; pos <= 180; pos += 1) {
miServo.write(pos);
delay(15); // Espera 15ms para que el servo alcance la posición
}
delay(1000); // Pausa de 1 segundo
Serial.println("Regresando a 0 grados...");
// Gira de 180 a 0 grados
for (int pos = 180; pos >= 0; pos -= 1) {
miServo.write(pos);
delay(15);
}
delay(1000); // Pausa de 1 segundo
}