Forum: Analoge Elektronik und Schaltungstechnik Basiswiederstand


von cont f. (ctrlfr)


Lesenswert?

Hallo

ich will mit dem raspberry pi ein relais schalten. Kann jemand meine 
überlegungen verifizieren? ich mach sowas das erste mal.

schaltplan -> 
http://www.mikrocontroller.net/wikifiles/archive/4/4f/20080127104814%21Relais_npn.png

relais -> 
http://www.produktinfo.conrad.com/datenblaetter/500000-524999/505188-da-01-en-RELAIS_WASCHDICHT_1XUM__5_V.pdf

transistor -> 
http://www.produktinfo.conrad.com/datenblaetter/125000-149999/140536-da-01-ml-TRANSISTOR_BC337_40_TO_92_de_en.pdf

relais an 5v von raspberry usb versorgung, transistor an 3.3v von gpio 
pin.

das relais hat 56ohm bei 5v somit braucht der 0.09A.

nach http://www.mikrocontroller.net/articles/Basiswiderstand soll ich Ic 
durch Hfe teilen.
Hfe ist 250 nach datenblatt (habe die -40iger ausführung).
Ic durch Hfe wäre dann 0.09A / 250 = 0.0036 = Ib.

dann soll ich den basiswiederstand berechnen nach (Ue-0.7)/Ib = 
(3.3v-0.7v)/0.0036 = 722Ohm.

frage 1: habe ich die richtigen werte aus den datenblättern genommen und 
die richtigen formeln verwendet? Sollte mein Basiswiederstand 680ohm 
sein? (abgerundet weil man das scheinbar tun soll).

frage 2: muss ich vom raspberry pin noch zusätzlich ein 10kOhm an gnd 
schalten da der pin nach reset auf input steht? um undefinierte zustände 
zu vermeiden? ich will ja nicht, dass das relais ohne befehl schaltet.

frage 3: wo hänge ich eine kontroll led an um zu sehen, dass das relais 
aktiv ist?
und muss ich den basiswiederstand ändern wenn eine led dran ist?

vielen dank und grüsse
cont fra

: Verschoben durch Admin
von Duden (Gast)


Lesenswert?

Widerstand*

von MaWin (Gast)


Lesenswert?

> frage 1: habe ich die richtigen werte aus den datenblättern genommen und
> die richtigen formeln verwendet? Sollte mein Basiswiederstand 680ohm
> sein? (abgerundet weil man das scheinbar tun soll).

Nein, du hast hFE für Analogbetrieb verwendet und dich dann noch um eine 
Zehnerpotenz beim Rechnen verhauen, dir hätte schon auffallen müssen daß 
dein Widerstand bei 3.3V grösser ist als der bei 5V obwohl es umgekehrt 
sein müsste.
Weil dein Transistor schalten soll braucht er 1/10 des zu schaltenden 
Stromes als Basisstrom, wie im Diagramm UCEsat erklärt.

0.09, also 9mA Basisstrom, bei 3.3V also 220 Ohm.

> frage 2: muss ich vom raspberry pin noch zusätzlich ein 10kOhm an gnd
> schalten da der pin nach reset auf input steht?

Ja.

> frage 3: wo hänge ich eine kontroll led an um zu sehen, dass das relais
> aktiv ist?
> und muss ich den basiswiederstand ändern wenn eine led dran ist?

Du kannst die LED parallel zum Relais schalten, mit einem passenden 
Vorwiderstand für sagen wir 10mA. Die dann 100mA erfordern auch bloss 
dne 220 Ohm Basiswiderstand.

Achte auf die Freilaufiode am Relais.

von cont f. (ctrlfr)


Lesenswert?

MaWin schrieb:
>> frage 1: habe ich die richtigen werte aus den datenblättern genommen und
>> die richtigen formeln verwendet? Sollte mein Basiswiederstand 680ohm
>> sein? (abgerundet weil man das scheinbar tun soll).
>
> Nein, du hast hFE für Analogbetrieb verwendet

Was genau ist Analogbetrieb? Bei Analog fällt mir Audio ein, also der 
Input sehr schnell stufenlos wechselt... und der Transistor fungiert 
dann als ein Verstärker? Habe nichts unter Analog bei 
http://www.mikrocontroller.net/articles/Transistor gefunden.

> Weil dein Transistor schalten soll braucht er 1/10 des zu schaltenden
> Stromes als Basisstrom, wie im Diagramm UCEsat erklärt.

Wo ist das Diagramm UCEsat? In meinem Datenblatt sehe ich nur ein 
Temperatur-Diagram vom Transistor.

> 0.09, also 9mA Basisstrom, bei 3.3V also 220 Ohm.

Ich habe noch einige 270Ohm Widerstände, würde das gehen? ist das noch 
in der Toleranz?


>> frage 3: wo hänge ich eine kontroll led an um zu sehen, dass das relais
>> aktiv ist?
>> und muss ich den basiswiederstand ändern wenn eine led dran ist?
>
> Du kannst die LED parallel zum Relais schalten, mit einem passenden
> Vorwiderstand für sagen wir 10mA. Die dann 100mA erfordern auch bloss
> dne 220 Ohm Basiswiderstand.

Habe ich das richtig verstanden: LED + Vorwiderstand ändern die 
Schaltung so gerinfügig, dass mit und ohne LED der gleiche 
Basiswiderstand vom Transistor verwendet werden kann?

> Achte auf die Freilaufiode am Relais.

Dafür ist eine 1N4148 geplant.


Und merci für die Antworten.

von MaWin (Gast)


Lesenswert?

> Was genau ist Analogbetrieb?
> Bei Analog fällt mir Audio ein, also der
> Input sehr schnell stufenlos wechselt... und der Transistor fungiert
> dann als ein Verstärker?

Genau das.

> Wo ist das Diagramm UCEsat? In meinem Datenblatt sehe ich nur ein
> Temperatur-Diagram vom Transistor.

Es gibt viele schlechte Datenblätter, von Firmen die selbst nicht genau 
wissen welchen Ramsch sie verkaufen, auch Fairchild und Rohm und Bourns 
sind solche Kandidaten

Nimm was ordentliches:

http://lipid.biocomp.unibo.it/~raffo/Solar/343-16444-0-BC337.pdf

Figure 5 VBE(sat) @ IC/IB = 10

> Ich habe noch einige 270Ohm Widerstände, würde das gehen? ist das noch
> in der Toleranz?

Ja, geht. Bis 1/20 muss man sich keine Sorgen machen, wenn es nicht 
gerade um Transistoren für mehre Ampere geht.

von cont f. (ctrlfr)


Angehängte Dateien:

Lesenswert?

Habe die Schaltung aufgebaut (siehe Anhang).
(Grün/Weiss -> Grüner Draht ist GPIO-Pin von Raspberry)

Problem: das Relais schaltet an wenn der Raspberry Bootet/Herunterfährt. 
Der GPIO pin somit auf Input steht.

Wenn GPIO auf Output steht, funktioniert es wie gewünscht.

Der Blaue 10k Ohm Widerstand zieht den Input auf LOW. Warum aber 
schaltet das Relais dann trotzdem? Dieser Widerstand soll doch genau das 
verhindern???


Ziel ist, dass das Relais nur schaltet wenn:
1
((Pin auf Output) AND (Pin auf High))

Was habe ich falsch gemacht?

von Karl H. (kbuchegg)


Lesenswert?

cont fra schrieb:

> Problem: das Relais schaltet an wenn der Raspberry Bootet/Herunterfährt.
> Der GPIO pin somit auf Input steht.
>
> Wenn GPIO auf Output steht, funktioniert es wie gewünscht.
>
> Der Blaue 10k Ohm Widerstand zieht den Input auf LOW. Warum aber
> schaltet das Relais dann trotzdem?


Einfach Antwort: Weil irgendwie in die Basis des Transistors Strom 
reinrinnt, d.h. du hast eine Basisspannung.

> Dieser Widerstand soll doch genau das
> verhindern???

Soll er.

Ich würde mal das hier
> Der GPIO pin somit auf Input steht.
in Frage stellen.

von cont f. (ctrlfr)


Lesenswert?

> Ich würde mal das hier
>> Der GPIO pin somit auf Input steht.
> in Frage stellen.

Das habe ich getestet, sobald der (GPIO 0 / SDA) Pin auf Input steht 
läuft das Relais obwohl LOW angezeigt wird.

Ich habe das ganze nun an einem andern Pin (GPIO 14 / TXD) versucht. Bei 
diesem läuft alles wie gewünscht.

Warum geht das beim SDA pin nicht??

Info: Bei verwendung des Raspberry ohne SD-Karte (Ohne Betriebssystem) 
geht das Relais auch an wenn mittels SDA-Pin angeschlossen wird. Beim 
TXD Pin passiert das nicht.

von cont f. (ctrlfr)


Lesenswert?

Habe alle GPIO-Pins getestet.

Wenn ich bei meinem Raspberry alle GPIO's auf Input setze, dann ist 
GPIO-0 (SDA) und GPIO-1 (SCL) auf HIGH alle anderen auf LOW obwohl bei 
keinem PIN etwas angeschlossen ist.

Und bei genau diesen PIN's habe ich wenn ich Sie mit meiner Schaltung 
verbinde fehlerhaftes Verhalten solange diese PIN's im Input-Mode sind.

Mich würde interessieren warum das so ist.
Für das aktuelle Projekt spielt es allerdings keine Rolle, da die 
anderen GPIO-Pins ja richtig funktionieren und von der Anzahl reichen 
diese.

von MaWin (Gast)


Lesenswert?

> Das habe ich getestet, sobald der (GPIO 0 / SDA) Pin auf Input steht
> läuft das Relais

Angenommen die 10k liegen auch wirklich auf Masse:

Internen pull up aus Versehen eingeschaltet ?

> obwohl LOW angezeigt wird.

Die LED leuchtet nicht, oder was soll der Satz bedeuten ?

von Beobachter #42 (Gast)


Lesenswert?


von cont f. (ctrlfr)


Lesenswert?

MaWin schrieb:
>> Das habe ich getestet, sobald der (GPIO 0 / SDA) Pin auf Input steht
>> läuft das Relais
>
> Angenommen die 10k liegen auch wirklich auf Masse:
>

Ja, die liegen auf GND.

> Internen pull up aus Versehen eingeschaltet ?
>

Den Internen Pull-Up kenn ich nicht und weiss nicht wie man den Manuell 
anschaltet.

>> obwohl LOW angezeigt wird.
>
> Die LED leuchtet nicht, oder was soll der Satz bedeuten ?

1
gpio readall
2
3
+----------+-Rev2-+------+--------+------+-------+
4
| wiringPi | GPIO | Phys | Name   | Mode | Value |
5
+----------+------+------+--------+------+-------+
6
|      0   |  17  |  11  | GPIO 0 | IN   | Low   |
7
|      1   |  18  |  12  | GPIO 1 | IN   | Low   |
8
|      2   |  27  |  13  | GPIO 2 | IN   | Low   |
9
|      3   |  22  |  15  | GPIO 3 | IN   | Low   |
10
|      4   |  23  |  16  | GPIO 4 | IN   | Low   |
11
|      5   |  24  |  18  | GPIO 5 | IN   | Low   |
12
|      6   |  25  |  22  | GPIO 6 | IN   | Low   |
13
|      7   |   4  |   7  | GPIO 7 | IN   | Low   |
14
|      8   |   2  |   3  | SDA    | IN   | High  |
15
|      9   |   3  |   5  | SCL    | IN   | High  |
16
|     10   |   8  |  24  | CE0    | IN   | Low   |
17
|     11   |   7  |  26  | CE1    | IN   | Low   |
18
|     12   |  10  |  19  | MOSI   | IN   | Low   |
19
|     13   |   9  |  21  | MISO   | IN   | Low   |
20
|     14   |  11  |  23  | SCLK   | IN   | Low   |
21
|     15   |  14  |   8  | TxD    | IN   | Low   |
22
|     16   |  15  |  10  | RxD    | IN   | Low   |
23
|     17   |  28  |   3  | GPIO 8 | IN   | Low   |
24
|     18   |  29  |   4  | GPIO 9 | IN   | Low   |
25
|     19   |  30  |   5  | GPIO10 | IN   | Low   |
26
|     20   |  31  |   6  | GPIO11 | IN   | Low   |
27
+----------+------+------+--------+------+-------+

Da ist SDA und SCL auf High, alle anderen auf Low.
Bei keinem Pin ist etwas angeschlossen.

von Mr. X (Gast)


Lesenswert?

cont fra schrieb:
> Da ist SDA und SCL auf High, alle anderen auf Low.

Das ist auch ausgesprochen sinnvoll, wenn die Pins als serielle I2C 
Schnittstelle benutzt werden, weil der Bus sonst blockiert wäre.

von cont f. (ctrlfr)


Lesenswert?

Mr. X schrieb:
> cont fra schrieb:
>> Da ist SDA und SCL auf High, alle anderen auf Low.
>
> Das ist auch ausgesprochen sinnvoll, wenn die Pins als serielle I2C
> Schnittstelle benutzt werden, weil der Bus sonst blockiert wäre.

Dann wird wohl diese interne Verbindung auf High dafür sorgen, dass mein 
Relais schaltet wenn ich die Schaltung bei diesen Pins verwende.
Dann sollte alles klar sein.

Vielen Dank für die Hilfestellungen

Grüsse
cont fra

von MaWin (Gast)


Lesenswert?

cont fra schrieb:
> Warum geht das beim SDA pin nicht??

Dir fällt jetzt kein Unterschied in der Tabelle zwischen GPIO0 und 
GPIO14 auf? Das high ist der eingeschaltete pull up. Scgau halt mal ins 
Dateblatt von dem Prozessor den du verwendest.

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.