Arduino Serie.Lesen und seriell.schreiben

Arduino Serie.Lesen und seriell.schreiben
Arduino ist eine elektronische Prototyping -Plattform, die von Anfängern, Studenten und Ingenieuren verwendet wird, um mehrere Projekte zu entwerfen. Arduino verwendet eine serielle Kommunikation, um Daten mit verschiedenen Hardware und Sensoren zu übertragen und zu empfangen. Um Benutzern für die serielle Kommunikation zu unterstützen, verfügt die Arduino -Programmierung über eine Liste der seriellen Funktionen zur Verfügung. Unter ihnen sind zwei weit verbreitete Funktionen zum Senden und Empfangen von Daten Serie.schreiben() Und Serie.lesen() bzw. Lesen Sie diesen Leitfaden, um ein solides Wissen über diese beiden Funktionen zu erhalten.

Arduino Serie.lesen()

In Arduino programmieren die Funktion Serie.lesen() liest die eingehenden seriellen Daten zum seriellen Port von Arduino. Die Daten werden mit einem int -Datentyp gespeichert. Serie.Read () Die Funktion liest die Daten in Bytes und gibt eine negative Nummer -1 zurück, wenn am seriellen Port von Arduino keine Daten verfügbar sind. Lesedaten werden in Form von Bytes und 1 Byte = 8 Bit gespeichert.

Wenn Daten in ein Arduino -Board eingegeben werden. Bis zu 64 Datenbytes können im Serienempfangspuffer gespeichert werden.

Syntax

Syntax, die in der Arduino -Programmierung für Serien verwendet wird.read () ist:

Serie.lesen()

Parameter

Serie: Es bedeutet den Hafen von Arduino. Mindestens ein serieller Port ist in allen Arduino -Boards vorhanden. Überprüfen Sie das Datenblatt für das jeweilige Arduino -Board, um weitere Informationen zu erhalten.

Rückgabewert

Serie.Read () Funktionen geben das erste Byte der empfangenen Seriendaten zurück. Wenn bei der seriellen Portfunktion keine Daten empfangen werden, wird -1 zurückgegeben. Der zurückgegebene Datentyp ist int.

Notiz: Serie.Read () gibt kein Zeichen zurück, wenn die Daten nicht vorhanden sind, sie werden einfach -1 zurückgegeben.

Beispielcode

Schauen wir uns ein Beispiel für ein besseres Verständnis an:

char InputSerialdata = 0; /* Variable zum Speichern eingehender serieller Daten*/
void setup ()
Serie.Beginnen Sie (9600); /* Serielle Kommunikation beginnt*/

void Loop ()
if (seriell.verfügbar
InputSerialdata = Serial.lesen(); /* Lesen Sie eingehende serielle Daten*/
Serie.print ("Daten empfangen:"); /* empfangene Daten zum seriellen Monitor drucken*/
Serie.println (InputSerialdata);

Im obigen Code haben wir zuerst eine Variable initialisiert, um serielle Daten zu speichern und dann in Schleife() Abschnitt, das Programm prüft die seriellen Daten am seriellen Port, wenn die Daten verfügbar sind, wird auf dem seriellen Monitor gedruckt, der auf dem Ausgangsanschluss angezeigt werden kann.

Ausgang
Der Ausgang ist am Ausgangsanschluss zu sehen. Hier haben wir verschiedene Zeichen an den seriellen Port Arduino geschickt:

Arduino Serie.schreiben()

Serie.Write () -Funktion schreibt die Binärdaten an den seriellen Port Arduino. Daten werden in einer Reihe von Bytes übertragen. Wenn wir die Ziffern von Zahlen übertragen oder schreiben möchten, die durch Zeichen dargestellt werden, werden wir seriell verwenden.print () anstelle von seriell.Write () Funktion.

Syntax
Im Folgenden folgte die Syntax beim seriellen Schreiben von Daten.

Die folgende Syntax repräsentiert, wann wir müssen Schreiben Sie einen Wert Seriell:

Serie.Schreiben (Val)

Wenn wir eine senden müssen Saite Die folgende Syntax wird befolgt:

Serie.Schreiben Sie (str)

Senden Spezifische Anzahl von Bytes aus einer Zeichenfolge Die folgende Syntax wird befolgt:

Serie.Schreiben (buf, len)

Parameter

Im Folgenden finden Sie die Liste der Parameter seriell.Write () -Funktion nimmt:

Serie: Serienhafen von Arduino Board.

val: Ein Wert, der als einzelnes Byte festgelegt wird.

str: Wenn wir eine Zeichenfolge seriell als eine Reihe von Bytes senden.

buf: Um ein Array als eine Reihe von Bytes zu senden.

Len: Spezifische Anzahl von Bytes, die von Array seriell gesendet werden.

Rückgabewert

Es gibt die Anzahl der geschriebenen Bytes zurück und der zurückgegebene Datentyp ist size_t.

Beispielcode

Das folgende Beispiel zeigt die Arbeit der Serie.Write () Funktion:

void setup ()
Serie.Beginnen Sie (9600);

void Loop ()
Serie.schreiben (45); / * 45 ist der ASCII-Wert von char ("-") *//
int data_bytes_sent = serial.Schreiben Sie ("LinuxHint.com "); /*Senden Sie die Zeichenfolge" LinuxHint.com "und return String Länge*/
Verzögerung (2000);

Hier in diesem Code haben wir die serielle Kommunikation initialisiert, damit wir Daten mithilfe der seriellen Kommunikation übertragen können. Zuerst mit serieller.Write () und ASCII-Wert des Charakters Dash "-" werden jedes Mal gedruckt. Als nächstes wird eine Zeichenfolge mit der Serie seriell gesendet.Write () Funktion. Es wird eine Verzögerung gegeben, um die Ausgabe leicht zu lesen:

Ausgang
String “LinuxHint.com ”wird seriell mit der Serie gedruckt.Write () Funktion. Serielles Monitor zeigt die Ausgabe an.

Unterschied zwischen Arduino -Serie.write () und seriell.drucken()

Serie.schreiben() Funktion ist einfach und schnell. Es wird dazu gebracht, in binärer Bedeutung zu handeln, was jeweils ein Byte bedeutet. Die in binären Daten werden als Byte oder eine Reihe von Bytes gesendet.

Serie.drucken() Die Funktion hingegen ist vielseitiger. Zuerst werden die Eingabedaten von ASCII in Binärer konvertiert. Es kann auch Daten in Bin, Hex, OCT und DEC konvertieren, aber wir müssen sie im zweiten Argument der Funktion angeben.

Serie.Print () -Funktion kann viele Formen annehmen, wie z. B.:

  • ASCII -Zeichen werden verwendet, um jede Ziffer einer Zahl zu drucken.
  • Floats als ASCII -Ziffern gedruckt, standardmäßig bis zu zwei Dezimalstellen.
  • Bytes, die in Form von einzelnen Zeichen gesendet werden.
  • Charaktere und Saiten werden ohne Änderungen gesendet.

Abschluss

Die Arduino Board verwendet eine serielle Kommunikation, um Daten mit ihren Peripheriegeräten zu übertragen und zu empfangen. Arduino hat eine Liste von seriellen Funktionen zur Verfügung, die Arduino bei der seriellen Kommunikation unterstützen. Darunter Serie.lesen() Und Serie.schreiben() sind zwei Funktionen, seriell.Read () liest Daten, die bei Serial Receme Puffer und Serial verfügbar sind.Write () schreibt Daten an den seriellen Port Arduino als ein einzelnes Byte oder eine Reihe von Bytes. Diese Beschreibung hilft dabei, mehr über sie zu erfahren.