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 Serielles Lesen¶
Vielleicht haben Sie dies bemerkt, wenn Sie die Funktion Serial.print() verwendet haben.
Wo es Drucken gibt, gibt es auch Lesen? Wofür wird das Textfeld im Serial Monitor verwendet?
Richtig geraten, es gibt Möglichkeiten, Programme und Schaltungen durch Eingabe von Informationen über das Textfeld im Serial Monitor zu steuern.
In diesem Projekt werden wir das I2C LCD1602 verwenden, um den im Serial Monitor eingegebenen Text anzuzeigen und die Verwendung von Serial.read() zu erleben.
Benötigte Komponenten
Für dieses Projekt benötigen wir die folgenden Komponenten.
Es ist definitiv praktisch, ein ganzes Set zu kaufen, hier ist der Link:
Name |
ARTIKEL IN DIESEM KIT |
LINK |
|---|---|---|
3 in 1 Starter Kit |
380+ |
Sie können sie auch einzeln über die untenstehenden Links kaufen.
KOMPONENTENBESCHREIBUNG |
KAUF-LINK |
|---|---|
- |
|
Schaltplan
Verdrahtung
Code
Bemerkung
Öffnen Sie die Datei
5.12.serial_read.inoim Pfad3in1-kit\learning_project\5.12.serial_read.Oder kopieren Sie diesen Code in die Arduino IDE.
Die Bibliothek
LiquidCrystal I2Cwird hier verwendet. Sie können sie aus dem Library Manager installieren.
Nachdem der Code erfolgreich hochgeladen wurde, können Sie Text in das Textfeld des Serial Monitors eingeben, und das LCD wird die Informationen anzeigen.
Wie funktioniert das?
void loop() { // when characters arrive over the serial port... if (Serial.available()) { // wait a bit for the entire message to arrive delay(100); // clear the screen lcd.clear(); // read all the available characters while (Serial.available() > 0) { // display each character to the LCD lcd.write(Serial.read()); } } }
Mit
Serial.available()können Sie die Anzahl der verfügbaren Zeichen im eingehenden Stream abrufen, wenn Sie etwas aus dem Textfeld eingeben. Da es zwei Terminator in der Eingabe gibt, haben Sie tatsächlich 3 Zeichen, wenn SieAeingeben, und 4 Zeichen, wenn SieABeingeben.Serial.read()nimmt das erste Zeichen aus dem eingehenden Stream. Wenn Sie beispielsweiseABeingegeben haben undSerial.read()nur einmal aufrufen, erhalten Sie das ZeichenA; beim zweiten Aufruf erhalten SieB; beim dritten und vierten Aufruf erhalten Sie zwei Endsymbole. Wenn dieser Funktion aufgerufen wird und im Eingabestream keine Zeichen verfügbar sind, führt dies zu einem Fehler.
Zusammenfassend wird häufig kombiniert, die beiden oben genannten, indem eine while Schleife verwendet wird, um alle jedes Mal 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 holen, werden die Zeichen des eingehenden Streams zusammengefügt.
Zum Beispiel, wenn Sie A gefolgt von AB eingeben, wird der eingehende Stream 7 Zeichen ansammeln.