Monitoraggio dello stato di uno switch (lettura seriale digitale) - Nozioni di base su Arduino

Prova Il Nostro Strumento Per Eliminare I Problemi





Questa base di Arduino discute il metodo di implementazione di un codice attraverso il quale lo stato ON o OFF di un pulsante esterno potrebbe essere letto o monitorato all'interno di Arduino.

Seriale di lettura digitale

Qui impariamo attraverso un esempio come monitorare lo stato di uno switch eseguendo la comunicazione seriale tra Arduino e PC tramite USB.



Oltre alla tua scheda Arduino, avresti bisogno dei seguenti elementi fondamentali:

Hardware

Un interruttore momentaneo, un pulsante o un interruttore a pressione



Resistore da 10k, 1/4 watt ohm

breadboard
collegamenti del cavo di collegamento o del ponticello.

Funzionamento del circuito

L'operazione può essere eseguita con i seguenti passaggi:

Prendi 3 pezzi di cavi jumper e collegali alla tua scheda Arduino, due dei fili, rosso e nero, vanno alle due lunghe file verticali sul lato della breadboard che diventano i cavi di alimentazione della scheda per trasportare il richiesto 5 V CC alla scheda.

Il terzo filo viene utilizzato per collegare il pin digitale 2 a uno dei conduttori dell'interruttore push-to-ON.

Questo particolare cavo del pulsante si collega anche con un resistore pull-down da 10k al rail di alimentazione negativo o alla terra. L'altro cavo libero dell'interruttore è collegato al positivo dell'alimentazione a 5 volt.

Con i collegamenti di cui sopra effettuati, l'interruttore commuta o esegue una doppia azione nel circuito quando viene premuto.

Normalmente quando l'interruttore è in una posizione scollegata, i suoi due conduttori rimangono isolati, in modo tale che il pin che è collegato a terra tramite il resistore pull-down renda un livello BASSO o 0 logico.

Nella situazione di pressione, l'interruttore esegue un ponte momentaneo dei suoi due conduttori, in modo tale che i suoi conduttori siano soggetti a + 5 volt, rendendo un livello HIGH o logico 1 attraverso di essi.

L'isolamento delle piedinature degli I / O digitali dal resto delle cose potrebbe forzare il LED ad andare in tilt e causare un lampeggiamento irregolare. Ciò è dovuto al fatto che l'input non viene restituito a nulla o mantenuto in una posizione `` sospesa '', il che significa che non è designato per alcuna logica definita, né alto né basso (+ 5V o 0V), questo è il motivo per cui utilizziamo il resistenza pull-down con l'interruttore.

Schematico

Capire il codice

Nel seguente programma di seguito, iniziamo con la comunicazione seriale all'interno della funzione di configurazione alla velocità di 9600 bit di dati al secondo, questo viene avviato tra la scheda Arduino e il computer collegato: Serial.begin (9600)

Nella fase successiva attiviamo il pin digitale 2, il pin che sarebbe responsabile dell'uscita con l'interruttore a pressione come ingresso: pinMode (2, INPUT) Questo completa la nostra 'configurazione', ora navighiamo nel loop principale del nostro codice .

Qui premendo il pulsante, 5 volt possono attraversare il nostro circuito, mentre il pin di ingresso viene collegato con il terreno attraverso la resistenza da 10 kilohm quando è in una condizione non pressata.

Quanto sopra è ciò che chiamiamo ingresso digitale, che si riferisce a una condizione in cui l'interruttore può essere solo in uno stato particolare o uno stato on (accettato da Arduino come '1', o LOGIC HIGH) o uno stato off (visualizzato da Arduino come uno '0', o LOGIC LOW), senza altri stati indefiniti tra di loro.

L'azione fondamentale che dobbiamo eseguire nel ciclo principale del programma è applicare una variabile per mantenere in posizione le informazioni che sono state inviate tramite il pulsante.

Come discusso in precedenza con i segnali sotto forma di '1' o '0', qui utilizziamo un tipo di dati int. Possiamo denominare questa variabile come sensorValue e correggerla in modo che corrisponda a tutto ciò che viene letto sul pin digitale 2. Tutto ciò diventa realizzabile tramite una riga di codice:

int sensorValue = digitalRead (2) Una volta che Arduino ha letto l'input, stampalo di nuovo al computer sotto forma di valore decimale.

Questo può essere implementato con l'aiuto del comando Serial.println () nella riga conclusiva del codice: Serial.println (sensorValue)

Dopodiché, ogni volta che il monitor seriale viene avviato nel dominio Arduino, assisteremo a una catena di '0' durante la posizione di apertura del pulsante e agli 1 della catena nel caso in cui il pulsante venga tenuto chiuso.

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




Precedente: Controller del flusso d'acqua personalizzato con circuito timer Avanti: Conversione da analogico a digitale (lettura seriale analogica) - Nozioni di base su Arduino