...
Instanziert wird die SoftwareSerial über:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(RX_PIN, TX_PIN);
RX_Pin und TX_Pin können dabei jeder beliebige digitale PIN sein (also zum Beispiel D2 und D3). Die einzige Limitierung ist die Baudrate, welche 115200bps nicht überschreiten darf.
Code
Im Beispiel-Code lesen wir die ID eines RFiD Tags aus und lassen uns diesen über die Serielle Schnittstelle auf dem Serial-Monitor ausgeben.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#include <SoftwareSerial.h> int RFIDResetPin = 13; SoftwareSerial mySerial(2, 3); void setup() { Serial.begin(9600); mySerial.begin(9600); pinMode(RFIDResetPin, OUTPUT); digitalWrite(RFIDResetPin, HIGH); } void loop() { char tagString[8]; int index = 0; boolean reading = false; while (mySerial.available()) { int readByte = mySerial.read(); // Nächstes Byte lesen if (readByte == 2) reading = true; //Indentifizierung für den Anfang des Tags if (readByte == 3) reading = false; //Indentifizierung für das Ende des Tags if (reading && readByte != 2 && readByte != 10 && readByte != 13) { tagString[index] = readByte; // Tag speichern index ++; } } if (tagString[0] != 0) { Serial.println(tagString); //RFiD Tag über Serielle Schnittstelle ausgeben } memset(tagString, 0, strlen(tagString)); //Tag freigeben (mit NULL überschreiben) resetReader(); //Den RFiD Reader resetten } void resetReader() // Reset Funktion { digitalWrite(RFIDResetPin, LOW); digitalWrite(RFIDResetPin, HIGH); delay(150); } |