- 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 Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.259
    RS 485!
    Wenn man das so machen will müsste dann wohl der Empfänger der Master sein.
    ( Nur ein Controller im System kann Master sein ! )
    Der verschickt dann einen Token mit der Adresse der jeweiligen Tasteneinheit.
    Diese und nur diese darf dann seinen Sender einschalten und Steuernachrichten verschicken.
    Kommt nicht innerhalb einer bestimmten Zeit eine Antwort wird der Token an die nächste Steuereiheit weitergegeben.
    Um das Ganze flexibel zu Halten wären wohl 16 Adressen sinnvoll.
    Eventuell kann der Master auch nur bei jedem x-sten Durchlauf alle möglichen Adressen abfragen.
    Ansonsten nur die bereits aktiven, das beschleunigt das System.
    Noch mehr mögliche Adressen verlangsamen aber zunehmend das ganze System.
    Auf der Tastenseite könnte man die Adresse per DIP Fix Schalter, oder Lötbrücken einstellbar machen.
    Dann kann für alle Tastenteile die gleiche Software verwendet werden.
    Es darf immer nur ein Sender aktiv sein. Dann würde das Ganze auch mit nur 2 Drähten funktionieren.
    Als Treiberbausteine könnten hier die "üblichen Verdächtigen" verwendet werden ( MAX 485, SN75176 ).
    Als Ansteuerung für die Bausteine wäre der ganz normale USART + 1 bis 2 Steuerleitungen möglich.
    Das Bussystem muss an beiden Enden mit Abschlusswiderständen abgeschlossen werden.
    Bei DMX verwendet man hierzu Terminatoren ( Einfach in einen Stecker eingelöteter Widerstand. ).

    Das System entspricht in etwa dem, was auch HaWe und 021aet04 vorgeschlagen haben.

    Ich würde hier noch mal ein anderes Bussystem in den Ring werfen.
    Wäre das nicht eine klassische Anwendung für einen CAN Bus?
    Hier sendet jeder Teilnehmer seine Nachrichten in einem festgelegten Frame, die Kollisionserkennung passiert hier ja auf dem Bus ( Der Teilnehmer der eine Buskollision feststellt schatet seinen Sender ab ! ).
    Der Bus arbeitet Nachrichtenbezogen.
    Das bedeutet ein Sender gibt nur eine Nachricht auf den Bus und nur die Teilnehmer die diese Nachricht "interessiert" werten diese aus.
    Damit liesse sich so ein System auch problemlos mit mehreren Sendern und Empfängern erweitern.
    Die Geschwindigkeit auf dem Bus bestimmt hier die Reichweite.
    Ich kenn jetzt die Lösung mit 2 Chips. Einer für den Protokollstack ( MCP 2515 ) ein weiterer als Bustreiber ( MCP 2551 ).
    Librarys sollten sich für den Arduino finden lassen.
    Es gibt auch Controller mit integrierter CAN Schnittstelle, aber es soll ja ein Arduino verwendet werden!
    Wobei das CAN Protokoll doch relativ komplex ist.

    Meines Wissens ist RS485 ist eine Punkt zu Punkt Verbindung. Stern geht damit nicht.
    Stern geht nicht, das stimmt.
    Aber die Leitung darf ohne weiteres von einem Teilnehmer zum nächsten, ohne Abzweigungen, gelegt werden.
    Die Bustreiber sind dabei für max. 32 Teilnehmer ausgelegt.
    Geändert von wkrug (21.11.2019 um 22:35 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.669
    Wir haben das aus dem RN-Wissen:

    Klicke auf die Grafik für eine größere Ansicht

Name:	rs485-2leiter.jpg
Hits:	8
Größe:	30,5 KB
ID:	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

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.259
    Dann haben wir diese MAX485-Module für Arduino (ATmega328P bspw.).

    Müssen diese 120Ohm-Widerstände etxra angeschlossen werden?
    Der Bus ist recht stabil, es wird bei 18m sicher auch ohne diese Widerstände funktionieren.
    Von der reinen Lehre her müssen aber die Widerstände an beiden Enden der Leitung eingebaut werden.
    Wie man das technisch löst ist auch vom verwendeten Stecksystem abhängig.
    Jeder Busteilnehmer bekommt 2 Stecker. Ob man da 1*männlich 1* weiblich oder gleiche Stecker verwendet ist erstmal egal.
    Natürlich geht auch fixe Verdrahtung mit Schraubklemmen.
    Die Abschlusswiderstände kann man ja auch in jeden Busteilnehmer einbauen und über einen Jumper zuschaltbar machen.
    Oder man macht das eben in einen Stecker rein ( wie bei DMX 512 ) .

    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).
    Das mit den Enable Leitungen hast Du richtig erkannt.
    Alle Empfänger können aber trotzdem fix aktiv geschaltet werden.
    Das ist eventuell sogar ein Vorteil, weil der aktive Sender sein eigenes Signal wieder empfängt und man somit auch gleich eine Busüberwachung mit integrieren kann.
    Die Sender müssen aber auf jeden Fall abschaltbar sein, weil das Protokoll differentielle Signale verwendet und damit 2 Sender gleichzeitig mit unterschiedlichen Signalzuständen einen Quasi Kurzschluss produzieren könnten.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.669
    Danke wkrug!


    Der Vollständigkeit halber:


    Zitat Zitat von Moppi Beitrag anzeigen
    Wir haben das aus dem RN-Wissen:

    Klicke auf die Grafik für eine größere Ansicht

Name:	rs485-2leiter.jpg
Hits:	8
Größe:	30,5 KB
ID:	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).

    Gearbeitet wird im Halbduplexverfahren, weil nur 2 Leitungen da sind. Angeschlossen werden alle MAX485 auf dem Bus parallel. Widerstände an den Kabelenden gehören offenbar rein (bei kurzen Leitungslängen kann drauf verzichtet werden - Definition "kurz" fehlt).


    5x Arduino Nano-Platinen, Leisten zum Einlöten: 15,-EUR
    5x MAX485-Levelkonverter-Boards: 8,- bis 10,-EUR

    Dann bleibt nur noch die Frage, ob Andi#87 genügend Platz in jeder Sendeeinheit und Empfangseinheit hat, für Arduino Nano + MAX485 Board. Zusätzlich ist auch ein wenig Elektronik drumrum notwendig, um Relais und Dioden zu steuern. Dafür fehlt hier aber der interne Schaltplan aller Geräte, so dass dazu nichts weiter gesagt werden kann. Außerdem müssten die vorhandenen Geräte umgebaut werden, wie ich das sehe.

    Damit war es das erst einmal so weit, denke ich.



    MfG

    - - - Aktualisiert - - -

    Habe mir gerade ein paar Gedanken zur Abwicklung gemacht, auch das ist nicht ganz unproblematisch. Pauschal würde ich ca. 150 EUR Entwicklungskosten ansetzen. Dann wird die Hardware gekauft und alles aufgebaut. Dann programmiert. Sollte es trotz aller Bemühungen nicht funktionieren, ist das Geld für Andi#87 futsch. Ich denke, eine Garantie mag hier, im Hobbybereich, keiner geben. Nachdem das dann funktioniert und sie Sachen verschickt wurden, müssen die Teile verbaut werden, in die Geräte. Das am besten vor Ort, wo auch gleich alles in Betrieb genommen werden kann. Wenn der Verbund der Geräte funktioniert, heißt das noch lange nicht, dass es vor Ort eingebaut auch funktioniert. Versendet man die Elektronik und die wird falsch angeschlossen, könnte sie im schlimmsten Fall zerstört werden.
    Ich sehe das eher als Selbstbauprojekt für Andi#87.
    Geändert von Moppi (23.11.2019 um 06:01 Uhr)

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.259
    Ich sehe das eher als Selbstbauprojekt für Andi#87.
    Das seh Ich genauso.
    Da es sich prinzipiell alles aus vorhandenen Librarys zusammenbasteln lässt, sollte das auch nicht so schwierig werden.
    Ein Problem seh ich eventuell noch bei der Abschaltung der Sender der RS 485 Treiber.
    Die muss ja relativ zeitnah nach versendung des letzten Bytes erfolgen, aber das könnte man per Polling lösen ( Interrupts wären da natürlich eleganter ).

    Widerstände an den Kabelenden gehören offenbar rein (bei kurzen Leitungslängen kann drauf verzichtet werden - Definition "kurz" fehlt)
    Wir haben bei DMX schon Leitungslängen mit 30m und Kabel mit falschem Wellenwiderstand gehabt und auch das hat, mit Abschlusswiderstand auf einer Seite, funktioniert.
    Da wir hier von einem finanziellen Aufwand von 20 Cent ( 2* Widerstand + 2* Jumper ) reden würd Ich auf die Abschlusswiderstände nicht verzichten.
    Nötigenfalls kann man die Widerstaände auch direkt in die Kabelklemmen der RS 485 Platine mit reinquetschen.

    Dann bleibt nur noch die Frage, ob Andi#87 genügend Platz in jeder Sendeeinheit und Empfangseinheit hat, für Arduino Nano + MAX485 Board. Zusätzlich ist auch ein wenig Elektronik drumrum notwendig, um Relais und Dioden zu steuern.
    Ich wär da auch gleich wieder auf dem Trip ein kleines OLED Display mit SPI, oder I²C Schnittstelle in die Tasteneinheiten mit einzubauen.
    https://www.ebay.de/itm/0-96-I2C-IIC...4AAOSwDwhdo9yu
    Wenn die Relaisplatine den Token veschickt könnte er doch gleich in einem 2ten Byte den aktuellen Zustand der Relais verschicken.
    Damit hätten dann alle Tastenmodule die Information über den aktuellen Zustand der Relais und könnten diesen auf den Displays anzeigen.
    Geändert von wkrug (23.11.2019 um 12:12 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.669
    Ein Problem seh ich eventuell noch bei der Abschaltung der Sender der RS 485 Treiber.
    Die muss ja relativ zeitnah nach versendung des letzten Bytes erfolgen
    Dafür gibts sogar Beipsielcodes für Arduino im Netz.

    Nötigenfalls kann man die Widerstaände auch direkt in die Kabelklemmen der RS 485 Platine mit reinquetschen.
    Hätte ich auch so gemacht und funktioniert auch.



    MfG

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    31.03.2014
    Beiträge
    179
    Hallo zusammen,

    vielen Dank für Eure vielen Antworten und die Zeit, die Ihr Euch dafür genommen habt. Credo: es ist kompliziert. Ich bin definitiv in diesen Programmier-Dingen ein Anfänger, habe bisher lediglich Sketches nachgebaut usw. Daher wird das meine Fähigkeiten übersteigen. Sofern ich niemanden finde, der das machen könnte, lege ich das erstmal wieder auf Eis, bis ich mehr Kenntnisse habe und dann einen neuen Anlauf wage...

    Danke
    Andi

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.669
    Hilfe, beim Erstellen des Programmcodes, so weit es notwendig ist, würdest Du hier bekommen. Du müsstest es aber selbst umsetzen.
    Lohnt denn das Umstellen auf zwei Drähte den Aufwand? Und wäre es überhaupt möglich das so umzubauen?



    MfG

Ä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