Primo Esempio: Il bottone

In questo esempio voglio mostrarvi come collegare ed implementare nei vostri progetti un bottone:

Per prima cosa diamo un’occhiata allo schema elettrico: Il bottone presenta quattro estremità (Pin) connessi due a due da contatti interni al pulsante. Abbiamo in realtà, quindi, due contatti indipendenti che andremo a collegare. Nello schema elettrico questo corrisponde alla apertura e chiusura di un circuito: il passaggio dallo stato di quiete delle cariche, al passaggio di una corrente elettrica nel circuito. Quello che vogliamo fare è gestire la variazione di potenziale elettrico avvertita dai pin digitali del nostro microcontrollore, attuata dalla pressione del nostro bottone.

Come potete vedere, oltre al bottone, nel circuito è riportata una resistenza a massa tra il Digital Pine il bottone; questa resistenza è chiamata “resistenza in Pull-Down“, ed è necessaria al fine di mantenere lo stato logico LOW (basso) finché il bottone non è premuto. Questo tipo di operazione è necessaria nei circuiti logici al fine di mantenere lo stato logico voluto (Low nel caso di pull-down e HIGH nel caso di pull-up) nel caso in cui si voglia interfacciare un circuito aperto ad uno logico (come in questo caso), o nel caso in cui una periferica venga scollegata dal micro controllore.
La resistenza in pull-up/down sostanzialmente applica una debole tensione al pin dove essa è connessa.

Lato software:

Per quanto riguarda il software Arduino, ho scritto un software che riassuma una serie di Interruzioni applicabili all’utilizzo del nostro bottone:
Il bottone attuerà l’accensione di un led, stamperà a schermo un testo tramite porta seriale e incrementerà ad ogni pressione un contatore.

In allegato il codice sorgente: Button.ino
(clicca per ingrandire)

button_ide


Iniziamo dichiarando il pin al quale abbiamo collegato il bottone (nel nostro caso il pin digitale 4) e il LED (nel nostro caso il pin digitale 3)
Codice:

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);    
 Serial.begin(9600); 
}


Nel setup dichiariamo i pin in entrata e in uscita ed inizializziamo la porta seriale:
Codice:

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);    
 Serial.begin(9600); 
}


Nel loop, ad ogni ciclo il microcontrollore controllerà lo stato del pin digitale al quale abbiamo assegnato il bottone in ingresso, se il bottone è stato premuto allora tramite il comando digitalWriteverrà acceso il led, e tramite il comando Serial.print verrà stampata la stringa “Button“.
Inoltre verrà incrementato il valore della variabile i, e inseguito stampato a schemo.
Queste sono solo alcune delle possibilità d’uso del nostro pulsante;
Considerate il bottone come una sorgente di interrupt da impartire al microcontrollore per svolgere qualsiasi tipo di compito.

Codice:

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH); 
    // print some lines to serial port 
    Serial.print("Button");
    // increment variable i and display
    Serial.println(i);
    i++;
    //wait for 0.5 seconds
    delay(500);
  } 
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW); 
  }
}

Per qualunque chiarimento invito a lasciare un commento nel box sottostante 🙂

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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