#include <ESP32Servo.h>
Servo miServo;
const int servoPin = 18;
// Rutina de posiciones solicitada [cite: 38]
int angulos[] = {0, 90, 180, 270, 300, 360};
// Tiempos para alcanzar la posición y medir respuesta [cite: 39, 40]
int delais[] = {2000, 2000, 2000, 2000, 2000, 4000};
void setup() {
Serial.begin(115200);
miServo.setPeriodHertz(50);
// El rango 500-2500us es el estándar para cubrir el giro total
miServo.attach(servoPin, 500, 2500);
Serial.println("Iniciando Práctica F: Rutina de posición y tiempos ");
}
void loop() {
for (int i = 0; i < 6; i++) {
Serial.print("Objetivo: ");
Serial.print(angulos[i]);
Serial.println(" grados");
// MAPEAMOS los grados a microsegundos para ignorar el límite de 180
int pulso = map(angulos[i], 0, 360, 500, 2500);
miServo.writeMicroseconds(pulso);
delay(delais[i]); // Tiempo para medir la respuesta
}
}