Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi und merkwürdiges Relais


von Freddi N. (freddi80)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich komme mit einer Relais-Schaltung gerade nicht weiter, und ich kann 
leider auch nur auf gefährliches Halbwissen zurückgreifen :-/

Ich möchte mit einem Raspberry Pi das Relais aus dem Anhang schalten. 
Das Ding ist imho etwas eigenartig: Wenn ich 5V VCC und GND anschliesse, 
schaltet es durch wenn ich IN1 respektive IN2 auf Ground(!) ziehe.
Als ersten Ansatz habe ich nun IN1 und GND auf Ground gezogen und will 
jetzt mit 5V an VCC das erste Relais durchschalten (klappt "von Hand" 
auch erwartunsgemäss).

Also habe ich mir eine kleine Transistorschaltung (NPN BC 337-16) 
gebaut: GPIO Pin über 100kOhm an Basis, 5V an Collector, Emitter auf 
Ground. Das funzt, d.h. mit dem GPIO Pin vom Raspberry Pi schaltet der 
NPN durch (mit ein paar LEDs getestet).

Und nun steh ich fürchterlich auf dem Schlauch: Wie kriege ich diese 5V 
nun an den VCC Port des Relais? Eigentlich wollte ich mich an diesem 
Beispiel orienteieren:
http://www.franksteinberg.de/IMG/ERELPLAN.GIF

Viele Grüsse
Freddi

: Verschoben durch Moderator
von Klecksian (Gast)


Lesenswert?

Freddi N. schrieb:
> Also habe ich mir eine kleine Transistorschaltung (NPN BC 337-16)
> gebaut: GPIO Pin über 100kOhm an Basis, 5V an Collector, Emitter auf
> Ground. Das funzt, d.h. mit dem GPIO Pin vom Raspberry Pi schaltet der
> NPN durch (mit ein paar LEDs getestet).

1) Wo ist der strombegrenzende Emitter/Kollektorwiderstand?
2) 100kOhm? Welches Beta soll denn der Transistor haben? Ich habe hier 
für eine PWM an LEDs 220 Ohm. Bei einem Beta von 100 (wäre schon viel) 
und 100kOhm Basiswiderstand kommt heraus: Ic = Beta * Ib = Beta * Ub/Rb 
= 100 * 5V / 100kOhm = 5mA. Damit bekommst Du kein Relais geschaltet.

von Andreas B. (bitverdreher)


Lesenswert?

Hallo,
Wenn mich mein Auge nicht täuscht, sind auf diesem "Relais" bereits 2 
Transistoren verbaut.
Miss mal den Strom durch INx, der fließt, wenn Du INx mit GND 
verbindest.
(Oder mal in das Datenblatt des Relais schauen).
Vermutlich kommst Du ohne Transistorgerödel aus.

Die 5V nimmst Du aus Deiner Schaltung.

Gruß
Andreas

von Freddi N. (freddi80)


Lesenswert?

Hi,

Erstmal danke für die schnellen Antworten!

@Klecksian:
Laut Datenblatt hat der 337-16 ein hfe von 100-250. Mit dem Multimeter 
gemessen habe ich 193, macht also 9 mA.
Hhhhmmm, nach etwas rumgegoogle habe ich in einer Ebayauktion eine 
ähnliche Platine gefunden, dort sind 15-20 mA Schaltstrom angegeben.
Thema Strombegrenzender E-C-Widerstand: Ich glaube den hab ich mir 
gspart ... ausgehend von diesem 
Bild:http://www.franksteinberg.de/IMG/ERELPLAN.GIF
Wäre das R1?


@Andreas B.:
Du hast Recht, da ist sowohl ein Transistor als auch eine Diode pro 
Relais auf der Platine. Ohne Transistor usw. wär natürlich super.
Hier hab ich das Datenblatt des Relais gefunden, werde aus diesem aber 
nicht ganz schlau
http://img.alibaba.com/img/pb/069/053/492/492053069_490.jpg
Das mit der Strommessung ist aktuell schwierig, mein Multimeter scheint 
nen Hau weg zu haben ...

Ich hab gerade noch was getestet, aus dem Raspberry Pi GPIO Port hab ich 
nur 3,3V, die reichen nicht, um das Relais zu schalten ... ich brauch 
wohl 5 Volt und damit ein Relais, oder?


Ist es denn prinzipiell korrekt, IN1 + GND auf Ground zu schalten und 
dann einfach mit der Spannung an VCC zu gehen? Kommt mir merkwürdig vor.

Vielen Dank schonmal, ich bastel mal weiter und meldem ich wieder.

Grüsse
Freddi

von Stefan E. (sternst)


Lesenswert?

Freddi N. schrieb:
> Das Ding ist imho etwas eigenartig: Wenn ich 5V VCC und GND anschliesse,
> schaltet es durch wenn ich IN1 respektive IN2 auf Ground(!) ziehe.

Und was soll daran jetzt das Problem sein? Dass Steuereingänge low-aktiv 
sind ist doch nichts ungewöhnliches. Du musst das doch nur entsprechend 
in der Software berücksichtigen: Port-Pin auf Low für Ein, und auf High 
für Aus.

von Andreas B. (bitverdreher)


Lesenswert?

Freddi N. schrieb:
> Ist es denn prinzipiell korrekt, IN1 + GND auf Ground zu schalten und
> dann einfach mit der Spannung an VCC zu gehen? Kommt mir merkwürdig vor.

Wie gesagt, das scheint irgendeine Schaltung bereits enthalten zu sein. 
Das was Du gepostest hast, beschreibt nur das eigentliche Relais auf der 
Platine, nicht die komplette Schaltung auf diesem Board.
Das ist aber so gedacht, daß Vcc und GND fest verdrahtet werden. INx 
kommt dann an den Raspberry.

Sieh mal zu, daß Du Dein Multimeter wieder hin bekommst...

Gruß
Andreas

von Freddi N. (freddi80)


Lesenswert?

Stefan Ernst schrieb:
> Und was soll daran jetzt das Problem sein? Dass Steuereingänge low-aktiv
> sind ist doch nichts ungewöhnliches.

Hi,

Ok, war mir neu ... da kommt dieses Halbwissen wieder ins Spiel..
Ich habs gerade mal getestet: 5V an VCC, GND an Ground, IN1 direkt mit 
dem Port verbunden.
Ergebnis: Die Kontroll LEDs auf der Platine leuchtet auf wenn ich den 
GPIO Port auf LOW schalte und geht aus wenn ich auf HIGH schalte (also 
3,3V draufgebe). Das Relais "klickt" aber nicht. Sieht auf den ersten 
Blick so aus, als ob der nicht wirklich auf Ground geht wenn ich den 
GPIO Pin auf LOW schalte. Ich hab gerade mal rumgegoogelt, LOW kann 
irgendwas zwischen 0V und 0,3V sein ...

Andreas B.
> Das ist aber so gedacht, daß Vcc und GND fest verdrahtet werden. INx
> kommt dann an den Raspberry.
> Sieh mal zu, daß Du Dein Multimeter wieder hin bekommst...
:) Das wär ja fast schon zu einfach wenn man einfach so Strom messen 
könnte um den Fehler zu finden! Spass beiseite, du hast natürlich Recht 
...

Das mit dem low-aktiv, d.h. GPIO Port doch direkt an IN1, war auf 
jedenfall schonmal ein super Hinweis ... ich wär sonst ziellos weiter 
Richtung immer komplizierterer Transistorschaltung gelaufen, nun versuch 
ich mal ein ordentliches Ground hinzukriegen. Allen Beteiligten vielen 
Dank!

Viele Grüsse
Freddi

von Andreas B. (bitverdreher)


Lesenswert?

Sei vorsichtig: Das Raspberry hat vermutlich nur 3,3V Ausgänge. Das 
Relais aber 5V!. Miss vorher lieber mal ohne den Raspberry was Sache 
ist:
Eingangspannung an INx und Eingangsstrom.
Vorher laß das Raspberry mal aus dem Spiel.

Gruß
Andreas

von Freddi N. (freddi80)


Lesenswert?

Hi,

Hu, du hattest Recht! An I1 und I2 liegen laut Multimeter 4,3 Volt an. 
Der Port hats überstanden wie es aussieht.

Ich habe gerade mal ausprobiert: Aus dem GPIO Port kommen 3,25V wenn 
HIGH. Wenn ich am I1 Port 250 kOhm anschliesse, hab ich dort auch 3,25V. 
Also miteinander verbunden, Multimeter angeschlossen.

Wenn ich nun die GPIO Port auf LOW schalte, geht die Spannung runter auf 
0 ... das Relais schaltet aber nicht.

Also hab ich nochmal mit GND rumgespielt: Verbinde ich I1 direkt mit 
GND, schaltet es. Verbinde ich es hinter dem 250kOhm mit GND, gehts 
nicht ...

Hast du noch nen Tipp für mich?

Grüsse
Freddi

von Michael H. (michael_h45)


Lesenswert?

Freddi N. schrieb:
> Hast du noch nen Tipp für mich?
Also, jetzt mal nochmal ganz deutlich:
Was für Relais hast du vor dir? Haben die eine Schaltung mit dran?
Eine EXAKTE Typenbezeichnung MUSS sein, sonst ist hier alles Gerate.
Jeder hier kann Relais per GPIO schalten - aber nicht mit deinen 
gestammelten Infos.

Freddi N. schrieb:
> Eigentlich wollte ich mich an diesem
> Beispiel orienteieren:
> http://www.franksteinberg.de/IMG/ERELPLAN.GIF
"Orientieren" ist eine schlechte Idee. Der Plan funktioniert - aber nur 
mit den da angegebenen Werten und Typen.

von Freddi N. (freddi80)


Lesenswert?

Hi

> Also, jetzt mal nochmal ganz deutlich:
> Was für Relais hast du vor dir? Haben die eine Schaltung mit dran?
Ja, haben sie. Siehe Foto ganz oben.

> Eine EXAKTE Typenbezeichnung MUSS sein, sonst ist hier alles Gerate.
> Jeder hier kann Relais per GPIO schalten - aber nicht mit deinen
> gestammelten Infos.
Siehe Foto: Aufschrift ist SRD-05VDC-SL-C.

> "Orientieren" ist eine schlechte Idee. Der Plan funktioniert - aber nur
> mit den da angegebenen Werten und Typen.
Tja, so macht man das als Anfänger: Man sucht nach ähnlichen Problemen, 
die vielleicht irgendwo schonmal diskutiert worden, und wenn man dann 
immer noch nicht weiter kommt fragt man :-/

von Michael H. (michael_h45)


Lesenswert?

Freddi N. schrieb:
>> Also, jetzt mal nochmal ganz deutlich:
>> Was für Relais hast du vor dir? Haben die eine Schaltung mit dran?
> Ja, haben sie. Siehe Foto ganz oben.
Sehr gut. Woher stammt die Platine? Da muss auch eine Beschreibung 
dabeisein, wie man die schaltet.

von Murkser (Gast)


Lesenswert?

Nochmal 'ne kurze Frage.

Hast Du GND von Deiner Relais-Platine mit GND des Raspberry Pi 
verbunden? Also VCC der Relais-Platine an 5V. GND an - der 5V 
Versorgung. Und beide GNDs verbunden (5V Versorgung und Raspberry PI). 
Dann den GPIO an IN1 bzw. IN2.

Murkser

von Michael H. (michael_h45)


Lesenswert?

Freddi N. schrieb:
> schaltet es durch wenn ich IN1 respektive IN2 auf Ground(!) ziehe.

Freddi N. schrieb:
> An I1 und I2 liegen laut Multimeter 4,3 Volt an.

Lässt auf high-side Emitterschaltung schließen, wie sie scheinbar oft 
bei solchen Relais-Modulen vorkommt.
http://www.ebay.com/itm/Two-Channel-5V-Relay-Module-Expansion-Board-For-Arduino-ARM-PIC-AVR-MCU-DSP-/150906090717?pt=LH_DefaultDomain_0&hash=item2322b434dd
Sowas kriegst du mit 3V3 ohne Zusatzschaltung gar nicht geschaltet.

Aber mit einem BC337 und einem Widerstand geht das schon. Aber lass erst 
mal sehen, was du wirklich vor dir liegen hast.

von Freddi N. (freddi80)


Lesenswert?

Hi,

> Sehr gut. Woher stammt die Platine? Da muss auch eine Beschreibung
> dabeisein, wie man die schaltet.

Ein Qualitätsprodukt aus China :-/ Keine Beschreibung, nur ne Info dass 
VCC 5V ist und die Daten oben auf dem Relais.

> Hast Du GND von Deiner Relais-Platine mit GND des Raspberry Pi
> verbunden? Also VCC der Relais-Platine an 5V. GND an - der 5V
> Versorgung. Und beide GNDs verbunden (5V Versorgung und Raspberry PI).
> Dann den GPIO an IN1 bzw. IN2.

Ich habe Vcc der Relais Platine mit 5V vom Rasperry Pi verbunden. GND 
der Relaisplatine mit GND vom Pi. Den 3,3V liefernden GPIO Port an einen 
IN Port der Relaisplatine geht nicht so ohne weiteres: An IN liegen 4 
Volt an. Die hab ich versucht mit 250 kOhm auf 3,25V zu drücken und dann 
mit GPIO verbunden, aber beim Switch auf LOW geht nur die 
Relais-Kontrolllampe an, es schaltet aber nicht.

Gute Nachrichten, ich habe gerade eine Lösung gefunden:
Ich habe den IN mit dem Collector meines NPN Transistors (BC337-16) 
verbunden, Emitter auf Masse. Wenn der GPIO jetzt auf HIGH geht, 
schaltet der Transistor den IN1 auf Masse, und das Relais schaltet. Den 
Widerstand zwischen GPIO und NPN-Basis ist 100kOhm.

              .--------------------.
           Pi |GND  5V  GPIO 3,3V  |
              |o    o    o         |
              ')----)----)---------'
               |    |    |
               |    |    |
               |    |   .-.
               |    |   | |
 .------.      |    |   | | R = 100kOhm
 | GND o)------|    |   '-'
 |      |      |    |    |
 | Vcc o)------)----'    |
 |      |      |         |
 | IN1 o)------)---------)---|
 |      |      |         | |/
 | IN2 o|      |         '-|    NPN
 '------'      |           |>
               '-------------'                     `
  Relais
  Platine

Das funktioniert, hat da jemand Bedenken? Schmort mir hier demnächst 
etwas durch?

Die 100 kOhm sind eigentlich doppelt so hoch wie nötig, meine ich. Ich 
hab folgendes gerechnet:
20 mA (Durchhaltstrom Relais) = 193 (gemessene Verstärkung Transistor) * 
5V / R
So komme ich auf R = 49 kOhm. Sicherheitshalber aber erstmal mit nem 100 
kOhm angefangen und siehe da, es funktioniert.

Grüsse
Freddi

von Michael H. (michael_h45)


Lesenswert?

Freddi N. schrieb:
> Das funktioniert, hat da jemand Bedenken?
Keine. Genau so gehört sichs.

> Schmort mir hier demnächst
> etwas durch?
Die 100k halte ich für etwas übertrieben. So schmalbrüstig sind die GPIO 
dann auch wieder nicht.
47k oder eher 10k hätte ich aus dem Bauch raus genommen.

von SCL SDA (Gast)


Lesenswert?

>Ein Qualitätsprodukt aus China :-/ Keine Beschreibung, nur ne Info dass
>VCC 5V ist und die Daten oben auf dem Relais.
Daas reicht völlig aus. Die Platine ist an den wichtigen Stellen ja auch 
beschriftet. Den Rest macht der Ohmpiepser.



>Den Widerstand zwischen GPIO und NPN-Basis ist 100kOhm.
Cooles deutsch.
Und: Bitte das nächste mal die Platine nicht wieder mit einem 
Taschenrechner fotografieren.  Man kann die Leiterbahnen gerade noch 
erahnen und man sieht verschwommen die Bezeichnungen auf allen 
Widerständen: 102. Das bedeutet: 10 * 10^2 Ohm = 1kOhm.

Deine Schaltskizze kann so nicht stimmen. Die Transistoren sind nicht 
als Kollektor-Basis-Emitter von oben nach unten oder von rechts nach 
links bedrahtet wie man assozieren mag. Beispielsweise ist der 
universellste aller universellen Universaltransistoren in SMD Bauform, 
der BC817, folgendermaßen angeschlossen (Draufsicht):
Oben in der Mitte: Kollector
Links unten: Basis
Rechts unten: Emitter

Wahrscheinlich ist einfach nur die Versorgungsspannung etwas knappi; 
häufig sind das nur 4.9V und über den Spannungsabfall der dünnen Drähte 
zur Platine im bestromten Zustand des Relais plus Spannungsabfall über 
die C-E Strecke des Transistors liegen dann nur noch um die 4,5V am 
Relais an.

von Michael H. (michael_h45)


Lesenswert?

den beitrag über mir kannst du komplett vergessen.
geht mit jeder zeile zu 100% am thema vorbei - da wurde nichts 
verstanden.

von Freddi N. (freddi80)


Angehängte Dateien:

Lesenswert?

Soo, ich hab das ganze jetzt mal für das 2. Relais mit einem 2. 
Transistor erweitert und auf eine Platine gelötet. Der links ausgeführte 
schwarze ist GND vom Pi, Gelb ist 5V vom Pi und Rot und Schwarz am 
kleinen Stecker sind 2 GPIOs.

Das ganze wird übrigens benutzt, um ein Magnetventil zu schalten (stark 
induktive Last, ich weiss...), das die Luftzufuhr einer 
Wasser-Blubberblasen-Säule steuert (d.h. es blubbert wenn das Relais 
schaltet). Ich arbeite in der Touristik, und ich visualisiere damit 
Reisebuchungen an meinem Arbeitsrechner, neben dem die Säule steht :)
Bisher hab ich das Ventil über eine USB-Relaiskarte von meinem 
Arbeitsrechner aus geschaltet, d.h. es blubberte nur wenn mein Rechner 
lief ... mit einem Raspberry Pi mit WLAN, versteckt im Sockel der Säule, 
ist das ganze natürlich unabhängig.

Vielen Dank nochmal allen, die mir geholfen haben!

Viele Grüsse
Freddi

von Falk B. (falk)


Lesenswert?

@  Freddi N. (freddi80)

>      IMG_20111107_204408.jpg
>      1,4 MB, 8 Downloads

Hmmmm.

>Das ganze wird übrigens benutzt, um ein Magnetventil zu schalten (stark
>induktive Last, ich weiss...), das die Luftzufuhr einer

Relais mit Logik ansteuern.

von Thomas 2000 (Gast)


Lesenswert?

Hallo Ihr Spezis,

ich habe ein Megaproblem! Mein Rasberry hat mittels Optokopplern und 
nachfolgenden Relais einen Gleichstrommotor anzusteuern. Nachdem dieses 
lange Zeit funktioniert hat, habe ich die Lastrelais durch bessere 
ersetzt. Jetzt mein Problem: Immer wenn ich den Motor ansteuere bleibt 
mein bewährtes Programm stehen und ich muss den Rasberry neu starten. 
Obwohl ich die Spulen der Relais bereits mit Löschdioden versehen habe, 
passiert es doch immer wieder.

Hat einer eine Erklärung für mich??

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.