Forum: Mikrocontroller und Digitale Elektronik Relaiskarte am raspberry


von Matthias (Gast)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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?

von Wolfgang (Gast)


Lesenswert?

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.

von Matthias (Gast)



Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Joachim B. (jar)


Lesenswert?

Beitrag "Re: Relais mit Optokoppler"

Stefanus F. schrieb:
> Die Relais erfüllen mit ihrer 1500 Volt Isolation bei weitem nicht die
> VDE Richtline, welche 4000 Volt Isolation erfordert.

danke!

von Stefan F. (Gast)


Lesenswert?

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

von Matthias (Gast)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

Matthias schrieb:
> Kennt ihr dann zufällig eine bessere Alternative

Die sieht gut aus:
https://www.velleman.eu/products/view/?country=fr&lang=de&id=351282

Dazu brauchst du wohl noch einen USB-RS232 Adapter.

von Matthias (Gast)


Lesenswert?

Kann ich die dann per USB ansteuern? Ich seh auf der Karte nur 
schraubklemme und keinen rs232 oder USB.

von Christian M. (Gast)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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.

von Christian M. (Gast)


Lesenswert?

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

von Harald W. (wilhelms)


Lesenswert?

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.

von Matthias (Gast)


Lesenswert?

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.

Beitrag #5848215 wurde vom Autor gelöscht.
von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

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 :)

von Stefan F. (Gast)


Lesenswert?

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 Matthias (Gast)


Lesenswert?

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.

von Matthias (Gast)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

sudo dmesg

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Da bekomm ich nur diese Liste angezeigt

von Stefan F. (Gast)


Lesenswert?

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.

von Matthias (Gast)


Angehängte Dateien:

Lesenswert?

Ich bekomme ihn ja angezeigt. Wie würde denn so eine portnummer z.b. 
aussehen?

von Stefan F. (Gast)


Lesenswert?

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.

von Matthias (Gast)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

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.

von Mutluit M. (mutluit)


Lesenswert?

@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.

: Bearbeitet durch User
von Matthias (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.