Hi, ich arbeite gerade mit einem Attiny45 (8MHz intern) und möchte zum Debuggen (konkret auslesen von der Pulslängen von einem IR-Receiver) gerne über einen Arduino Nano eine serielle Kommunikation (UART) mit meinem PC herstellen. Dazu verwende ich die SoftwareSerial library der Arduino Umgebung. Ich war mir nicht sicher, ob und wie ich die UART-Schnittstelle des Arduinos direkt an den Tiny anschließen kann. Deshalb habe ich auf dem Nano das SoftwareSerial Beispiel aufgespielt und nur die Baudraten auf einheitlich 9600 angepasst. Somit leitet der Arduino alle auf der SoftwareSerial empfangenen Zeichen einfach an die Hardware Serial weiter. Das funktioniert auch (mit anderem Nano mit selbem Sketch ausprobiert). Bei der Verbindung mit dem ATTiny empfange ich aber nur ungültige Zeichen. Auch bei kleineren Baudraten klappt es nicht. Da der Code ja sehr kurz und einfach ist, stellen sich folgende Fragen: Gibt es spezielle Fallstricke bei dem ATTiny45 in Sachen SoftwareSerial? Oder ist die interne 8MHz Clock nicht genau genug dafür? Danke schonmal für die Hilfe! Hier noch mein Code: Attiny Code:
1 | #include <SoftwareSerial.h> |
2 | |
3 | SoftwareSerial mySerial(1, 3); // RX, TX |
4 | |
5 | void setup() { |
6 | mySerial.begin(9600); |
7 | mySerial.println("Hallo"); |
8 | }
|
9 | |
10 | void loop() { |
11 | |
12 | }
|
Arduino Nano Code:
1 | #include <SoftwareSerial.h> |
2 | |
3 | SoftwareSerial mySerial(10, 11); // RX, TX |
4 | |
5 | void setup() { |
6 | // Open serial communications and wait for port to open:
|
7 | Serial.begin(9600); |
8 | while (!Serial) { |
9 | ; // wait for serial port to connect. Needed for native USB port only |
10 | }
|
11 | |
12 | |
13 | Serial.println("Goodnight moon!"); |
14 | |
15 | // set the data rate for the SoftwareSerial port
|
16 | mySerial.begin(9600); |
17 | |
18 | //mySerial.println("Hello, world?");
|
19 | }
|
20 | |
21 | void loop() { // run over and over |
22 | if (mySerial.available()) { |
23 | Serial.write(mySerial.read()); |
24 | }
|
25 | if (Serial.available()) { |
26 | mySerial.write(Serial.read()); |
27 | }
|
28 | }
|