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!
Beitrag "mehrere MC seriell über Datenbus verbinden (1Draht)" Ist zwar keine UART, kommt aber mit der Genauigkeit des internen RC-Oszillators aus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.