ich habe zwar keine Erfahrung mit RS485 bei Arduinos, aber recht viel (negative) Erfahrung mit RS485 bei einem ARM7-basierten System (Lego NXT):
etwas suggestiv formuliert: RS485 sendet immer "blind in den Bus hinein", jede Nachricht erreicht also immer jeden anderen Teilnehmer.
Damit ein Teilnehmer senden kann, muss er im "Write-Modus" arbeiten, das ist dann quasi der "Master".
Damit ein Teilnehmer lesen kann, was abgeht, muss er im "Read-Modus" sein, das sind dann quasi die "Slaves".
Um zu wissen, dass er selber gemeint ist, muss man in die Nachricht (meist ein Byte array) eine ID mitsenden, die zum jweiligen Adressaten gehört, und die muss ntl eindeutig sein, wenn nur 1 gemeint ist - oder darf ntl auch uneindeutig sein, wenn mehrere oder alle anderen gemeint sind.
Es muss sichergestellt sein, dass immer nur 1 Teilnehmer im Write-Modus ist, damit nicht mehrere Teilnehmer die Bus-Nachrichten durcheinandermischen und sich stören.
Ich hatte es z.B. so gelöst, dass immer das 1. Byte einer Nachricht die ID enthielt (1-32, mehr war eh nicht sinnvoll),
wurde z.B. 128 gesendet, war sie für alle bestimmt. Auch andere Verschlüsselungen sind ntl. möglich.
Es kann daher nie ein Slave direkt zu einem anderen Slave senden.
"Slaves" können aber eine Art "Respond-Mailbox" softwaremäßig eingerichtet bekommen, der Master kann die darin abgelegten Nachrichten dann abholen und lesen und an andere Slaves weiterschicken.
Diese Art der Kommunikation mit 2 Kabeln ("halb-duplex") ist sehr aufwändig zu programmieren, insb. was Message- / Transmission Control angeht, damit du feststellen kannst, ob nachrichten korrekt übermittelt wurden und nicht z.B. verstümmelt sind oder der Empfänger grade keine Zeit hatte, sie zu empfangen - dann muss die Nachricht nämlich nochmal und nochmal gesendet werden, ggf. bis zu einem vordefinierten Time-Out.
Du musst das i.P. alles aber selber schreiben! (Es sei denn du findest was fertiges.)
Als Transmission Control Protocol könnte man z.B. das Bitbus-Protokoll verwenden (i.P. ein Teil des TCP/IP-Protokolls).
Will man mehreren Teilnehmern das abwechselnde Senden ermöglichen, brauchst du ein komplettes Netzwerkprotokoll, also z.B. Token Ring, Aloha oder TCP/IP.
Irgendwann wurde mir das alles aber selber zu aufwändig für meine Zwecke, ich habs drangegeben und nur noch i2c höchstens mit einfachen checksums zur Kontrolle verwendet - oder BT mit 1 Master und 1 Slave..
HTH!