Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

5.12 Serielle Lektüre

Vielleicht haben Sie dies bemerkt, als Sie die Funktion Serial.print() verwendet haben. Da es eine Ausgabe gibt, gibt es auch eine Eingabe? Wofür ist das Textfeld im Seriellen Monitor? Ja, Sie haben richtig geraten. Es gibt Möglichkeiten, Programme und Schaltungen durch Eingabe von Informationen über das Textfeld des seriellen Monitors zu steuern.

In diesem Projekt verwenden wir das I2C LCD1602, um den im Seriellen Monitor eingegebenen Text anzuzeigen und die Verwendung von Serial.read() kennenzulernen.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Sie können diese auch einzeln über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

SunFounder R3 Platine

KAUFEN

Jumper-Kabel

KAUFEN

I2C LCD1602

KAUFEN

Schaltplan

../_images/circuit_7.1_lcd1602.png

Verdrahtung

../_images/lcd_bb.jpg

Code

Bemerkung

  • Öffnen Sie die Datei 5.12.serial_read.ino unter dem Pfad 3in1-kit\basic_project\5.12.serial_read.

  • Oder kopieren Sie diesen Code in die Arduino IDE.

  • Hier wird die Bibliothek LiquidCrystal I2C verwendet. Sie können sie aus dem Library Manager installieren.

    ../_images/lib_liquidcrystal_i2c.png

Nachdem der Code erfolgreich hochgeladen wurde, können Sie Text in das Textfeld des seriellen Monitors eingeben, und das LCD zeigt die Informationen an.

Wie funktioniert das?

void loop()
{
// wenn Zeichen über die serielle Schnittstelle ankommen...
    if (Serial.available()) {
        // warten Sie kurz, damit die gesamte Nachricht ankommt
        delay(100);
        // den Bildschirm leeren
        lcd.clear();
        // lesen Sie alle verfügbaren Zeichen
        while (Serial.available() > 0) {
            // zeigt jedes Zeichen auf dem LCD an
            lcd.write(Serial.read());
        }
    }
}
  • Serial.available() kann die Anzahl der Zeichen in dem eingehenden Stream erhalten, wenn Sie etwas aus dem Textfeld eingeben. Da es in der Eingabe zwei Abschlusszeichen gibt, haben Sie tatsächlich 3 Zeichen, wenn Sie A eingeben und 4 Zeichen, wenn Sie AB eingeben.

  • Serial.read() nimmt das erste Zeichen aus dem eingehenden Stream. Wenn Sie zum Beispiel AB eingeben und Serial.read() nur einmal aufrufen, erhalten Sie das Zeichen A; Beim zweiten Aufruf erhalten Sie B; beim dritten und vierten Anruf erhalten Sie zwei Endsymbole; das Aufrufen dieser Funktion, wenn keine Zeichen im Eingabestream verfügbar sind, führt zu einem Fehler.

Zusammenfassend ist es üblich, die beiden oben genannten Funktionen zu kombinieren und mit einer while-Schleife alle bei jedem Eingabevorgang eingegebenen Zeichen zu lesen.

while (Serial.available() > 0) {
    Serial.print(Serial.read());
}

Übrigens, wenn Sie Serial.read() nicht verwenden, um Zeichen aus dem eingehenden Stream zu erhalten, werden die Zeichen des eingehenden Streams aufgestapelt. Zum Beispiel, wenn Sie A gefolgt von AB eingeben, wird der eingehende Stream 7 Zeichen anhäufen.