Ich stehe wieder einmal auf dem Schlauch.
Ich möchte bei meinem Arduino Mini die SoftwareSerial lib verwenden.
Um das Interface zu testen nehme ich das Standard Example und mache einfach eine Brücke zwischen RX und TX (Pin 2 und 3)
Wieso aber kommt mir auf dem Terminal (am Serial) nichts zurück?
Ich bin der Meinung das ich das so schon einmal getestet habe.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(4800);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.println("Goodnight moon!");
// set the data rate for the SoftwareSerial port
mySerial.begin(4800);
mySerial.println("Hello, world?");
}
void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}
Aber ich befürchte, das wird nicht funktionieren, da der Arduino nicht gleichzeitig über die SoftwareSerial senden und empfangen kann. Der ist halt nicht "Multitasking fähig".
Sollte ich da falsch liegen, bitte ich um Berichtigung.
hast Du es damals mit der hardwareserial getestet? da sollte es meinem empfinden nach gehen. die softwareserial hab' ich nie verwendet aber ich könnte mir schon vorstellen, daß sich da das senden und empfangen beißt...
stofarmi:
Ich stehe wieder einmal auf dem Schlauch.
Ich möchte bei meinem Arduino Mini die SoftwareSerial lib verwenden.
Um das Interface zu testen nehme ich das Standard Example und mache einfach eine Brücke zwischen RX und TX (Pin 2 und 3)
Wieso aber kommt mir auf dem Terminal (am Serial) nichts zurück?
Weil SoftwareSerial die schlechteste Library ist, die mit der Arduino-IDE mitgeliefert wird. Die blockiert beim Senden die Interrupts für lange Zeit, und das führt bei ALLEN Sketchen zu Problemen, die Interrupts verwenden. Zum Beispiel bei Programmen, die Servos mit der Servo-Library ansteuern führt das zu Servo-Ruckeln. Und bei Programmen, die auch mit SoftwareSerial empfangen wollen, führt es dazu, dass Du mit SoftwareSerial gesendetes nicht auch gleichzeitig mit SoftwareSerial empfangen kannst.
Für alles, was anspruchsvoller sein soll, verwendest Du besser eine Drittanbieter-Library wie AltSoftSerial anstelle der hundmiserablen SoftwareSerial Library, die zur IDE mitgeliefert wird.
Ich habe mir jetzt einen Arduino Micro Pro organisiert. Mein Problem mit der AltSoftSerial: Ich finden den RX pin nicht. Der TX pin scheint die 5 zu sein. Laut Doku soll der RX bin 13 sein. der Arduino Micro Pro hat aber gar keine Pin 13.