Mittwoch, 1. Juli 2015

SoftwareSerial mit dem Arduino verwenden

In diesem Post geht es um die Arduino Bibliothek SoftwareSerial. Mit ihr kann man zusätzliche serielle Verbindungen zu anderen Geräten, mit jeweils zwei beliebigen digital Pin des Arduino, herstellen. Dadurch kann dann ein Masterarduino eine Anwendung steuern und die Aufgaben dann, über die seriellen Verbindungen, an die anderen Arduinos verteilen.

Die Bibliothek SoftwareSerial ist bereits mit der Arduino IDE vorinstalliert, weshalb man nur auf Sketch > Include Library > SoftwareSerial klicken muss.
Um eine weitere serielle Verbindung zu starten muss man zunächst den Namen der neuen Verbindung und ihre Pins angeben. Jede serielle Verbindung besteht aus zwei Pins: dem TX und dem RX Pin. Über den TX Pin sendet der Mikrocontroller/Arduino, über den RX Pin empfängt der Arduino/Mikrocontroller. Also ist der TX Pin von A mit dem RX Pin von B, und umgekehrt, verbunden. In meinem Fall sind das Pin 10 und 11. Bei der Benennung kommt erst der RX und dann der TX Pin. Nun kann man, wie von der "normalen" seriellen Verbindung gewöhnt, über Name.begin(Datenrate) die Verbindung starten. Auch das Empfangen (Name.read()) und das Senden(Name.write()) klappt genauso. Um das Ganze an einem Beispiel zu erläutern sendet ein Mikrocontroller laufend den Text "Hallo" an einen Arduino. Dieser wiederum empfängt den Text und sendet ihn weiter an den PC, jeweils über eine serielle Verbindung. 
Der Sketch des Mikrocontroller:
Der Sketch des Arduino:
Nun muss man den ersten Sketch auf einen Mikrocontroller laden, und den zweiten auf den Arduino. Außerdem wird Pin 2 des Mikrocontroller mit Pin 11 des Arduino und Pin 3 des Mikrocontrollers mit Pin 10 des Arduino verbunden. Nun sendet der Mikrocontroller "hallo" an den Arduino, der das über das USB Kabel an den PC weiterleitet. Wenn man jetzt die serielle Konsole öffnet, bekommt man den Text angezeigt:
Wenn dir der Artikel gefallen hat, gib ihm einen Daumen nach oben, damit ihn auch andere Leute finden können.

1 Kommentar:

  1. Hallo
    Super Erklärung so habe sogar ich es verstanden. Ich konnte sogar von einem Nano auf einen Duemilanove mit zwei SoftSerials Daten versenden.
    Mein Ziel soll jedoch die Verbindung von einem ESP8266 NodeMcu zu einem Nano, dann muss ich noch die 3,3V/5V Bariere mit einem Spannungsteiler überwinden.
    Hast Du vielleicht auch eine Erkärung wie man Sensorwerte 0-1023 sinnvoll überträgt?
    Vielen Dank
    Philipp

    AntwortenLöschen

Mit dem Veröffentlichen eines Kommentars erklären Sie sich mit unserer Datenschutzerklärung einverstanden.
https://michaelsarduino.blogspot.de/p/datenschutzerklarung.html