• 1
  • info@lungolagocapodimonte.it

    Guida Tutorial - Usare un pulsante per controllare un Led Arduino Uno o Duemilanove - Terza Parte

    Usare un pulsante per controllare un Led con Arduino Uno o Duemilanove - Terza Parte

     

     

    Usare un pulsante per controllare un Led


    Noterete che il seguente approccio non è perfetto, per via di un altro problema degli interruttori meccanici. I pulsanti sono dispositivi molto semplici: due parti di metallo separate da una molla. Quando permete il pulsante,, i due contatti si toccano e l’elettricità può influire. Questo suona facile, ma nella vita reale il collegamento non è così perfetto, specie quando il pulsante non è permuto completamente, e genera dei segnali spuri detti rimbalzi ( bouncing )

    Quando il pulsante produce questi segnali, Arduino vede una sequenza molto rapida di segnali acceso-spento.


     

     

    Codice ( Sketch ) per l'accesione del Led

     

    Esempio: Accende il Led quando è premuto il pulsante e lo si mantiene acceso dopo che lo si rilascia; Ora con una nuova formula migliore.


    {codecitation class="brush:cpp"}

    #define Led  13   // Il Pin del Led
    #define Pulsante 7 // Il Pin di Input dove è collegato il pulsante
    int Valore = 0; // Valore servirà per conservare lo stato del Pin di Input
    int Vecchio_Valore = 0; // Questa variabile conserva il valore precedente di "Valore"
    int Stato = 0; // 0 = Led spento e 1 = Led acceso

    void setup()
    {
    pinMode(Led, OUTPUT); // Indica ad Arduino che Led è un Output
    pinMode(Pulsante, INPUT); // e che Pulsante è un Input
    }
    void loop()
    {
    Valore = digitalRead(Pulsante); // Legge il valore dell'Input e lo conserva

    if ((Valore == HIGH) && (Vecchio_Valore == LOW)) // Controlla se è avvenuta una transizione
    {
    Stato = 1 - Stato;
    }

    Vecchio_Valore = Valore; // Memorizza il valore precedente di Valore

    if (Stato == 1)
    {
    digitalWrite(Led, HIGH); // Accende il Led
    }
    else
    {
    digitalWrite(Led, LOW);
    }
    }

    {/codecitation}

    Aggiungi commento


    Codice di sicurezza
    Aggiorna