falls Du hardware-serial benutzt (kann hier Deinen sketch nicht lesen), schau bei dem link unter "Flushing the output". vielleicht ist das der fehler...
Was mich nur wundert. funktionierts bei dem Shield auch mit anderen Pins?
Laut dem Datenblatt braucht man da Pin0 und Pin1, hatte bei mir auch immer funktioniert.
Verwende nie SoftwareSerial, wenn Du irgendwelche zeitkritische Kompontenten sonst noch einsetzt (bei Dir z.B. OneWire). SoftwareSerial deaktiviert alle Interrupts während des Sendens und des Empfangs, was für solche Anwendungen der Tod sein kann. Wenn Du eine serielle Verbindung zum Computer für's Debugging haben musst, verwende einen Leonardo, der hat beides oder gleich einen Mega, der hat 4 Hardware-Serials.
Whilst it worked fine with software serial, the code above "turns off" the RS485 chip too quickly, because the last byte is still being sent from the serial hardware port.
Es handelt sich um dieses Shield. Die grünen Jumper kann man entfernen. RX,TX,EN kann ich auf einen x-beliebigen Pin legen (Master 11,12,13) (Slave 2,16,17)
Habe das Timing verändert.
Jetzt habe ich keine Fehler mehr, aber leider schluckt er mir ab und zu die ersten Daten in der Zeile.
//Request The Query Using The Slave ID
digitalWrite(EN, TR);
delay(100);
RS485.print(id);
RS485.print('?');
delay(10);
digitalWrite(EN, RE);
delay(100);
data = RS485.read();
muss ich den RS485 Bus über eine längere Leitung (400m)mit einer externen Spannung versorgen, da der Arduino das nicht mehr schafft?
Ich füge dazu ein Beispielbild ein.
Also die "Spannungsversorgung" hast du ja mit den Widerständen in deiner Zeichnung am Ende gemacht.
Da du ja nicht mit einem Ausgang den Wandler versorgst.
evtl wäre anzudenken extern über ein 5V Netzteil nachzudenken das du direkt auf die 5V vom Arduino klemmst um nicht über USB zu Versorgung oder den Linearregler (Versorgung über DC Plug) auf dem Arduino nutzten musst.
Die RS485 Wandler sind dazu konzipiert um längen bis 1000m.
Es steht und fällt alles mit der Qualität der Leitung. und vor allem keine Stern Stiche(bei deriner Leitung bei <20m hat man da eher keine Probleme) es muss so verkabelt werden wie in deiner Skizze.
Gruß
DEr Dani
Ich habe einen UNO R3 - SoftwareSerial derzeit RX über Pin 0 laufen. Gibt es da Erfahrungswerte?
Interessant, dann sind die Sketche, die Du hochgeladen hast, von einem anderen Projekt? Dort hast Du am Master 12 und 13 verwendet, am Slave A3 und A4. Das finde ich sehr spannend, denn im gleichen Sketch verwendest Du auch den I2C Bus, welcher aber auf einem UNO (welchen Du nach eigener Aussage verwendest) auf A4 und A5 verbindet. Entweder stimmen Deine Angaben in den Posts nicht oder wir haben das Problem gefunden (Doppelverwendung von A4).
Meine Frage bezog sich auf die Verwendung von RX (Software Serial) ob es da Beschränkungen gibt? Ich bin verschiedene Konfigurationen durchgegangen, deswegen die vermeintliche Doppelbelegung, die aber nicht vorliegt.