Mit der Arduino -Plattform können Menschen verschiedene Projekte erstellen. Arduino ist eine benutzerfreundliche Plattform mit Unterstützung für eine Vielzahl von Bibliotheken, einschließlich der Softwareerialbibliothek. Der Softwareerialbibliothek Ermöglicht Ihnen, einen seriellen Port auf einem der digitalen Stifte auf Ihrem Arduino -Board zu erstellen.
In diesem Artikel werden wir tiefer in die Softwareerialbibliothek eintauchen und untersuchen, wie sie funktioniert.
Einführung in die Softwareerialbibliothek
Der Softwareerialbibliothek ist eine Standard -Arduino -Bibliothek, die eine serielle Kommunikation auf anderen digitalen Stiften als TX und RX ermöglicht. Die Bibliothek ermöglicht die Erstellung eines seriellen Software -Ports, mit dem Sie mit anderen Geräten wie anderen Mikrocontrollern, Computern oder sogar Bluetooth -Modulen kommunizieren können. Die Softwareerialbibliothek ist in der Arduino -IDE enthalten und kann mit jedem Arduino -Board verwendet werden.
Notiz: Allgemein, Tx Und Rx Pins werden für die serielle Kommunikation verwendet, aber mit dieser Bibliothek können wir der Arduino -Karte ermöglichen, die digitalen Stifte zu verwenden, um die TX- und RX -Stifte zu ersetzen.
Verständnis der Softwareerial -Bibliotheksfunktionen
Der Softwareerialbibliothek Sie haben mehrere Funktionen, mit denen Sie den seriellen Software -Port einrichten und steuern können. Hier sind einige der Hauptfunktionen, die Sie kennen sollten:
Softwareerial ()
Diese Funktion erstellt eine neue Instanz der Softwareerial Klasse. Diese Funktion hat zwei Argumente, den RX -Pin und den TX -Pin. Wenn Sie beispielsweise einen seriellen Software -Port auf Pins 2 und 3 erstellen möchten, verwenden Sie den folgenden Code:
SoftWareserial MySerial (2, 3); // rx, tx
Der Softwareerial () Methode wird verwendet, um eine neue Instanz von a zu erstellen Softwareerial Objekt. Es ermöglicht die Erstellung mehrerer Instanzen. Zu einem Zeitpunkt kann jedoch nur einer aktiv sein.
Syntax
Die Syntax für die Softwareerial () Methode ist wie folgt:
SoftWareserial (Rxpin, Txpin, Inverse_logic)
Parameter
Die Parameter für die Softwareerial () Sind
rxpin: Dieser Parameter gibt den PIN an, der zum Empfangen von seriellen Daten verwendet wird.
txpin: Dieser Parameter gibt den Pin an, mit dem serielle Daten übertragen werden sollen.
Inverse_logic: Dieser Parameter ist optional und kehrt eingehende Bits Sinn um. Der Standardwert ist falsch, was bedeutet, dass ein niedriger RX-Pin als 0-Bit und ein Hoch als 1-Bit interpretiert wird. Wenn es auf True gesetzt ist, dauert der niedrige RX-Pin nun 1-Bit und hoch wie 0-Bit.
Zurückkehren
Der Softwareerial () Gibt nichts zurück.
Arduino Softwareserial () Bibliotheksfunktionen
Arduino Softwareerial () hat eine Liste von Funktionen für die serielle Kommunikation zwischen Geräten. Einige der Hauptfunktionen werden hier besprochen:
Start()
Der Start() Die Funktion initialisiert den seriellen Software -Port mit einer Baudrate. Die Baudrate ist die Datenübertragungsgeschwindigkeit über den seriellen Anschluss. Um 9600 als Baud -Rate für die serielle Kommunikation festzulegen, verwenden Sie den folgenden Code:
MySerial.Beginnen Sie (9600);
verfügbar()
Der Verfügbar () fDie ONTICT gibt Bytes zurück, die für das Lesen am seriellen Software -Port verfügbar sind. Um beispielsweise zu überprüfen, ob Daten zur Verfügung stehen, würden Sie den folgenden Code verwenden:
if (myserial.Verfügbar ()> 0)
// Eingabedaten lesen
char Incomingbyte = myserial.lesen();
lesen()
Der lesen() Funktion liest das nächste Datenbyte aus dem seriellen Software -Port. Um beispielsweise ein Datenbyte zu lesen und auf den seriellen Monitor auszudrucken, verwenden Sie den folgenden Code:
char Incomingbyte = myserial.lesen();
Serie.println (IncomingByte);
schreiben()
Der schreiben() Funktion schreibt ein Daten Byte an den seriellen Software -Port. Zum Beispiel zum Senden des Briefes "A" Über den seriellen Software -Port verwenden Sie den folgenden Code:
MySerial.Schreib ein');
Arduino Softwareserial () Bibliotheksbeispielcode
Jetzt werden wir mit dieser Bibliothek zwischen zwei Arduino -Boards über die serielle Kommunikation kommunizieren. Nehmen Sie zwei Arduino -Boards und verbinden Sie sie wie im Bild unten gezeigt.
Verbinden D2 des Meisters Arduino Board mit D3 des Sklaven -Arduino -Boards verbinden sich ähnlich D3 von Meister Arduino mit D2 des Sklaven Arduino.
Notiz: Für die serielle Kommunikation die Tx Pin ist immer mit dem verbunden Rx Stift des gegenüberliegenden Arduino und der Rx Pin des Meisters ist immer mit dem verbunden Tx Anstecknadel des anderen Arduino.
Im Folgenden finden Sie die Hardware beider Arduino -Boards.
Hier ist ein Beispiel Arduino -Code, der zeigt, wie die Verwendung der verwendet wird Softwareerialbibliothek Kommunikation zwischen zwei Arduino -Boards festlegen:
Absender -Board -Code
Der folgende Code ist für den Absender Arduino, der eine Zeichenfolge an den Empfänger Arduino Board schreibt.
#enthalten
// Software -Serienobjekt einrichten
SoftWareserial MySerial (2, 3);
void setup ()
// Starten Sie die serielle Kommunikation
Serie.Beginnen Sie (9600);
während (!Serie)
; // Warten Sie, bis der serielle Anschluss eine Verbindung herstellt
// Starten Sie die serielle Software -Kommunikation
MySerial.Beginnen Sie (9600);
void Loop ()
// Senden Sie eine Nachricht über die serielle Softwareverbindung
MySerial.println ("Hallo, Empfängerboard!");
Verzögerung (1000);
Receiver Board Code
Der folgende Code ist für die Empfängerausschreibung vorhanden. Mit diesem Code empfängt Arduino die Zeichenfolge von einer anderen Board über serielle Kommunikation, die zwischen zwei Arduino -Boards festgelegt ist.
#enthalten
// Software -Serienobjekt einrichten
SoftWareserial MySerial (2, 3);
void setup ()
// Starten Sie die serielle Kommunikation
Serie.Beginnen Sie (9600);
während (!Serie)
; // Warten Sie, bis der serielle Anschluss eine Verbindung herstellt
// Starten Sie die serielle Software -Kommunikation
MySerial.Beginnen Sie (9600);
void Loop ()
// Überprüfen Sie, ob Daten in der seriellen Software -Verbindung verfügbar sind
if (myserial.verfügbar())
// Lesen Sie die Daten und drucken Sie sie auf den seriellen Monitor aus
Serie.println (myserial.ReadString ());
In diesem Beispiel schließen wir zuerst die ein Softwareerialbibliothek zu Beginn des Code. Dann erstellen wir eine Softwareerial Objekt namens “MySerial”Mit Stiften 2 und 3 als RX- bzw. TX -Stifte angegeben.
Im aufstellen() Funktion starten wir sowohl die Seriennerien Hardware als auch die serielle Software -Kommunikation mit einer Baudrate von 9600. Im Schleife() Funktion des Absendungsausschusses senden eine Nachricht über die serielle Softwareverbindung mit MySerial.println () Methode und warten Sie auf eine Sekunde, bevor Sie die nächste Nachricht senden.
In der Funktion der Loop () der Empfängerkarte prüft der Code auf serielle Datenverfügbarkeit in der seriellen Verbindung mit der Softwareverbindung unter Verwendung MySerial.verfügbar() Methode. Wenn Daten verfügbar sind, lesen wir die Daten mit MySerial.ReadString () -Methode und drucken Sie sie mit der seriellen Serienmonitor auf den Serienmonitor.println () Methode.
Einschränkungen der Softwareerial () -Bibliothek
Der Softwareerialbibliothek hat mehrere unterschiedliche Vorteile, hat aber auch einige Einschränkungen, von denen Benutzer sich bewusst sein sollten. Diese Einschränkungen umfassen
Planke | RX -Stifte |
Mega & Mega 2560 | 10, 11, 12, 13, 14, 15, 50, 51, 52, 53, A8 (62), A9 (63), A10 (64), A11 (65), A12 (66), A13 (67), A14 (68), A15 (69). |
Leonardo & Micro | 8, 9, 10, 11, 14 (Miso), 15 (SCK), 16 (Mosi). |
Abschluss
Der Softwareerialbibliothek In Arduino ist ein nützliches Instrument zur Kommunikation mit Geräten mit seriellen Kommunikationsprotokollen. Es ermöglicht Entwicklern, softwarebasierte serielle Ports zu erstellen, die in Verbindung mit hardware-basierten seriellen Ports verwendet werden können. Diese Bibliothek hat einige Einschränkungen, da sie keine gleichzeitige Datenübertragung zulässt. Weitere Informationen finden Sie im obigen Artikel.