Infatti ... secondo me cos'ì com'è è un inutile spreco di energia (e mi ricollego anche al post di marco_58).
Immagino che, nello schema proposto, i pin di I/O, che suppongo configurati ad alta impedenza (vedi nota1), vadano tenuti bassi e 'reagiscono' (secondo programma) quando vengono mandati alti.
La configurazione tipica di questi casi è la resistenza (ma 330 Ohm mi sembrano inutilmente pochi) tra il pin di I/O e la massa (detta resistenza di pull-down ... ovvero 'tiralo giù' ) che impone normalmente il valore logico zero. il Pin di I/O è anche collegato ad un capo del pulsante (o del deviatore) 'normalmente aperto'. L'altro capo del pulsante deve essere collegato al positivo. Quando si preme il pulsante (o il deviatore) la corrente fluisce attraverso la resistenza (e non attraverso il pin di I/O che ha un'impedenza d'ingresso enormemente più alta) e manda il capo della resistenza, quello collegato al pin di I/O, al valore del positivo quindi NON zero ovvero alto.
Leggo però anche (vedi nota2) che arduino dispone al suo interno di resistenze pull-up (che funzionano al contrario ovvero tengono normalmente alto l'ingresso) pertanto il circuito potrebbe essere semplificato eliminando la resistenza, mettendo i pulsanti (o i deviatori) normalmente aperti tra il il pin di I/O e la massa e, ovviamente, invertendo la logica del programma (ovvero attivando la funzione quando il pin va basso).
In sintesi ... anche quando si copia è opportuno utilizzare il buon senso e il ragionamento unitamente, magari, a un po di conoscenza e/o sperimentazione (cosa che,
solo per quanto riguarda Arduino, a me manca ... quindi perdonate eventuali imprecisioni).
Saluti a tutti
Cita:
NOTA1 (Info facilmente reperibili in rete ...)
INPUT
Quando configuriamo un pin come INPUT lo settiamo in condizione di alta impedenza, in pratica è come se in serie al pin ci fosse una resistenza di circa 100MOhm. Questa resistenza serve a non “caricare” il circuito da cui andiamo a leggere il dato limitando l’assorbimento di corrente.
Cita:
NOTA2 (Info facilmente reperibili in rete ...)
possiamo usare una resistenza di pull-up “nativa” dell’arduino. Essa si attiva usando il comando digitalWrite(pin, HIGH) su un pin precedentemente configurato come input. In questo modo si attiva una resistenza da 20 KOhm interna all’Arduino tra l’alimentazione ed il pin.