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!
1.8 Serielles Lesen
Überblick
Zusätzlich zum Lesen von Daten von den elektronischen Komponenten kann die Mega2560-Platine die Dateneingabe im Monitor der seriellen Schnittstelle lesen, und Sie können Serial.read()
als Controller des Schaltungsexperiments verwenden. Dann verwenden wir LED, um mit dem Serial zu experimentieren. Read()
-Anweisung zum Steuern der LED zum Ein- und Ausschalten.
Erforderliche Komponenten
Fritzing-Schaltung
In diesem Beispiel verwenden wir den digitalen Pin 9, um die LED anzusteuern. Wenn im seriellen Monitor eine 1 eingegeben wird, leuchtet die LED. Bei Eingabe von 0 erlischt die LED.
Schematische Darstellung
Code
Bemerkung
Sie können die Datei
1.8_serialRead.ino
unter dem Pfadsunfounder_vincent_kit_for_arduino\code\1.8_serialRead
direkt öffnen.Oder kopieren Sie diesen Code in Arduino IDE.
Nachdem die Codes auf die Mega2560-Karte hochgeladen wurden, schalten Sie bitte den Monitor für die serielle Schnittstelle ein. Die Eingabe von „1“ kann die LED einschalten und die Eingabe von „0“ kann sie ausschalten.
Code-Analyse
Deklarieren Sie den digitalen Pin 9 als ledPin.
const int ledPin = 9;
Serial.read()
liest ein einzelnes Byte des ASCII-Werts, und daher müssen Sie eine Variable vom Typ int, incomingByte, deklarieren, um die erfassten Daten zu speichern.
int incomingByte = 0;
Führen Sie die serielle Kommunikation in setup()
aus und stellen Sie die Datenrate auf 9600 ein.
Serial.begin(9600);
Stellen Sie ledPin auf OUTPUT-Modus.
pinMode(ledPin,OUTPUT);
Der Status des Monitors für die serielle Schnittstelle wird in loop() beurteilt, und die Informationsverarbeitung wird nur ausgeführt, wenn die Daten empfangen werden.
if (Serial.available() > 0){}
Liest den Eingabewert im Monitor für die serielle Schnittstelle und speichert ihn in der Variable eingehendesByte.
incomingByte = Serial.read();
Wenn das Zeichen „1“ erhalten wird, leuchtet die LED; wenn ‚0‘ erhalten wird, erlischt die LED.
if(incomingByte=='1'){digitalWrite(ledPin,HIGH);}
else if(incomingByte=='0'){digitalWrite(ledPin,LOW);}
Bemerkung
Serial.read()
übernimmt den ASCII-Wert in einem einzelnen Zeichen, was bedeutet, dass bei Eingabe von „1“ der erhaltene Wert nicht die Zahl „1“ ist, sondern das Zeichen „1“, dessen entsprechender ASCII-Wert 49 ist.
※ Analog-Digital-Wandler
Die ASCII-Codierung (American Standard Code for Information Interchange) stammt aus den 1960er Jahren. Es ist die Standardmethode, mit der Text numerisch codiert wird.
Beachten Sie, dass die ersten 32 Zeichen (0-31) nicht druckbare Zeichen sind, die oft als Steuerzeichen bezeichnet werden. Die nützlicheren Zeichen wurden beschriftet.