Arduino - Interruttore di collegamento

I pulsanti o gli interruttori collegano due terminali aperti in un circuito. Questo esempio accende il LED sul pin 2 quando si preme l'interruttore a pulsante collegato al pin 8.

Resistenza pull-down

I resistori pull-down vengono utilizzati nei circuiti logici elettronici per garantire che gli ingressi ad Arduino si stabilizzino ai livelli logici previsti se i dispositivi esterni sono scollegati o sono ad alta impedenza. Poiché nulla è collegato a un pin di ingresso, non significa che sia uno zero logico. Le resistenze di pull down sono collegate tra la massa e il pin appropriato sul dispositivo.

Un esempio di una resistenza pull-down in un circuito digitale è mostrato nella figura seguente. Un interruttore a pulsante è collegato tra la tensione di alimentazione e un pin del microcontrollore. In tale circuito, quando l'interruttore è chiuso, l'ingresso del microcontrollore è a un valore logico alto, ma quando l'interruttore è aperto, il resistore di pull-down abbassa la tensione di ingresso a terra (valore logico zero), impedendo uno stato indefinito all'ingresso.

Il resistore di pull-down deve avere una resistenza maggiore dell'impedenza del circuito logico, altrimenti potrebbe abbassare troppo la tensione e la tensione di ingresso sul pin rimarrebbe a un valore logico basso costante, indipendentemente dalla posizione dell'interruttore.

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • 1 × scheda Arduino UNO
  • 1 resistenza da 330 ohm
  • 1 × 4.7K ohm resistore (pull down)
  • 1 × LED

Procedura

Seguire lo schema del circuito ed effettuare i collegamenti come mostrato nell'immagine sotto riportata.

Schizzo

Apri il software IDE Arduino sul tuo computer. La codifica nella lingua Arduino controllerà il tuo circuito. Aprire un nuovo file di schizzo facendo clic su Nuovo.

Codice Arduino

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

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

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);
   } else {
      // turn LED off:
      digitalWrite(ledPin, LOW);
   }
}

Codice da notare

Quando l'interruttore è aperto, (pulsante non premuto), non c'è connessione tra i due terminali del pulsante, quindi il pin è collegato a massa (tramite la resistenza di pull-down) e si legge un LOW. Quando l'interruttore è chiuso (pulsante premuto), fa un collegamento tra i suoi due terminali, collegando il pin a 5 volt, in modo che leggiamo un ALTO.

Risultato

Il LED si accende quando si preme il pulsante e si spegne quando viene rilasciato.