Togli tutti i delay
if (currentTime - previousTime > interval) {
previousTime = currentTime;
digitalWrite(rele2, LOW) ; // Accende la ventola
for (int n=0; n<175; n++) // Rotazione 45 gradi, un grado per volta
myServo.write(n); // Faccio muovere il servo di un grado
delay(calcolaVelocita()); // Imposto il ritardo prima del movimento
delay(20000); // aspetto 20 secondi
digitalWrite(rele2, HIGH) ; // Spegne la ventola
}
Qua ci sono 2 errori:
Il for non comprende delay(calcolaVelocita()); percui prima si muove e poi viene il ritardo. Il for é cosí veloce che é uguale come se mettesti il servo direttamente a 175 senza passi intermedi.
E il delay(20000) blocca tutto per 20 secondi.
Ciao Uwe