1.6 Steuerausgang Digitaleingang

Überblick

Mit dem Verständnis von digitalWrite() und digitalRead() können wir ein vollständiges E/A-System aufbauen, um das Ausgabegerät zu steuern, indem wir die Daten vom Eingabegerät erhalten. Wir können diese Methode verwenden, um digitale Eingabekomponenten wie Tasten, Berührungssensoren und Infrarot-Bewegungssensoren zu aktivieren, um digitale Ausgabegeräte wie LEDs und aktive Summer zu steuern. In dieser Lektion werden Taster und LED als Beispiele verwendet, um die Tastersteuerungs-LED mit der Bedingung (if-else) zu realisieren.

Erforderliche Komponenten

../_images/list_1.6.png

Fritzing-Schaltung

In diesem Beispiel verwenden wir Pin 9, um die LED anzusteuern. Verwenden Sie den digitalen Pin 2, um das Signal von Button zu lesen. Wenn die Taste gedrückt wird, leuchtet die LED.

../_images/image48.png

Schematische Darstellung

../_images/image407.png

Code

Bemerkung

  • Sie können die Datei 1.6_digitalInputControlOutput.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\1.6_digitalInputControlOutput direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE.

Nachdem Sie den Code auf das Mega2560-Board hochgeladen haben, können Sie die Taste gedrückt halten, um die LED aufzuleuchten.

Code-Analyse

Deklarieren Sie die Pins von LED und Button und deklarieren Sie eine Variable, um den Zustand des Buttons zu speichern.

const int buttonPin = 2;
const int ledPin =  9;
int buttonState = 0;

Initialisieren Sie den Pin-Modus in setup().

pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);

Lesen Sie den Status des Buttons in loop() und weisen Sie ihn der Variablen buttonState zu. .. code-block:: arduino

buttonState = digitalRead(buttonPin);

Verwenden Sie die Bedingung, um zu beurteilen: Wenn Sie einen hohen Pegel von einer Taste erhalten, leuchten Sie die LED auf.

if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
}

Andernfalls schalten Sie die LED aus.

else {
digitalWrite(ledPin, LOW);
}

Phänomen Bild

../_images/image49.jpeg