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}

Articoli correlati

Share This