Crea sito

Arduino: come controllare un Led con un Pulsante [Seconda Puntata]

Arduino_LogoEccoci qui arrivati alla seconda puntata dedicata al mondo Arduino e in particolare al controllo di un Led attraverso un Pulsante. In questa seconda puntata andremo a migliorare quello che abbiamo fatto nella precedete guida.

Solo che questa volta, non saremo lampeggiare il Led a forza di clicck sul Pulsante, ma implementeremo una vera funzione di accensione e spegnimento.


Ovviamente la lista della spesa rimane la stessa:

  • 1 breadboard
  • 1 pulsante
  • 1 Led (sono passato dal colore ROSSO a quello di colore BLU)
  • 1 resistenza da 10k Ohm
  • almeno 5 fili
  • ovviamente, se non avete una schedina Arduino, non potete fare nulla 😀

Lo schema del nostro circuito, rimane sempre la stessa:

arduino_led_schema
questo schema è preso da: http://fritzing.org/home/

Per quello che riguarda la traduzione dello schema, in qualcosa di reale, ovviamente dobbiamo avere sempre le stesse impostazioni di prima:
progetto arduino led progetto arduino led

Da questo momento in poi, alcune cose sono cambiate e non sono quasi più le stesse della prima puntata.

Codice Sorgente del Programma:

Analizziamo il programma:
L’analisi iniziale di questo sorgente lo trovate qui, mentre per quello che riguarda questo appuntamento, le cose che vi devo spiegare sono le seguenti.

1. Come prima cosa abbiamo inserito due nuove variabili intere. La prima è int vecchio_status e int stato. La prima variabile ha lo scopo di ricordare l’ultimo stato delle nostre indicazioni attraverso il click sul pulsante, mentre la seconda ha lo scopo di tenere conto della funzione I/O o meglio accesso spento, cioè con Zero indico led spento e con Uno indico led accesso.

2. Come seconda modifica al programma precedente, è la seguente:

if ((val == HIGH) && (vecchio_status == LOW)) {
stato = 1 - stato;
delay(20);

Che cosa abbiamo aggiunto di nuovo. Abbiamo richiamato la nostra variabile int vecchio_status e gli abbiamo detto che se riceve in input 1, quindi pulsante premuto e led accesso, deve mantenere questo stato fintanto che non viene modificato da un secondo click sul pulsante. A questo abbiamo aggiunto anche un delay di 20 millisecondi, per dare il tempo al programma e alla chip della schedina Arduino, di capire le nostre azioni.

Una terza modifica, obbligatoria in questo caso è quella di dichiarare la variabile vecchio_status = val; in questo modo il nostro programma gestisce i vari stadi I/O.

Questo dovrebbe essere il risultato finale, di questo secondo appuntamento:

Per il momento questo è tutto quello che si può dire. Al più presto arriverà anche un terzo appuntamento dedicato a questo argomento.

Concludo questo post, lasciandovi alcuni widget della amazon.it, che mi possono essere utili:

Pubblicato da Flavius Florin Harabor

Appassionato d'informatica e da sempre dedicato al mondo della tecnologia e soprattutto al mondo open source. Dedico molto del mio tempo ai sistemi operativi Linux e anche alla programmazione web.

6 Risposte a “Arduino: come controllare un Led con un Pulsante [Seconda Puntata]”

  1. Dopo mesi di ricerche finalmente ho trovato uno che si degna , finalmente ,di spiegare in modo veramente semplice e comprensibile ,anche ai piu cocciuti,il senso del programma ed il significato e la descrizione dei singoli comandi del programma senza tutte quelle descrizioni tecnicistiche da professoroni .

    Grazie ,Grazie ,Grazie !
    continua cosi

    1. Ciao Claudio, in tanto ti chiedo scusa per questo magnifico commento… Ti chiedo solo scusa per il fatto che non ho più continuato per alcuni piccoli problemi, di cui alcuni con questo blog… diciamo che in questo 2015 ci saranno sia delle novità per questo sito, ma anche per la parte dedicata ad Arduino.

      nel mentre ti segnalo questo nuovo progetto avviato da poco e che ha come scopo quello di spiegare le cose in modo facile e passo a passo => http://www.insidevcode.eu/

  2. Ciao, Complimenti!
    Veramente molto utile la tua spiegazione,
    Ho Caricato il programma sul mio Arduino MEGA, Funziona MOLTO bene.
    Se non fosse che ciclicamente il led si spegne se lo avevo lasciato acceso e fa 2 lampeggi veloci ogni 30 secondi circa. Non credo sia dovuto al tuo programma. Vorrei capire a cosa è dovuto.

    1. Ciao Fabio, grazie per i complimenti… Il plugin contro i commenti spam ti ha messo tra tutti i commenti non graditi, quindi mi scuso con te per la risposta in ritardo che ti do..

      in tanto volevo sapere se hai risolto il problema?
      il problema potrebbe essere risolto attraverso questi due link:
      http://arduino.cc/en/Tutorial/BlinkWithoutDelay
      http://arduino.cc/en/Reference/Millis

      se invece hai risolto in un modo diverso, mi farebbe piacere sapere come, ed eventualmente se ti va la aggiungo a fine post come soluzione…

      1. Scusa ma il problema era dovuto alla mia inesperienza con Arduino.
        Ho verificato che quando lo alimento da USB Mi si resetta circa ogni minuto.
        Ho risolto alimentando la scheda con un alimentatore esterno.
        Grazie

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.