Ciao, se tieni premuto il pulsante funziona? Ho idea che non ti sembra succedere nulla perchè se premi e rilasci i led si aggiornano prima che il tuo occhio possa accorgersene. Per correttezza ti dico anche che devi effettuare il debounce sulla lettura del pulsante onde evitare false letture, per la prova che stai facendo poco importa ma per la realizzazione finale si
Non essendoti ancora presentato Ti invitiamo a presentarti QUI
(dicci quali conoscenze hai di elettronica e di programmazione) e a leggere il regolamento QUI
se non lo hai già fatto.
Dando per scontato che la parte HW sia corretta con quel codice stai dicendo al micro di invertire le luci fin tanto che il pulsante è premuto. Se quindi vai a premere il pulsante al massimo vedrai un cambiamento rapido dei LED per poi ritornare subito allo stato iniziale.
Era questo il risultato che volevi raggiungere? Oppure un circuitino che ad ogni pressione del tasto inverte i LED?
Senza di questo l'input assume un valore casuale (HIGH o LOW) quando il pulsante non è premuto.
Usando invece il resistore di pull up interno
(pinMode(button, INPUT_PULLUP);
puoi evitare il resistore esterno, ma devi invertire la logica
statobutton = digitalRead(button);
if(statobutton == LOW) {
Buona sera, vi ringrazio tutti quanti, per avermi risposto..... ma continua a non funzionare....
Ho provato a seguire il consiglio di "cyberns" ma non funziona.
Alla domanda di RobertoBochet rispondo così: io vorrei che quando il pulsante è rilasciato il led1 si accenda, mentre quando si pigia sul pulsante sia acceso solo il led2...
Devi inserire, come ti è già stato consigliato, una resistenza di pull-up o di pull-down a seconda delle tue esigenze.
Per quanto riguarda la resistenza di pull-up puoi attivare anche quella interna di arduino.
RESISTENZA DI PULL-UP: In uscita avremo lo stato logico HIGH senza premere il pulsante, premendo il pulsante avremo lo stato logico LOW.
RESISTENZA DI PULL-DOWN: In uscita avremo lo stato logico LOW senza premere il pulsante, premendo il pulsante avremo lo stato logico HIGH
@alanmasutti: i pin in ingresso di Arduino sono ad alta impedenza e, se li lasci non connessi, NON hanno uno stato logico proprio, ma completamente aleatorio e variabile!
Se vuoi garantirti che un pin non connesso sia sempre a livello LOW o a livello HIGH devi usare delle resistenze delle di pull-down se lo collegano a GND (LOW) o di pull-up se lo collegano a +Vcc (HIGH).
Comunque ... queste sono le BASI e ... prima di iniziare qualsiasi progetto (in generale), per riuscire a capire quello che fa, almeno le basi uno dovrebbe studiarsele