Servocomandi e pulsanti

Piccola considerazioni sui pulsanti e i pin di arduino: i pin di input su arduino hanno una alta impedenza (sono molto sensibili) percui quando si collega un pulsante non basta collegare un pin di questo ad arduino a l'altro al positivo o negativo di alimentazione in quanto quando il pulsante non è premuto (aperto) il pin di arduino non è collegato da nessuna parte e basta anche avvicinarsi con un dito per fargli commutare come se il pulsante fosse premuto, la soluzione è collegare tra il pin di arduino e positivo o negativo una resistenza di 10Kohm, ovvio che se la resistenza la colleghi al positivo l'altro piedino del pulsante va collegato al negativo e viceversa. Quando si definisce il pinmode si può abilitare la resistenza interna al positivo (pullup) senza bisogno di metterne una esterna, ma in questo caso essendo il pulsante collegato al negativo quando è premuto sigifica che quando è aperto per arduino il pin è High.
Se abiliti la pullup da pin mode devi quindi cambiare logica di lettura dei pulsanti, quello che prima era:

if(digitalRead(4)){ esegui la if se il pin è High

diventa

if(!digitalRead(4)){ esegue la if se il pin è Low (nota il segno di negazione "!")