Kabelfernbedienung mit Arduino?
Hallo,
ich habe verschiedene Geräte gebaut, die teilweise per Kabel fernbedient werden. Im Prinzip simple Schaltvorgänge, indem aus einem Nachbarzimmer per Kabel verschiedene Relais geschaltet werden. Da es auch noch eine Rückmeldung gibt (auf den Fernbedienungen leuchtet dann jeweils eine LED bei aktivierter Funktion), kommen da einige "Drähte" zusammen, die ich aktuell mit SubD-15 oder sogar SubD-25 Steckern beschaltet habe. Die passenden Kabel sind dann entsprechend dick und nur wenig flexibel. Nun möchte ich das etwas eleganter lösen. 8 Taster (on/off) sowie 8 Rückmeldungen per LED über eine 2- oder 4-Draht Fernbedienung. Dabei muss es möglich sein, dass mehrere Taster gleichzeitig gedrückt werden und auf der Gegenseite diese Schaltimpulse auch entsprechend richtig interpretiert werden und den zugehörigen Relais zugeordnet werden. Letztlich funktioniert jede Computertastatur per USB auf diese Art, nur dass hier über 100 Tasten gemanaget werden.
Ich kann das selbst nicht, habe aber auch nichts entsprechendes gefunden beim googeln. Allerdings denke ich, dass sowas möglich ist mit z.B. Arduino UNO.
Kann mir von Euch evt. jemand Tips, Hinweise, weiterführende Links, ggf. Bauanleitungen incl. Arduino-Sketch geben, wie ich das realisieren könnte?
Andi
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
es sind 3 Bedienpulte an verschiedenen Orten im Raum mit jeweils 8 Tastern/LED pro Bedienpult, die gleichzeitig aktiv sind. Diese "senden" an einen gemeinsamen Empfänger. Das kann durchaus eine Relaiskarte sein oder Open-Kollektor o.ä. Wichtig ist, dass der jeweilige Schalt-Zustand als "echte" Rückmeldung auf den einzelnen "Sende-Bedienpulten" z.B. per LED sichtbar ist. Wenn also jemand auf Bedienpult 1 den Taster 2 drückt und damit im Empfänger das Relais 2 schaltet, so soll auf allen 3 Bedienpulten die entsprechende LED zu Taster 2 leuchten, auch wenn dieser Taster nur auf einem Bedienpult gedrückt wurde. Wenn also 3 Personen vor jeweils einem dieser 3 Sende-Bedienpulte sitzen, soll jederzeit für alle diese Personen erkennbar sein, welcher Taster aktuell On bzw. Off ist, auch wenn nur eine Person den Taster gedrückt hat. Mit "echter" Rückmeldung meine ich, dass der Empfänger (z.B. besagtes Relais 2) einen Impuls zurück schickt an die LED der Bedienpulte. Es soll also nicht einfach nur direkt im Bedienpult die LED für Taster 2 bei Tastendruck angehen, indem ich diesen Kontakt direkt im Bedienpult abgreife und damit gleich die LED schalte, denn damit hätte ich keine wirkliche Rückmeldung, ob im Empfänger das Relais auch wirklich geschaltet ist.
Im Prinzip kann man das also gar nicht trennen als Sender / Empfänger, sondern die Sende-Bedienpulte sind zugleich wieder Empfänger (der Impulse der Relais aus dem "eigentlichen" Empfänger), so wie natürlich der eigentliche Empfänger zugleich auch wieder Sender ist, indem er die Rückmeldung an die 3 Bedienpulte sendet. Wobei es auch aus elektrischer Sicht möglich sein muss, dass statt 3 manchmal nur 2 oder 1 Sende-Bedienpult angeschlossen ist. Die 3 Sende-Bedienpulte sind also parallel geschaltet und es soll keine Beeinflussung geben, wenn z.B. nur 2 Pulte angesteckt sind. 3 Pulte sollen maximal gleichzeitig angeschlossen werden können (ohne dass man vorher etwas umprogrammieren oder neu einrichten muss usw.).
Ich habe das schon gebaut, allerdings mit 25-PIN-SubD-Stecker/Buchsen und entsprechend dickem Kabel. Ich möchte das alles gern "geschmeidiger" haben, da die Kabelstärke im Handling und nicht zuletzt auch in der Optik "störrisch" ist. Mir schwebt eine Kabelverbindung aus max. 4 Adern vor, von denen 2 Adern als Spannungsversorgung verwendet werden und somit 2 Adern als eigentliche Steuerleitungen verfügbar sind. Übertragungsweg jeweils max. 100m für jedes Bedienpult.
Alles auf Arduino-UNO-Basis, da ich die gesamte Schaltung auf ein eigenes Layout bringen möchte, was mit dem im UNO verwendetet ATMEGA 328 auch möglich ist (mit PIN-Erweiterung ICs). Den Arduino MEGA, der von Hause aus entsprechend viele PINs zur Verfügung stellen würde, kann ich nicht "nachbauen", sondern müsste einen MEGA als fertiges Produkt integrieren. Würde auch gehen, aber mein Wunsch ist erstmal, das mit dem 328 zu machen (RM 2,54).
Per Funk möchte ich das nicht machen, da ich in der Vergangenheit immer wieder unerwartet Ausfälle feststellen musste mit handelsüblichen Geräten (besonders bei 433MHz). Und auch hier wäre die Rückmeldung optisch auch eine Zusatzeinrichtung. Kabelgebunden mag "altmodisch" sein, aber eben auch zuverlässig.
Anbei ein Bild als Übersicht.
Ist sowas machbar?
Andi
Anhang 34496
Liste der Anhänge anzeigen (Anzahl: 1)
Ich glaube aber, ich hatte einen Denkfehler. Jeder Sender benötigt nur eine RS485. Das sollte machbar sein. Anscheinend kann man mehrere RS485 sternförmig zusammenschalten: https://www.mikrocontroller.net/topic/372367
Bloß das Handling ist dann wohl nicht so einfach. Allerdings kann ich mich nicht erinnern, so etwas schon angewendet zu haben. Ich kenne RS485 nur als Verbindung zwischen zwei Geräten.
Unmöglich scheint es jedenfalls nicht zu sein:
Anhang 34502
Hier gibt es z.b. die RS485 Boards für Arduino.
Wer sucht, der findet ... irgendwann. Im RN-Wissen steht es auch noch mal: https://rn-wissen.de/wiki/index.php/RS485
Muss sich jemand finden, der sich damit auskennt.
MfG
Liste der Anhänge anzeigen (Anzahl: 1)
Wir haben das aus dem RN-Wissen:
Anhang 34523
Da ist doch das, was gebraucht wird. Es waren doch 3 Bedienungen und ein Empfänger, nicht?
Dann haben wir diese MAX485-Module für Arduino (ATmega328P bspw.).
Müssen diese 120Ohm-Widerstände etxra angeschlossen werden?
Hier habe ich ein Anschlusschema gefunden. Verbunden werden R0 mit Rx, DI mit Tx, DE+RE gebrückt und mit einem beliebigen anderen Pin (damit wird wohl das Modul enabled/disabled, nehme ich an).
Dann müssten die Geräte (Arduinos) nur noch programmiert werden. Fehlt noch was?
MfG
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Andi#87,
um diese Idee nochmal aufzugreifen:
Zitat:
Der 74HC595 wäre so ein Kandidat. Den hab ich schon im Auge gehabt. Der wäre sozusagen der Decoder, der im Empfänger verbaut wird, stellt also 8 Ausgänge bereit. Welcher IC kommt dann auf der Sonderseite in Frage?
Hier geht es darum, direkt die Logik-Ein-/Ausgänge miteinander per langer Leitung zu verbinden. Dass man sich dabei Störungen einfangen kann, ist die eine Sache, aber die andere Sache ist die, dass so eine Variante bis 20m Leitungslänge funktionieren könnte. Entscheidend wäre ein Spannungspegel der vom Sender ausgeht und die Leitungslänge übersteht. Das sollte mit +5V und 0V machbar sein. Störungen könnte man noch mit einem Filter (Widerstand und Kondensator) wegbekommen. Ansonsten sind ja keine schnellen Signalwechsel geplant, so dass man auf die Weise auch was realisieren könnte. Die Datenübertragungsrate wäre alles andere als hoch, aber das ist hier nicht die Zielsetzung. Geht ja nur darum, ein Signal zu übertragen. Wenn Du 25 Logikpegelwechsel pro Sekunde übertragen könntest wäre das schon in etwa ausreichend? Ich glaube schon. Da könntest Du völlig taktunabhängig arbeiten, indem Du einfach 2 Arduinos per GND-Leitung und 1 oder 2 Signalleitung(en) verbindest. GND ist klar und muss sein. 1 Status-/Steuerleitung und eine Datenleitung. Von jeder Bedienung gehen also 3 Adern weg zum Empfänger, wo dann die 6 (9, davon 3x GND) Adern ankommen und die Signale zentral verarbeitet und verteilt werden. Ist vor allem viel Programmierarbeit und etwas kniffelig. Leuchtdioden steuert ein Arduino an und ein Relais kann man damit auch noch schalten, wenn man das nicht sogar weglassen könnte und mit Transistor oder gleich nur mit den Arduino-Ausgängen steuert. Ein paar mA vertragen diese Ausgänge schon.
8 Taster on/off und 8 LEDs pro Arduino (UNO) sollten kein Problem sein, dafür wären zumindest keine Relais oder so notwendig.
Als Kabel würde ich denken, dass ein zweiadriges Kabel mit Abschirmung ausreichend ist. Die Schirmung ist dann Masse (GND). Bloß zum Leitungswiderstand fällt mir nichts ein. Das müsste man praktisch vielleicht einfach messen: 5V an einer Seite anlegen und am andern Kabelende, nach 20m, messen. Da kommen dann meinetwegen 4V an oder auch 4.5V, das wäre wichtig zu wissen. Wenn zu wenig ankäme, könnte man einen einfachen Leitungstreiber per Transistor realisieren, der die Spannung so weit anhebt, dass nach der gewünschten Strecke wenigsten 4.5V ankommen (aber wahrscheinlich auch unnötig, weil der Arduino Analogeingänge hat, was auch funktioniert). Der Arduino sollte dann aber schon mit 5V und nicht mit 3.3V betrieben werden. Eine Minimalbeschaltung für den ATmega328P wäre da völlig ausreichend (1x 16MHz-Quarz, 2x Kondensator, Spannungsregler).
MFG
- - - Aktualisiert - - -
Sag bescheid, wenn Du einen Beispielplan zur Beschaltung brauchst! ;)
- - - Aktualisiert - - -
Spannungsregler kann ein MCP1702-5002 sein.
- - - Aktualisiert - - -
Ein Plan, wo man welche Sachen anschließen könnte, was damit noch nicht funktioniert, ist, dass mehrere Taster gleichzeitig gedrückt werden:
Anhang 34541
Hier ein Beispiel, wie das mit einem Bedienteil aussehen könnte. Hier können auch mehrere Taster gleichzeitig gedrückt sein und werden erkannt:
Anhang 34542