44 lines
1.3 KiB
C++
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
|
|
} |