- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 37

Thema: Kabelfernbedienung mit Arduino?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    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


    Fernbedienung.pdf
    Geändert von Andi#87 (19.11.2019 um 13:49 Uhr)

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    17.10.2014
    Beiträge
    5
    Hallo,

    wie stellst Du dir die Verkabelung vor? Hast Du eine strukturierte Verkabelung die Du nutzen kannst/willst oder willst Du mit der Kabeltrommel rumrennen bei 100m Kabellänge. Und zw. 2 Bedienpulten via "Empfänger" sind das dann schon im ungünstigsten Falle 200 m Leitungslänge. Da kommt schon was an Leitungsverlusten zusammen.

    hasta

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    Die Kabel werde ich legen, da muss ich nicht mit der Kabeltrommel rumrennen...
    Und 100m sind mit viel Reserve. Aktuell ist die weiteste Entfernung vom Empfänger zu einem der Sende-Bedienpulte ca. 18m. Da man aber nie weiss, was noch kommt, nenne ich mal 100m, um damit auch zukünftig arbeiten zu können. Meines Wissens wäre das z.B. für RS485 unproblematisch, ob nun 15 oder 100m.
    "...im ungünstigsten Fall 200m..." Wieso? Sternförmig verkabelt (wie auf der Zeichnung zu sehen) würden es niemals mehr als eben (max) 100m pro Sendepult.

    Andi

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.666
    Meines Wissens ist RS485 ist eine Punkt zu Punkt Verbindung. Stern geht damit nicht. Jedes Bedienpult bräuchte also drei RS485 Schnittstellen. Zu jedem Bedienpult eine und jeweils zu dem Empfänger. Das wären für jedes Bedienpult 3x3 Adern. Richtig oder falsch? Das würde Dein Problem nicht lösen. Wird dann wohl nur I2C bleiben. Das ist aber nicht für so lange Leitungen, mit mehreren Metern Länge, ausgelegt. Verlängert werden könnte das wohl, aber irgendwie haben andere User in anderen Foren, dafür geschirmte Leitungen CAT5 genommen (Stärke ca. 5mm). Ob das eine Verbesserung für Dich, zum jetzigen Zustand, darstellt? Dann muss es jemand realisieren können. Da habe ich gerade was vom P82B96 gelesen. Ob das funktionieren kann? Da muss sich jemand finden, der das ausprobieren kann oder direkt weiß, wie man so etwas baut. Für mich wäre das auch Neuland und daher scheide ich dann wohl aus. Habe auch kein Oszilloskop, um da irgendwas überprüfen zu können.



    MfG

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    I2C hatte ich auch schon im Visier, aber da waren/sind besonders die Unsicherheiten mit der Kabellänge ein Hindernis. Insofern ist Dein Link zu dem Beitrag auf microcontroller.de sehr interessant, vielen Dank dafür. Diesen Beitrag kannte ich bisher noch nicht. Ich habe allerdings schon viele Erfahrungen gesammelt hinsichtlich Kabel und Kabelqualität. Das ist ein Aspekt, der jedenfalls nicht zu unterschätzen ist.
    Was RS485 betrifft, so habe ich dessen Prinzip anders verstanden, als Du schreibst. Meine vorangegangene Formulierung war da möglicherweise irritierend, indem ich "sternförmig" schrieb. Wenn ich es aber richtig verstehe, so ist RS485 ein Bussystem, auf das man sich an jedem Ort (innerhalb der möglichen Kabellängen) einklinken kann, und es werden keine Signale durchgeschliffen durch eines der angeschlossenen Geräte siehe z.B. https://www.wut.de/e-6wwww-11-apde-000.php). Insofern betrachte ich den Bus dort als "sternförmig", denn ob der Bus nun 100m lang ist oder 20cm, dürfte dann keine Rolle spielen. Bitte mich korrigieren, wenn ich das falsch verstanden habe. Allerdings ist die Kabellänge vom Bus zu den einzelnen Geräten dann eingeschränkt (zumindest im Halbduplex), und das könnte für meine Anwendung wiederum Auswirkungen haben, da ich diesen 2-Draht-Bus verwenden wollte, um das Kabel aus bereits genannten Gründen schmal und flexibel zu halten. Wenn CAT-Kabel ins Spiel kommt (zumindest solches mit Abschirmung), kann ich "eigentlich" auch bei meiner bisherigen SubD-25-Varinte bleiben, denn gut geschirmte CAT-Kabel sind prinzipbedingt nicht wirklich flexibel.
    Ich grüble nun schon eine Weile an diesem Vorhaben und muss zunehmend feststellen, dass es wohl keine wirklich einfache Lösung dafür gibt. Da schaue ich neidisch auf meine USB-Tastatur, die auf einem 4-adrigen Kabel locker über 100 verschiedene Tastensignale überträgt und auf der Empfängerseite erkennt und bin der Meinung, da sollten meine 8 läppischen Tasten doch auch möglich sein. Wird es vermutlich auch, aber die physikalische Grenze bzw. Hürde wird wohl die Kabellänge sein. Symmetrische Verkabelung kenne ich z.B. aus der Musikecke oder DMX und weiss von dort, dass es einen erheblichen Unterschied in der Signalqualität gibt, wenn man ein Line-Signal über 30m Kabel schickt. Daher der Gedanke an RS485...

    Andi

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.666
    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:
    Klicke auf die Grafik für eine größere Ansicht

Name:	262917.jpg
Hits:	6
Größe:	8,2 KB
ID:	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
    Geändert von Moppi (19.11.2019 um 22:08 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.093
    RS485 ist ein Bussystem. Alle Teilnehmer sind an 2 differenziellen Adern angeschlossen (Ader A und B). Dadurch kann immer nur 1 Teilnehmer senden.

    Ich würde das mit einem Master-Slave System an einem RS485 Bus lösen. Da du nur einen Empfänger hast, würde ich den als Master nehmen. DMX basiert auf dem RS485 System und ist ein spezielles Protokoll. Profibus (Bussystem in der Industrie zur Kommunikation in Anlagen) basiert ebenfalls auf RS485.

    Ich würde es so lösen:
    Master (es wird eingestellt wieviele Slaves es maximal gibt) => Empfänger, Slave => Terminal mit eindeutiger Adresse (einmal einstellen z.B. über Dipschalter oder fix programmiert)
    Wichtig ist das nur ein Teilnehmer auf Senden geschalten ist.

    Master sendet an Adresse 1 ein Komanndo um zu prüfen ob es ihn gibt (z.B. Startbyte, Adresse, Stoppbyte)
    Slave vorhanden (z.B. Slave sendet Startbyte, Adresse, Status der Tasten, Stoppbyte zurück) => Master sendet Status der Relais an Slave, nächste Adresse wählen
    Slave nicht vorhanden (keine Antwort für eine gewisse Zeit) => nächste Adresse wählen
    Gleich wie oben mit Adresse 1, den Ablauf wiederholen bis die letzte Adresse erreicht ist und dann wieder bei Adresse 1 starten

    MfG Hannes

Ähnliche Themen

  1. Arduino: Die IoT Cloud richtet Arduino-Boards aus der Ferne ein
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 8
    Letzter Beitrag: 08.02.2019, 09:56
  2. STM32 contra ARM Cortex M3 (Arduino Due, Teensy): Performance per Arduino vs. nativ C
    Von HaWe im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 14
    Letzter Beitrag: 22.11.2017, 11:53
  3. Arduino vs. Arduino: Marke und Produktion wieder unter Kontrolle der Gründer
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 29.07.2017, 10:00
  4. Antworten: 13
    Letzter Beitrag: 07.11.2015, 01:21
  5. Rosenkrieg: Arduino zahlt Arduino keine Lizenzgebühren
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 20.03.2015, 08:00

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen