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