Problema di programmazione.

problema: non riesco a capire come far abbassare il gate dopo che il soggetto vi passa attraverso. il mio programma non funziona correttamente, dato che va giù a random quando vuole lui.

la resistenza è in pullup e il pulsante l'ho sempre usato così, è sbagliato?