//Fuente Chip-Scope https://github.com/Dlloydev/Wokwi-Chip-Scope
// tutorial servo https://blog.wokwi.com/learn-servo-motor-using-wokwi-logic-analyzer/
// Pines
const int servoPin = 16;
const int potPin = 34; // ADC1
// PWM configuración
const int freq = 50;
const int resolution = 16;
// Rango servo (Wokwi)
const int dutyMin = 1638; // 0.5 ms ->0°
const int dutyMax = 8191; // 2.5 ms -> 180°
// Temporización
unsigned long tiempoAnterior = 0;
const unsigned long intervalo = 20; // ms
void setup() {
Serial.begin(115200);
ledcAttach(servoPin, freq, resolution);
}
void loop() {
unsigned long tiempoActual = millis();
if (tiempoActual - tiempoAnterior >= intervalo) {
tiempoAnterior = tiempoActual;
// 1. Lectura ADC
int valorADC = analogRead(potPin);
// 2. Conversión ADC → PWM (servo)
int duty = map(valorADC, 0, 4095, dutyMin, dutyMax);
// 3. Aplicar PWM
ledcWrite(servoPin, duty);
// 4. Monitoreo
Serial.print("ADC: ");
Serial.print(valorADC);
Serial.print(" | Duty: ");
Serial.print(duty);
Serial.println();
}
}