Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagejava
titleBeispiel RFiD
collapsetrue
#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);
}