Überwachungszustand eines Switches (Digital Read Serial) - Grundlagen von Arduino

Versuchen Sie Unser Instrument, Um Probleme Zu Beseitigen





In diesen Arduino-Grundlagen wird die Methode zum Implementieren eines Codes erläutert, mit dem der EIN- oder AUS-Status eines externen Druckknopfs im Arduino gelesen oder überwacht werden kann.

Digital Read Serial

Hier erfahren Sie anhand eines Beispiels, wie Sie den Status eines Switches überwachen, indem Sie eine serielle Kommunikation zwischen Ihrem Arduino und Ihrem PC über USB durchführen.



Über Ihr Arduino-Board hinaus würden Sie die folgenden grundlegenden Elemente benötigen:

Hardware

Ein Momentschalter, eine Taste oder ein Push-to-ON-Schalter



10k, 1/4 Watt Ohm Widerstand

Steckbrett
Anschluss- oder Überbrückungskabelverbindungen.

Schaltungsbetrieb

Die Operation kann mit den folgenden Schritten durchgeführt werden:

Nehmen Sie 3 Stück Überbrückungsdrähte und schließen Sie sie an Ihr Arduino-Board an. Zwei der roten und schwarzen Drähte führen zu den beiden langen vertikalen Reihen an der Seite des Steckbretts, die zu den Versorgungskabeln des Boards werden, um das zu tragen benötigt 5V DC an die Platine.

Der dritte Draht dient zum Verbinden des digitalen Pins 2 mit einer der Leitungen des Push-to-ON-Schalters.

Diese spezielle Leitung des Knopfes verbindet sich auch mit einem herunterziehbaren 10k-Widerstand mit der negativen Versorgungsschiene oder der Masse. Die andere freie Leitung des Schalters ist mit dem Plus der 5-Volt-Versorgung verbunden.

Wenn die oben genannten Verbindungen hergestellt sind, schaltet der Schalter um oder führt eine doppelte Aktion in der Schaltung aus, wenn er gedrückt wird.

Wenn der Schalter nicht angeschlossen ist, bleiben seine beiden Leitungen normalerweise isoliert, sodass der Pin, der über den Pulldown-Widerstand mit der Erde verbunden ist, einen LOW- oder einen logischen 0-Pegel erzeugt.

In der gedrückten Situation führt der Schalter eine momentane Überbrückung seiner zwei Leitungen durch, so dass seine Leitungen + 5 Volt ausgesetzt werden, wodurch ein HIGH- oder logischer 1-Pegel über ihnen erzeugt wird.

Das Isolieren der digitalen E / A-Pinbelegung vom Rest der Dinge kann dazu führen, dass die LED durcheinander gerät und unregelmäßig blinkt. Dies liegt an der Tatsache, dass der Eingang nicht in irgendetwas gerendert oder in einer 'hängenden' Position gehalten wird - was bedeutet, dass er keiner bestimmten Logik zugeordnet ist, weder hoch noch niedrig (+ 5V oder 0V). Dies ist der Grund, warum wir das verwenden Pulldown-Widerstand mit dem Schalter.

Schema

Den Code verstehen

Im folgenden Programm beginnen wir mit der seriellen Kommunikation innerhalb der Setup-Funktion mit einer Rate von 9600 Datenbits pro Sekunde, die zwischen der Arduino-Karte und dem angeschlossenen Computer initiiert wird: Serial.begin (9600)

Im nächsten Schritt lösen wir den digitalen Pin 2 aus, den Pin, der für den Ausgang mit dem Druckschalter als Eingang verantwortlich wäre: pinMode (2, INPUT) Damit ist unser 'Setup' abgeschlossen, jetzt segeln wir in die Hauptschleife unseres Codes .

Hier dürfen beim Drücken des Druckknopfs 5 Volt durch unseren Stromkreis gelangen, während der Eingangspin über den 10-Kiloohm-Widerstand mit der Masse verbunden wird, wenn er sich in einem ungedrückten Zustand befindet.

Das Obige nennen wir einen digitalen Eingang, der sich auf einen Zustand bezieht, in dem sich der Schalter nur in einem bestimmten Zustand befinden kann, entweder in einem Ein-Zustand (vom Arduino als '1' akzeptiert oder LOGIC HIGH akzeptiert) oder in einem Aus-Zustand (visualisiert) vom Arduino als '0' oder LOGIC LOW), ohne irgendwelche anderen undefinierten Zustände dazwischen.

Die grundlegende Aktion, die wir in der Hauptschleife des Programms ausführen müssen, besteht darin, eine Variable anzuwenden, um die Informationen an Ort und Stelle zu halten, die über den Druckknopf gesendet wurden.

Wie oben diskutiert, wobei die Signale entweder die Form einer '1' oder einer '0' haben, verwenden wir hier einen int-Datentyp. Wir können diese Variable als sensorValue bezeichnen und so korrigieren, dass sie allem entspricht, was auf dem digitalen Pin 2 gelesen wird. All dies kann über eine einzige Codezeile erreicht werden:

int sensorValue = digitalRead (2) Wenn der Arduino die Eingabe gelesen hat, drucken Sie sie in Form eines Dezimalwerts auf den Computer zurück.

Dies kann mit Hilfe des Befehls Serial.println () in der abschließenden Zeile des Codes implementiert werden: Serial.println (sensorValue)

Wenn danach der serielle Monitor in der Arduino-Domäne gestartet wird, wird eine Kette von Nullen angezeigt, während der Druckknopf geöffnet ist, und Ketten von Einsen, wenn der Knopf in geschlossenem Zustand gehalten wird.

/*
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
}




Zurück: Kundenspezifischer Wasserdurchflussregler mit Zeitschaltkreis Weiter: Konvertieren von Analog in Digital (Analog Read Serial) - Arduino Basics