Hallo. Ich hoffe mir kann hier jemand weiterhelfen.
Ich möchte eine Relaiskarte (16-Kanal)verwenden um im Haus mehrere
Heizungsstellantriebe und Lüftungen zu schalten (230V). Angesteuert
werden die Relais über einen MCP23017 den ich per I2C mit dem Raspberry
verbunden habe. Die Relais werden über ein seperates 12V Netzteil
versorgt. In der 20-poligen Stiftleiste wäre jetzt noch ein 5V-Anschluss
frei. Ich kann mir jedoch nicht erklären wofür dieser eigentlich
benötigt wird, bzw. bin ich mir unsicher ob ich hier 5V vom Raspberry
anschließen soll oder 3,3V da die Ausgangsspannung an den Ausgängen des
MCP23017 auch 3,3V betragen.
Wäre um jede Hilfe sehr dankbar.
Matthias schrieb:> Ich möchte eine Relaiskarte (16-Kanal)
welche? Es wird zuviel Schrott verkauft meist für Arduino AVR an 5V das
kann der PI nicht, da wird aber viel gelogen auch für PI.
Matthias schrieb:> mehrere> Heizungsstellantriebe und Lüftungen zu schalten (230V)
die üblichen blauen Relais haben nicht genug Isolierstrecke für unser
Netz.
Matthias schrieb:> In der 20-poligen Stiftleiste wäre jetzt noch ein 5V-Anschluss> frei.
es fehlen wieder die vielen "w"
wer wohin wann warum wo
Matthias schrieb:> bin ich mir unsicher
ich auch wie man die Fragen passend beantworten soll bei so vielen
Möglichkeiten?
Matthias schrieb:> Ich kann mir jedoch nicht erklären wofür dieser eigentlich> benötigt wird, bzw. bin ich mir unsicher ob ich hier 5V vom Raspberry> anschließen soll oder 3,3V da die Ausgangsspannung an den Ausgängen des> MCP23017 auch 3,3V betragen.
Guck dir das Schaltbild von deiner Relaiskarte an bzw. zeige es hier.
Hab die Karte mal als Screenshot angehängt. Da dieses model überall im
Netz bei raspberryprojekten auftaucht hab ich mich für die gleiche
entschieden. Dass sie für unser Netz ungeeignet wäre hör ich hier auch
zum ersten mal. Ist sie jetzt für raspberry gar nicht geeignet?
Schaltpläbe und Unterlagen finde ich leider keine.
Matthias schrieb:> Dass sie für unser Netz ungeeignet wäre hör ich hier auch> zum ersten mal
nee das ist hier schon ausgiebig besprochen worden. Es gibt dafür
mindestens einen Thread.
Bei den Platinen die Abstände, beim Relais die Trennstrecke offen
Bessere Relais haben größere Abstände von high Volt zur Steuerspannung.
Die Relais erfüllen mit ihrer 1500 Volt Isolation bei weitem nicht die
VDE Richtline, welche 4000 Volt Isolation erfordert.
Praktisch alle Händler dieser Produktreihe versprechen, dass ihre
Relais-Module für den Raspberry Pi geeignet seien. Hier sollte man
allerdings genauer hinschauen, da es unterschiedliche
Schaltungsvarianten gibt.
Ich habe mir mal das Foto von der Platine genauer angesehen.
Es scheint, dass die Relais mit 12V von der Schraubklemme versorgt
werden. Der Spannungswandler macht daraus 5V für die IC's und
Optokoppler.
Der 5V Anschluss auf der Stiftleiste ist scheinbar als Ausgang gedacht,
womit man optional die steuernde Schaltung mit versorgen kann.
Im Eingangsbereich ist jeder Kanal mit einem Optokoppler ausgestattet,
vermutlich so:
1
Input
2
1 o------|<|----[===]----+---o +5V
3
|
4
2 o------|<|----[===]----+
5
|
6
3 o------|<|----[===]----+
7
|
8
4 o------|<|----[===]----+
9
|
10
5 o------|<|----[===]----+
11
|
12
6 o------|<|----[===]----+
13
|
14
7 o------|<|----[===]----+
15
|
16
8 o------|<|----[===]----+
Die Optokoppler sind aber (wie üblich) sinnlos, weil das Board trotzdem
keine Potentialtrennung bietet.
Eine Eignung für den Raspberry Pi und ARM bezweifle ich, weil die Anoden
der Optokoppler an +5V hängen und weil die Eingänge laut Beschreibung
15-20 mA Strom aufnehmen.
Da ist das Layout:
https://www.sainsmart.com/zen/documents/20-018-103/16-relay.rar
Vielen Dank für die Antworten. Kennt ihr dann zufällig eine bessere
Alternative oder bleibt mir nur wieder dir selber-löten-variante. Dazu
wär ich dann auch für Tips dankbar. Zum Strom senken denk ich dass die
relais über transistoren angesteuert werden müssen oder?
Matthias schrieb:> Kann ich die dann per USB ansteuern? Ich seh auf der Karte nur> schraubklemme und keinen rs232 oder USB.
Ja eben nur mit einem
Stefanus F. schrieb:> USB-RS232 Adapter.
Das Interface ist ein bisschen "rudimentär" ausgeführt. Du brauchst auch
ein modifiziertes RS232-Kabel wegen der Schraubklemmen.
Gruss Chregu
Christian M. schrieb:> Matthias schrieb:>> Kann ich die dann per USB ansteuern? Ich seh auf der Karte nur>> schraubklemme und keinen rs232 oder USB.>> Ja eben nur mit einem
Man wird doch auf dem Raspberry Pi wohl ein SoftUART laufen lassen
können, um sich den Umweg über USB sparen zu können.
Wolfgang schrieb:> Man wird doch auf dem Raspberry Pi wohl ein SoftUART laufen lassen> können, um sich den Umweg über USB sparen zu können.
Ja stimmt, habe das übersehen. Und direkt - muss dann aber invertiert
werden.
Gruss Chregu
Joachim B. schrieb:> die üblichen blauen Relais haben nicht genug Isolierstrecke für unser> Netz.
Das hat nichts mit der Farbe zu tun, sondern eher mit der Form.
Die üblichen, eher würfelförmigen Relais auf solchen Karten haben
nur einen kleinen Abstand zwischen Spulen- und Kontaktanschluss.
Bei den eher länglichen Relais ist der Abstand deutlich grösser.
Bei vielen Billigrelaiskarten wird der ohnehin geringe Pinabstand
durch schlechte Leiterbahnführung noch mehr verringert.
Lässt sich die Karte auch direkt mit den Ausgängen des raspis schalten?
Bin kein programmierprofi und wüsste jetzt nicht wie ich das mit Python
programmieren sollte mit rs232...usart...etc.
Harald W. schrieb:> Das hat nichts mit der Farbe zu tun, sondern eher mit der Form.> Die üblichen, eher würfelförmigen Relais
doch die blauen sind gefährlich, die schwarzen würfelförmigen kommen
erst an 2ter Stelle :)
Matthias schrieb:> Lässt sich die Karte auch direkt mit den Ausgängen des raspis schalten?
Nein.
Dieses China Board hat wie gesagt 5V und 20mA. Das ist beides für den
Raspberry Pi zu viel.
Der parallele Eingang vom Vellemann Bausatz erfordert eine
Steuerschaltung mit Open Kollektor Ausgängen. Die hat der Raspberry Pi
nicht zu bieten. Könnte man allerdings nachrüsten. Mir fällt dazu
spontan der Chip ULN2803 ein, den könnte man mal probieren.
> Bin kein programmierprofi und wüsste jetzt nicht wie ich das mit> Python programmieren sollte mit rs232...usart...etc.
Serielle Ausgaben sind mit Python Kinderleicht:
https://pyserial.readthedocs.io/en/latest/shortintro.html
Die zu sendenen Kommandos sind trivial aufgebaut. Zum Beispiel schaltet
"\r1S1" Das Relais 1 an. Und "\r1C2" schaltet das Relais 2 aus. Hinter
diesen Kommandos musst du noch die Prüfsumme übertragen, siehe Anleitung
von Vellemann.
Wenn man sich ganz dumm stellt, findet man sogar eine fix und fertige
Klasse in Python, die genau das umsetzt:
https://github.com/jerch/python-k8056
Die Variante mit serieller Kommunikation über USB hat den Charme, dass
du sehr viele solcher Bausätze an deinen Raspberry Pi anschließen
kannst.
Von dem Chinaboard bin ich eh schon weg. Das Pack ich heute noch ein und
schicks zurück. Das Netz ist leider so überflutet von diesen Dingern
dass man bei einer google suche fast nichts anderes findet. Mit den
seriellen Schnittstellen werd ich mich schon anfreunden. Den selbst
gelöteten portexpander hätte ich mir dann auch sparen können. Aber
egal...wieder was gelernt. Vielen Dank Stefanus. Mit deinen Infos bin
ich jetzt erst mal paar Tage beschäftigt und kann weiter basteln.
Ich hab die K8056 jetzt zusammengebaut und angeschlossen per USB-RS232
aber was mir jetzt noch fehlt ist die richtige Portnummer um diese
fertige Pythonklasse nutzen zu können.
Ich kann die USB-Geräte im Terminal auslesen und der USB-Converter wird
mir auch angezeigt aber wo finde ich die Portnummer?
Unmittelbar nach dem Anstecken des USB-Seriell Adapters müssel ein paar
neue Meldungen erscheinen. Insbesondere der name des Adapters (oder
Chips) und der zugewiesene tty Port.
Wenn da überhaupt gar nichts erscheint, ist die USB Port defekt.
Vielleicht stellst du erstmal die laufende one-wire Kommunikation ab,
damit Sie dir nicht den Message-Buffer voll schreibt.
Mit "sudo dmesg -c" kannst du den Puffer übrigens leeren. Dann zeigt das
nächste dmesg Kommando nur noch neue Nachrichten an, die seit dem dazu
kamen.
Matthias schrieb:> Wie würde denn so eine portnummer z.b.> aussehen?
Habe ich doch geschrieben:
Stefanus F. schrieb:> Unmittelbar nach dem Anstecken des USB-Seriell Adapters müssel ein paar> neue Meldungen erscheinen. Insbesondere der name des Adapters (oder> Chips) und der zugewiesene tty Port.
Also in diesem Fall /dev/ttyUSB0.
Danke. Das war wonach ich gesucht habe. Nur leider reagiert die Karte
auf keine Befehle. Hab auch versucht sie am Windows PC anzuschließen und
mit der VellemanSoftware zu testen aber da rührt sich auch nichts.
Wird ne lange Fehlersuche mit den zig Fehlerquellen.
Vielleicht noch nen Tip wie ich da am besten ran geh?
Matthias schrieb:> Hab auch versucht sie am Windows PC anzuschließen und> mit der VellemanSoftware zu testen aber da rührt sich auch nichts.
In diesem Fall würde ich mal den Hersteller kontaktieren.
@Matthias, es könnte an den Settings liegen: baud-rate etc.
Ich benutze auf meinen SBCs mit Linux z.B. folgende Zeile um
Kernel-Systemmeldungen über die serielle Schnittstelle anzuzeigen:
mydev=/dev/ttyUSB0 ; stty -F $mydev -crtscts ; cu -s 115200 -l $mydev
cu ist ein Terminal-Pgm, siehe Linux repository.
# cu --version
cu (Taylor UUCP) 1.07
Es nimmt natürlich auch Eingaben an (man kann sich so auch über die
serielle Schnittstelle ins Linux einloggen).
Um die Verbindung zu dem Adapter zu trennen "~." eingeben (ohne die
Hochkommas).
Ich meine so einen Adapter:
https://www.ebay.de/itm/PL2303HX-USB-zu-TTL-RS232-Modul-Adapter-Kabel-Seriell-COM-Arduino-Raspberry/182721171525
(Strom-Klemme nicht anschliessen, nur TX, RX, GND)
Ich hab jetzt dein Board mir nicht genauer angeschaut: es könnte dort
natürlich anders sein.
Nachtrag: ich sehe aus deinem letzten Screenshot dass du so ein Adapter
bereits hast. Dann liegt es evtl. an den beiden Settings, s.o.
also die Hardware scheint zu funktionieren.
Testbutton schaltet alle Relais (wenn die RS232 abgesteckt ist :-))
Baudrate ist richtig eingestellt (ich verwende die fertige Klasse die
mir hier vorgeschlagen wurde)
Zwei verschiedene Adapter getestet (falls doch einer defekt sein sollte)
Vom Adapter habe ich Txd (grün) IN angeschlossen und GND(schwarz) auf O-
Aber ich schaff es einfach nicht über die Software die Relaiskarte
anzusteuern.