Kommunikation / Seriell

softSerial print

serial-print-block
Für Erklärung auf einzelne Komponenten klicken.

Block

Mit dem softSerial print Block lassen sich Nachrichten, Texte oder Variablenwerte über eine UART Schnittstelle versenden. UART steht für "universal asynchronous receiver-transmitter". Das heißt mit einer UART Schnittstelle können sowohl Daten empfangen, als auch Daten gesendet werden. Diese können an andere Microcontroller, Sensoren oder Aktoren gesendet werden, die ebenfalls eine UART Schnittstelle haben und entsprechend konfiguriert sind.
Mit dem softSerial print Block können alle digitalen Pins als RX (Empfänger) oder TX (Sender) genutzt werden. Dazu wird eine spezielle Bibliothek genutzt, denn normalerweise sind nur die Pins 0 und 1 als RX und TX verwendbar. Die Baudrate ist ein wichtiger Parameter bei der Konfigurierung von UART Verbindungen. Sie gibt die Geschwindigkeit vor, mit der Daten zwischen den Teilnehmern übertragen werden. Sie muss daher bei beiden Teilnehmern bekannt und gleich sein, damit keine Informationen verloren gehen.
Die Baudrate ist beim softSerial print Block, sofern davor nicht anders festgelegt, auf einen Wert von 4800 eingestellt.

Mit dem softSerial print können allerdings nur Nachrichten in Form eines Strings (einer Zeichenkette) übertragen werden. Um auch aktiv auf einem Kanal nach Informationen zu lauschen und diese zu verarbeiten wird der Pro-Modus mit dem softSerial read Block benötigt.

String

Hier wird die Zeichenkette bzw. der String eingefügt, der über die UART Schnittstelle versendet werden soll. Jeder mögliche Text kann hier eingefügt werden. Wenn Werte von Variablen versendet werden sollen, dann benötigt man den entsprechenden Verbindungsblock von Zeichenkette und analoger oder digitaler Größe.

Neue Zeile

Dieser Parameter ist selbsterklärend. Hier kann entweder ein true oder false dem Block übergeben werden. Wenn ein true übergeben wird, dann wird nachdem die oben eingefügte Zeichenkette im seriellen Monitor ausgegeben wurde dort eine neue Zeile begonnen, in der dann die nächste Ausgabe erfolgt.

Beispiel

Beispiel: Es soll einfach nur die Nachricht "Hallo Welt" an ein anderes Bauteil übertragen werden. Als RX Pin soll der Pin 2 und als TX der Pin 3 verwendet werden. Ob danach eine neue Zeile begonnen wird oder nicht spielt erstmal keine Rolle.

Der RX Pin der einen Komponente geht auf den TX Pin der anderen Komponente und umgekehrt.

In ArduBlock:

Code

Im Code wird der Block durch den Befehl softSerial.print() realisiert, wobei zwischen die Klammern hier die Nachricht geschrieben wird, die ausgegeben werden soll. Wenn eine Zeichenkette ausgegeben werden soll, dann muss diese zwischen Anführungszeichen geschrieben werden.
Noch außerhalb der loop und setup Blocks wird ein neues Objekt der Klasse SoftwareSerial angelegt. Dabei werden die RX und TX Pins als Parameter übergeben. Für das Beispiel oben wurde das dann so aussehen:
SoftwareSerial softSerial(2, 3);
Der Name des hier erstellten Objektes lautet softSerial. Es kann aber auch andere Bezeichnungen bekommen.
Wie bei der Kommunikation mit dem seriellen Monitor muss auch hier die Kommunikation mit serial.begin(4800) im setup Teil des Programms begonnen werden.