ATTiny85 serielle Kommunikation 2 Eingänge

Gast #3982688
Lesenswert?

Hallo!

Wir versuchen gerade schon seit einer ganzen Weile die Kommunikation 
zwischen 3 Attiny85-Mikrokontrollern hinzubekommen.

Der erste Attiny soll auf einem Pin vom 2. Attiny einlesen und auf einem 
anderen Pin von dem 3. Attiny (so dass wir wissen welcher String von 
welchem Eingang kam).

Für die Kommunikation benutzen wir bisher SoftwareSerial und 
programmieren die Attinys mit einem Arduino UNO.

Unser Problem ist, dass wir es nicht schaffen seriell über zwei Inputs 
einzulesen, bzw. von einem auf den anderen zu wechseln. Unser Code für 
den 1. Attiny sieht bisher wie folgt aus:

#include <SoftwareSerial.h>
const int rx=4;
const int rx2=1;
const int tx=3;
const int tx2=3;

SoftwareSerial mySerial(rx,tx);
SoftwareSerial mySerial2(rx2,tx2);

void setup()
{
  pinMode(rx,INPUT);
  pinMode(rx2,INPUT);
  pinMode(tx,OUTPUT);

  mySerial.begin(9600);
  mySerial2.begin(9600);
}

void loop()
{
  mySerial.listen();

  if (mySerial.isListening()) {
    mySerial.println("Port One is listening!");
    mySerial.println(mySerial.read());
  }
  else{
    mySerial.println("Port One is not listening!");
  }

  mySerial2.listen();
  if (mySerial2.isListening()) {
    mySerial2.println("Port Two is listening!");
    mySerial2.println(mySerial2.read());
  }
  else{
    mySerial2.println("Port Two is not listening!");
  }

  delay(500);

}

Der 1. Attiny soll also abwechselnd von zwei Ports einlesen und das 
ganze dann über die serielle Schnittstelle weiterschicken. Das klappt 
aber nicht.

Im Arduino-Monitor bekommen wir:

Port One is listening!
-1
Port Two is listening!
-1
...

Wenn wir den Port nicht zwischendurch wechseln, funktioniert es. Machen 
wir was falsch? Wie kann man während des loops den Port wechseln?

Bin für jeden Tipp dankbar!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren