Hallo Himbeerfreunde,
ich möchte Euch mein Projekt zur Steuerung von Relais über Schieberegister vorstellen, mit allem was daraus erwachsen ist.
Hintergrund und Werdegang:
Ich habe mehrere Projekte, wo ich viele Ausgänge schalten muss, wie zum Beispiel Lichtuhren oder auch meine Pumpensteuerung bzw. das gesamte Bewässerungssystem. Das letztere war dann der Ausschlag um die hier vorgestellte Headerplatine zur Steuerung von Relais mittels Schieberegister (74HC595) zu entwickeln. Denn das System muss verschieden Pumpen und Ventile (alle 230V) mittels Relais steuern und bis auf drei GPIOs sind alle anderen mit Input von Sensoren belegt und die Verkabelung auf dem Breadboard war ein Graus.
Entwicklung:
Bekannter Maßen kommt der Appetit beim Essen. Ursprünglich wollte ich mir eine Lösung löten, mit der ich schnell und einfach die Relais mit dem Schieberegister verbinden kann, um meine Programmierung zu testen. Da ich zwei 4 Relais Module hatte und man die platzsparend „Rücken“ an „Rücken“ stellen konnte und über ein 8Bit 74HC595 ansteuern kann, kam mir die Idee einer Headerplatine, die man einfach nur auf die beiden Relaisplatinen aufsteckt. Das Ganze sollte dann auch noch wiederverwendbar sein. Bei der genaueren Planung meines Projekts stellte ich fest, dass ich voraussichtlich bis zu 16 Relais brauchen könnte. Also musste die Lösung skalierbar sein. Da man die Schieberegister in Reihe schalten kann, sollte das auch mit der Platine möglich sein. Darauf hin dachte ich mir, es wäre auch klasse, wenn ich auch LEDs direkt damit ansteuern könnte, denn ich habe auch einige Status LEDs die über ein Schieberegister geschaltet werden sollten. Bei weiteren Tests stellte ich dann fest, dass ich die Relais mit dem Strom über das Schieberegister nicht geschaltet bekomme, zumindest nicht alle gleichzeitig, Also musste ich die Platine noch mit einer externen Stromversorgung versehen. Um auf Nummer sicher gehen, habe ich die beiden Stromkreise bei der Schaltung der Relais galvanisch voneinander getrennt. Damit waren die Anforderungen für Version 1.0 klar (und es würde nicht reichen).
Anforderungen:
- 2x 4 Relais Platinen über Schieberegister ansteuern
- schnelle Montage
- flexibel einsetzbar
- platzsparend
- wiederverwendbar
- skalierbar/in Reihe schaltbar
- auch verwendbar für LEDs
- externe Stromversorgung
- galvanische Trennung
Hier zu sehen, wie die Platinen (unbestückt) hintereinandergeschaltet werden.
„Platinen-Erstellung“:
Zunächst hatte ich versucht die Platine mit einer Lochplatine selbst zu löten, was ich nach der Hälfte der Lötarbeiten für die erste Platine drangegeben habe, weil durch die Mehrschichtigkeit, die notwendig ist, die Reihenfolge der Lötarbeiten sehr wichtig ist und ich mehr als nur eine Platine brauchte.
Danach habe ich erst einmal ein 2 Layer Platinendesign entworfen und mir überlegt sie selbst zu ätzen. Aber nach langem Einlesen, wie es gemacht wird und in Anbetracht der Anschaffungen und den Risiken, habe ich mich entschlossen die Platinen in Auftrag zu geben.
Ich habe direkt eine größere Anzahl produzieren lassen. Zum einen ist das Produzieren einzelner Platinen unrentabel, ich brauchte und brauche sowieso mehrere und auch einige Freunde waren sehr interessiert, so dass ich die auch zum Selbstkostenpreis 3,37 Euro abgeben konnte. Wer also auch Interesse hat kann mich anschreiben. Porto und Verpackung kommt hinzu. Die Platine ist dann natürlich unbestückt.
Die Platine (Version 1.0):
Bestückt wird die Platine mit
8x Widerstände zB 220 Ohm 8 x 0,08€ = 0,64€
1x SN74HC595N Schieberegister 0,60€
1x IC-Fassung 16Pol 0,22€
1x Buchsenleiste zum selberschneiden 0,72€
(empf. Fischer Elektronik Buchsenleiste (Standard) 3,45€ (sind besser zu kürzen))
1x Stiftleite zum selberschneiden 0,68€
Gesamtkosten für Bestückung ca. 2,86€
(Alle Preise Näherungswerte)
Die bestückte Platine
Beschreibung:
Die Platine hat auf der linken Seite 7 Anschlüsse:
ST_CP für den Store
SH_CP für den Shift
DS-IN für die Daten
VCC für 5V für das Schieberegister
GND für das Schieberegister
Ex-VCC Externe 5V für die Relais
Ex-GND Externe GND für die Relais
Auf der rechten Seite das gleiche nur das dort der DS-OUT ist von Q7‘ Serial Out von Pin 9.
Auf der Unterseite gibt es (müssen dort angelötet werden) zwei 1x6 Buchsenleisten, die dann auf die Relaisplatinen gesteckt werden. Daneben sind noch zwei 1x1 Buchsenleistenlötpunkte für den JD-VCC-Anschluss (Externer VCC) für die Relais Platine.
Auf der Oberseite gibt es (müssen dort auch noch angelötet werden) zwei 1x5 Buchsenleisten, die dann eine weitere Platine aufnehmen können, zum Beispiel mit LEDs. Die Buchsenleisten liefern Q0, Q1, Q2, Q3 und GND, bzw. GND, Q4, Q5, Q6, Q7, also die Ausgänge der Schieberegister mit vorgeschaltetem Wiederstand plus je einer GND – Leitung.
Vorschau / Weiterentwicklung:
Dadurch, dass die Relais bei Spannungsdifferenz schalten, hat man leider den Effekt, wenn man neben den Relais auch LEDs oben anschließt, leuchtet die LED, wenn das Relais aus ist und die LED geht aus, wenn das Relais schaltet. Das gefiel mir nicht. Deshalb hab ich eine Headerplatine für die Headerplatine entwickelt, die ich in kürze hier auch vorstellen möchte. Diese Platine wird zu den Relais anzeigen, ob die Relais geschaltet sind oder nicht. Auf dem Foto des Pumpensteuerungsprototyps unten seht ihr auf der rechtesten Headerplatine den ersten selbstgelöteten Prototypen.
Diese RelaisStatusPlatine erfordert leider noch ein paar Anpassungen an der SchieberegisterRelaisPlatine, die ich gerade neben ein paar weiteren Optimierungen umsetze, über die ich dann in Kürze auch berichten werde.
Pumpensteuerungsprototyp, eigendlich Bewässerungssstemtrototyp mit Schaltern, Relais und LEDs und drei Platinen in Reihe.
Auf der Platine ganz rechts ist die selbstgelöteten RelaisStatusPlatine als Prototyp.
Vielen Dank für das Interesse.
Viele Grüße
Heiko