Salve. Sono un principiante su Arduino.
Sto facendo un progetto che non mi sta venendo e non riesco a trovare nessuna soluzione su internet.
Voglio realizzare un circuito con un pulsante e un LED in cui:
all'avvio il LED è OFF
a ogni pressione del pulsante, lo stato del LED si inverte (funzionamento toggle).
Buonasera e benvenuto nella sezione Italiana del forum,
cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazioneNELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.
Grazie,
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto.
Ok, ma quando si chiede aiuto o consigli non basta dire "non mi sta venendo", senza neanche postare almeno il tuo codice che non funziona come vorresti. Non è che vai dal meccanico a piedi dicendo "la macchina fa un rumore strano": il meccanico vorrebbe vedere la macchina e provare a capire cosa intendi con "rumore strano", non ti pare?
In sostanza se quello che dovrebbe fare quel programmino è quanto hai descritto, è una cosa banalissima, a patto di conoscere un minimo come funziona Arduino e soprattutto almeno le basi del linguaggio. Comprenderai che se non conosci nessuna delle due, è difficile aiutarti o consigliarti...
Quindi cosa vorresti ottenere è abbastanza chiaro, ora pubblica qui il tuo codice racchiuso tra tag "code" (ossia seleziona tutto e solo il codice e premi il pulsante "<CODE>" in alto), e descrivi il comportamento attuale, che sarà diverso da quello che hai descritto.
PS: per "sperimentare" prova anche ad usare un emulatore Arduino come WokWi! Per vari motivi, intanto perché è più facile fare modifiche ai componenti e/o al codice (non serve l'IDE, non devi collegare nulla, non devi fare upload sulla board), sia perché puoi, appunto, "simulare" il comportamento e vedere cosa succede (anche modificando al volo il codice e mettendo breakpoint per esaminare il comportamento o il contenuto delle variabili), sia perché puoi anche ottenere una comoda immagine con il disegno del circuito con i suoi collegamenti, ed usarlo per poi realizzare il prototipo "fisico".
E se hai problemi puoi anche condividere il tutto tramite il suo link, e consentire a noi di "provare" quello che hai realizzato.
Il riconoscimento dell'istante di pressione. Si fa confrontando la lettura attuale del pulsante con la precedente, quindi servirà una variabile per contenere la lettura precedente (da aggiornare con l'ultima lettura dopo averla usata per il confronto).
L'inversione dello stato acceso/spento quando viene rilevata la pressione dal punto precedente. Quindi un'altra variabile contenente lo stato, e in base al suo valore accendere o spegnere il LED.
Oltre a questo sarà da (e vale sempre in ogni caso):
Stabilizzare il livello logico dell'ingresso quando il pulsante non è premuto. Quindi collegare una resistenza di pull-up o pull-down a seconda che si voglia collegare il pulsante rispettivamente verso GND o verso i 5V.
Filtrare i rimbalzi dei contatti meccanici, aggiungendo anche un condensatore da 100..470 nF tra l'ingresso e GND.