Ein serielles Zeichen lesen
Teil des Abschnitts Eingaben der Arduino-Journey von Coddy. Lektion 15 von 22.
Die serielle Verbindung funktioniert in beide Richtungen. Text, der in das Feld des Serial-Monitors eingegeben und mit Senden abgeschickt wird, gelangt Zeichen für Zeichen zum Board und wartet dort in einem Puffer, bis der Sketch ihn ausliest.
Serial.available() gibt an, wie viele Zeichen warten. Serial.read() nimmt das nächste Zeichen aus dem Puffer. Ein Zeichen passt in eine char-Variable und wird in einfache Anführungszeichen gesetzt:
if (Serial.available() > 0) {
char c = Serial.read();
if (c == '1') {
// 1 wurde eingegeben
}
}'1' in einfachen Anführungszeichen ist das Zeichen 1, die Taste, die du drückst. Es ist nicht die Zahl 1: Das Board speichert das Zeichen als den Code 49.
Der Serial-Monitor sendet außerdem ein unsichtbares Zeilenumbruchzeichen, geschrieben als '\n', nach allem, was du eingibst. Ein Sketch verarbeitet die Zeichen, die er kennt, und überspringt alle anderen.
Aufgabe
EinfachDie LED ist an Pin 13 angeschlossen. Schalte sie über den Serial Monitor:
- wenn ein Zeichen wartet, lies es in ein
charein '1'schaltet die LED ein,'0'schaltet sie aus- jedes andere Zeichen, wie der Zeilenumbruch, ändert nichts
Klicke auf Run, gib 1 oder 0 in den Serial Monitor ein und klicke auf Send, dann auf Check.
Probier es selbst
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Wenn ein Zeichen zum Einlesen bereitsteht, lies es ein
// '1' schaltet die LED ein, '0' schaltet sie aus
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Eingaben
Übe selbstständig: Arduino-Playground