#include <Servo.h>
Servo servomotor;
int anguloInicial = 0;
int anguloFinal = 180;
int tiempoCambio = 0;
int senal = 0;
int tiempoMax = 100; //Tiempo máximo de tardanza, equivale a velocidad mínima.
int tiempoMin = 2; //Tiempo mínimo de tardanza, equivale a velocidad máxima.
void setup() {
servomotor.attach(5);
servomotor.write(anguloInicial);
delay(1000);
}
void loop() {
int anguloTrabajo = anguloInicial;
for(anguloTrabajo; anguloTrabajo < anguloFinal; anguloTrabajo++){
servomotor.write(anguloTrabajo);
senal = analogRead(A0);
tiempoCambio = map(senal, 0, 1023, tiempoMax, tiempoMin);
delay(tiempoCambio);
}
for(anguloTrabajo; anguloTrabajo >= anguloInicial; anguloTrabajo--){
servomotor.write(anguloTrabajo);
senal = analogRead(A0);
tiempoCambio = map(senal, 0, 1023, tiempoMax, tiempoMin);
delay(tiempoCambio);
}
}