Problema di programmazione.

Akira_Garashi:

Pelletta:
Un consiglio: abituati ad usare millis() al posto di delay, ne vedo diversi...
In questo modo eviti di bloccare tutto il micro, quindi letture del sensore e movimento del servo compresi

ma millis() non ritorna un valore finito di tempo da quando il programma è partito? non saprei come usarlo al posto di delay() non mi sembra la stessa cosa.

delay() ti ferma il programma. Il programa non fa nient'altro finché non è passato il tempo prestabilito.
Con millis puoi fare la stessa cosa con un semplice if. Guardati lo sketch di esempio allegato all'IDE "Blink Without Delay".