Zuviele Kabel zwischen Raspberry Pi und Relaisschaltmodul (ULN2803 Bausteine im Case)

  • Hey Leute,


    ich habe folgende Aufgabe mir gestellt und bin noch am tüfteln. Bzw. auch optimieren.


    Ich möchte über meinen Raspberry Pi mehrere Relais (Finderrelais 5V DC Spulenspannung) ansteuern und nutze dafür mehrere ULN2803. Soweit ergibt sich auch noch kein Problem. Mein Raspberry Pi kommt bald in ein neues Zuhause. Er zieht in seine neue Verteilung.


    Und ich habe bislang und es soll in Zukunft auch so bleiben, jeweils 1 Modulgehäuse für den Raspberry Pi, 1 Modulgehäuse für den Levelshifter für i2c und 1 Modulgehäuse für Temperatursensoren DS18(x)20 wobei in seinem Gehäuse schon ein Temperatursensor schlummert und zur guter letzt habe ich ich noch ein Modulgehäuse für das Sendemodul für Funksteckdosen inkl. ein Spannungserhöhungsmodul (komme gerade nicht auf richtigen Namen), welches dem Funkmodul eine Spannung von 12V zur Verfügung stellt. Habe so in der Vergangenheit die beste Erfahrung gemacht, mit Sicherheit beim Senden der Signale.


    Aber das nur mal am Rande, den bis dato bin ich mit dem ganzen zufrieden. Was sich nun verändert ist das Modulgehäuse für die ULN2803, welche zur Ansteuerung einiger Relais vorhanden sind. Ich sollte aber noch erwähnen, ich möchte möglichst die Relais einfach und sicher ansprechen. Mal sind es 2 Relais die angesprochen werden zugleich, mal auch nur eines. Aber es können auch mal mehr als 2 sein.


    Wo mein Problem gerade liegt ist, wie verbinde ich optimalerweise dieses Modul mit dem Raspberry Pi.


    Folgende Möglichkeiten sind aus meiner Sicht möglich:


    1. Einfache Kabel x - Adrig zwischen Modul und RPi spannen, wird nur bei 16-24 Adern zzgl. Spannungsversorgung ein wenig wild.


    2. i2c Porterweiterer, habe mit denen aber bislang nur ein wenig "rumgespielt", aber diese wären eine Möglichkeit, damit ich lediglich 4 Adern zwischen dem i2c Modul und dem ULN2803 Modul verlegen muss. Den das i2c Modul ist ja so schon mit dem RPi verbunden.


    3. etwas Oldschool, aber auch möglich, Schieberegister. Könnte ggf. nur ein wenig anspruchsvoll beim Programmieren werden.


    4. ein Arduinoboard, welches über die Serielleschnittstelle / USB Port mit dem RPi kommuniziert und lediglich die "Steuerbefehle" entgegen nimmt und entsprechend umsetzt.




    Was ich noch ergänzen möchte ist, manche Relais sollen auch nur für eine gewissen Zeit angesprochen werden und dann entsprechend einen "off Befehl" bekommen.




    Ich habe das ganze vorhin mal im kleinen mit Möglichkeit 1 getestet. Also ich habe mir ein paar Scripte (Shell) gebastelt. Das eine Schaltet Relais 1 für 5 Sekunden an und dann wieder aus, das zweite schaltet Relais 2 ein, 0,5 Sekunden später Relais 1 und nach 5 Sekunden das ganze in entgegengesetzter Richtung wieder aus. Zusätzlich habe ich noch 2 Scripte gehabt, die Relais 3 einfach ein bzw. ausgeschalten haben.


    Ich sollte noch zusätzlich nachschieben, ich habe vor diese Scripte später über eine kleine einfache Homepage an zu steuern bzw. ein Teil auch über Crontab, daher bin ich bislang auf einzellnen Scripten geblieben und würde es eigentlich auch gerne so beibehalten.


    Ich hoffe es gibt trotzdem eine Möglichkeit den "Kabelwust" zu reduzieren.


    Danke schon mal im voraus und ich hoffe, dass mir zu helfen ist.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

  • http://www.ebay.de/itm/PCF8574…f13eea:g:eZYAAOSwcBhWbozX


    immer gut für einen ULN und 8 Relais oder einer 8 Relaiskarte hinterm ULN


    mehrfache pullups entfernen, 1x pullup an SDA und SCL reicht, optimal am letzen Board

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Okay,


    kann mir dabei nur jemand evtl. den Schuppser geben, wie ich z.B. konkret in den Scripten z.B. Pin 1 von IC 1 (dem Modul von jar) anspreche. Wie gesagt, hab damit bislang eher ein wenig rum gespielt.


    Mir würde die einfachste Möglichkeit reichen, da ich eh für verschiedene "Aufgaben" verschiedene Scripte einsetzen möchte. So steuert z.B. Script 1 lediglich die ersten beiden Relais bei deren Aufruf an und wenn Script durchgelaufen ist, ist es auch beendet.


    Also könnten wir das z.B. Anhand folgender Situation ggf. einfach mal durchspielen?


    Also Script 1 lautet so:



    Ich nutze für die Ansteuerung bislang wringPi und habe ein "Masterscript" welches ich 1 mal durchführe und die Ausgänge bislang automatisch in den Zustand setzt, wie ich den brauche. Habe es einfach in Crontab unter @reboot rein gepackt.

    Bash
    #!/bin/bash
    
    
    gpio export 24 out
    gpio export 25 out


    Wie würde den sowas aussehen, wenn ich es mit den i2c Bausteinen / Modulen mache? Kann ich das noch in Bash Scripten machen oder ist das außerhalb der Möglichkeiten von Bash?


    Und wie gesagt, die Pins sind "fest" mit den Scripten verbunden. Also es gibt keine Querzugriffe oder der gleichen drauf.



    Michael


    PS: Das mit den Modulen hatte sich bislang ganz gut bewehrt. Und damit möglichst die Störungen vor allem bei dem i2c verbindung gering sind, habe ich diese Module direkt am Pi bzw. nach dem Levelshifter gepackt. Und eigentlich wollte ich bei den Modulgehäusen bleiben. So kann ich einzellne Module bei bedarf updaten ohne gleich alles in allem auseinander zu nehmen. Und zur guter letzt, ich propfe die Gehäuse ungerne übermäßíg voll. Manche Bauteile benötigen auch bisschen Luft zum Atmen :-). Und wie gesagt es gehört alles in den Sicherungskasten. Nicht in einem xxl Gehäuse an der Wand. Und da gibt es nunmal bedingt des Einsatzortes nur begrenzte Möglichkeiten bei der Wahl über die Größe des Kastens.

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

    Edited once, last by RaspiDo ().

  • Zum Thema wie man mit der bash den I2C Bus steuert, sollten sich doch in diesem Forum viele Beispiele ( i2c-tools, wiringpi o.ä. ) finden lassen. Zum Gehäuse bleibt nur anzumerken, dass man gerade beim Einbau in einen Sicherungsverteiler, möglichst auf eine "wilde Verkabelung" verzichten solllte, denn sollte es doch mal ein Problem geben, wirst Du deiner Versicherung o. wen auch immer, einiges erklären müssen.

  • Klar das man da aufpassen muss, aber das ist mein täglich Brot und daher weiß ich eigentlich was ich da tue.


    Aber um dem ganzen vor zu beugen, ich habe den Verteilungs und Zählerschrank einfach etwas größer gewählt. Also ein Bereich für Sicherungen und co und ein Bereich nur für den Raspberry Pi und seine Module. Die einzige "Verbindung" der Bereiche kommt durch ein 20doppeladriges Telefonkabel zustande, welches die Finderrelais mit dem uln2803 Modul verbindet. Und der Lastteil der Relais wird seperat abgesichert. Also nicht mit B16A Automaten sondern lediglich B6A Automaten. Wobei die Relais eigentlich 8A können.


    Also von daher passt das schon.


    Und zu guter letzt, ich nehme ja zur Verbindung der Module nicht "1000+1" einzeladern. Muss auch eine gewisse Ordnung haben.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:


  • ...Zum Gehäuse bleibt nur anzumerken, dass man gerade beim Einbau in einen Sicherungsverteiler, möglichst auf eine "wilde Verkabelung" verzichten solllte



    Klar das man da aufpassen muss, aber das ist mein täglich Brot und daher weiß ich eigentlich was ich da tue.


    na denn muss ich ja nicht auf den 3,3k bis 1k pulldown am GPIO oder ULN Eingang hinweisen ;)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Nö musst nicht. Für den Testaufbau ging es auch ohne aber für den richtigen Einsatz natürlich mit.


    Ich komme nur zur Zeit nicht an meine Widerstände ran. Die liegen schon mit dem anderen Kleinkram in Umzugskisten. Aber das wird wieder werden. Aber erstmal gucke ich nach einer Möglichkeit das in i2c zu lösen. dann sind es gleich deutlich weniger Leitungen.


    Und mit täglich Brot meinte ich aber eher den Teil des Stroms, der weh tun kann bzw. auch mehr schädigen kann. Das ganze mit Kleinspannung und der gleichen is lediglich Hobby. Also zumindest Details. Grundlagen gehören zur Ausbildung eh dazu.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

  • Der ULN hat eigentlich schon interne Widerstände zwischen Basis und Emitter, die das ganze auf Masse Ziehen, aber wers mag. Ansonsten mußt Du je nach I²C Expander wegen der Kabellängen und der Pegel aufpassen, aber Du nutzt ja sowieso einen Levelschifter für den I²C. 3V3 für den MCP23017 macht sich nicht gut, wenn man den mit 5V betreibt, weil er dann gerade mal 3,3V als high erkennt, wenns gut läuft.

  • Kabellänge ist max 20 cm nach Levelshifter.


    Bin gerade am suchen nach gezielten Ansprechen von i2c Pins bei Portexpander. Nur bislang finde ich noch nicht das richtige.


    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash:

  • Ich hab hier was gefunden.


    Link: http://www.elektronx.de/tutori…ung-mit-mcp23017-und-i2c/


    Werde mir den Baustein mal bestsorgen oder gucken ob ich den in der Kiste wiederfinde. Mal gucken wann ich dazu komme. Notfalls muss alles ein wenig länger warten. Aber ich denke ich bekomme das so hin.




    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.


    :angel: :wallbash: