Stefan Oler schrieb:> Wo kann ich die Sättigung beim Datenblatt> (https://www.sparkfun.com/datasheets/Components/BC546.pdf) erkennen? Bei> der ersten Grafik auf S.2?
Ja, gewissermaßen.
Für einen bestimmten Kollektorstrom (in deiner Originalschaltung wären
das ungefähr 3 V / 10 kΩ = 0,3 mA => Y-Achse des Diagramms) erfährst du
dort, bei welchem Basisstrom sich typischerweise welche Spannung
zwischen Kollektor und Emitter (X-Achse) einstellt.
Wenn du nun siehst, dass die kleinste Skalenteilung der Y-Achse 10 mA
sind, dann siehst du schon, dass du dich in der äußersten linken unteren
Ecke des Diagramm bewegst und es nahezu egal ist, wie groß man den
Basisstrom wählt.
Da das Ganze eine so genannte Kollektorschaltung ist, stellt sich der
Basisstrom am Ende sowieso „von allein“ auf den nötigen Wert ein, fast
unabhängig von diesem 470-Ω-Widerstand: Wenn der Schalter geschlossen
ist, fließt ein Basisstrom (Größe ist erstmal egal). Dadurch steigt das
Potenzial am Emitter so weit an, bis es ca. 0,5 … 0,7 V unter dem der
Basis liegt. Am Ende sind an der Basis fast die kompletten 3,3 V der
Betriebsspannung und am Emitter ca. 2,7 V. Durch den 10-kΩ-Widerstand
fließen also dann etwa 0,27 mA.
Da der 470-Ω-Widerstand praktisch nichts zur Funktion der Schaltung
beiträgt, könnte man ihn genauso gut weglassen. Das ist eher eine Art
„Angstwiderstand“: der Autor hatte Angst, die 3,3 V Betriebsspannung
direkt an die Basis des Transistors zu legen (obwohl das technisch
machbar wäre).
> Ist es richtig, dass der 10000-Ohm-Wiederstand eher willkürlich gewählt> ist und es bei Stromsparbetrieb sinnvoll ist einen höheren (20000 Ohm)> zu nehmen?
Richtig. Wenn du aber damit Strom sparen willst, solltest du wenigstens
eine Größenordnung höher gehen, also 100 kΩ. Auch ein 1-MΩ-Widerstand
wird noch funktionieren. Die wesentliche Funktion dieses Widerstands ist
es, nach dem Öffnen des Kontakts die Leitungs- und Eingangskapazität des
Controllers einigermaßen schnell zu entladen. Wenn du jetzt mal (hoch
gegriffen) eine Kapazität von 100 pF annimmst, dann würde ein Widerstand
von 1 MΩ diese Kapazität innerhalb von weniger als 1 ms entladen haben.
Das genügt sicher allemal für diese Anwendung. :)
Einziger Nachteil, wenn man damit zu hochohmig wird, ist dass die
Schaltung danach empfindlicher auf Einstreuungen von außen wird. Es ist
dann also möglich, dass sie beispielsweise bei offenem Schalter im 50-
oder 100-Hz-Rhythmus „flattert“, weil da irgendwie ein Signal von der
Netzspannung einkoppelt. Das kann man aber gut und gern auch in Software
ausfiltern: wenn innerhalb einer Periode von 20 ms (50 Hz Netzfrequenz)
der Eingang nicht die ganze Zeit auf "high" lag, muss man von einem
offenen Schalter ausgehen.
Stefan Oler schrieb:> verstehe ich nicht, wie man auf einen 470 Ohm-Wiederstand kommt.
Ganz einfach: Der weiss noch weniger als du.
Die Schaltung laut Steckbrett ist:
1
+---------+--- +3.3V
2
| |
3
Kontakt |
4
| |
5
+--470R--|< BC547
6
|E
7
+--- GPIO
8
|
9
10k
10
|
11
Masse
Es handelt sich also um einen Emitterfolger (Kollektorschaltung) in der
die ganze Stromverstärkung des Transistors wirkt. So bald der Strom
durch den Transistor 100uA überschreitet, wird der Spannungabfall an den
10k so gross, daß der uC ein logisches high erkennt statt dem üblichen
logischen low Ruhepegel. Damit diese 100uA fliessen, braucht ein BC547
ca. 0.5uA Basisstrom.
Die sind selbst bei offenem Kontakt leicht erreicht, der Kontakt bzw.
das Zuleitungskabel muss bloss 30MOhm haben, und es gibt nichts, was das
verhindert, in dem es beispielsweise Strom nach Masse ableitet.
Die 470 Ohm begrenzen die 0.5uA gar nicht, man kann den Widerstand vor
der Basis des Transistors auch einfach weglassen.
Die Schaltung ist also grober Unfug, möglichst nicht nachbauen.
Wie baut man es richtig ?
Solche Magnetkontakte aka Reedschalter brauchen nur einen geringen
Mindeststrom. Trotzdem sollte der Strom hoch genug sein, um grösser zu
sein als Störungen sein können. Nehmen wir 1mA. 1mA bei 3.3V sind
3k3Ohm, wenn du die 470 Ohm schon hast, nimm die.
Es wird geschaltet:
1
+--- +3.3V
2
|
3
3k3 (oder 470Ohm wenn man hat und 3k3 nicht hat))
4
verdrillt |
5
+------------------+--- GPIO
6
Kontakt
7
+---------------------- Masse
Man braucht keinen Transistor. Diese simple Schaltung hält den GPIO Pin
auf low so lange der Fesnterkontakt geschlossen ist, und legt ihn auf
high so bald der Fensterkontakt geöffnet wird.
Man könnte über Massnahmen zum Schutz vor Störungen, und vor allem
zerstörenden Störungen nachdenken. Geht die Leitung nur vom rPi zum
Fensterkontakt, sollte man sie verdrillen (Klingelleitung,
Telefonleitung verdrillt, ein Adernpaar einer CAT Netzwerkleitung). Da
sie mit einem Ende an Masse des rPi angeschlossen ist, ist sie damit
recht störsicher..
Schlecht wird es, wenn man mehrere Kontakte in Reihe in einer
Ringleitung legt
1
+------- +3.3V
2
Kontakt |
3
| | 3k3
4
| | |
5
+-------+ +--------+--10k-- GPIO
6
|
7
Kontakt +-------- Masse
8
| |
9
+---+ +---------+ |
10
| | | |
11
Kontakt Kontakt
Die Störungen, die man sich da einfängt, können den rPi zerstören, daher
sind die 10k dort vor dem GPIO Pin.
Also besser immer Hin- und Rückleitung als verdrilltes Adernpaar führen.
Danach könnte man die "Alarmanlage" verbessern, in dem man Manipulation
an der Leitung erkennt, durch Wechselstrom. Und möglichst was
betriebssichererers nehmen als einen rPi. Strom sparen tut man mit einem
rPi sowieso nicht.
Stefan Oler schrieb:> zunächst einmal: Das ist meine erster Versuch in> Elektrotechnik.
Na dann: Herzlich willkommen und viel Erfolg!
> Wo kann ich die Sättigung beim Datenblatt> (https://www.sparkfun.com/datasheets/Components/BC546.pdf)> erkennen? Bei der ersten Grafik auf S.2?
Hmmmjein... eigentlich auf Seite 2, Figure 4.
Bildunterschrift sagt: "Base-Emitter Saturation
Voltage, Collector-Emitter Saturation Voltage",
also "Basis-Emitter-Sättigungsspannung" und
"Kollektor-Emitter-Sättigungsspannung".
Links oben steht im Diagramm die Messbedingung, nämlich
Ic = 10*Ib, also heftige Übersteuerung. Ist ja normal
für Schalterbetrieb.
Die obere Kurve gibt die Basisspannung (Ansteuerstromkreis)
an, die untere die Kollektorspannung (Laststromkreis).
Man erkennt, dass z.B. bei 10mA Kollektorstrom (und 10mA/10
= 1mA Basisstrom) über der Kollektor-Emitter-Strecke nur
50mV (!) abfallen.
Die Beschriftung "Ic[A]" ist ein Druckfehler; das müssen
natürlich Milliampere (mA) sei. Ein BC547 hält keine 100A
aus.
Zur konkreten Schaltung wurde schon alles Wichtige gesagt;
ich erlaube mir ein paar allgemeine Hinweise.
Obwohl Bipolartransistoren viel mehr können, wirst Du sie
zu Anfang wohl überwiegend als Schalter einsetzen. Dafür
gibt es drei einfache Faustregeln:
1. Die Last gehört (fast immer) an den Kollektor und hat
einen vergleichsweise geringen Widerstand.
2. Vor die Basis gehört (fast immer) ein Vorwiderstand,
der einen deutlich größeren Wert als die Last hat.
3. Der Emitter gehört (fast immer) auf Masse (GND, 0V).
Eine Schaltung, die einer oder mehrerer dieser Regeln
widerspricht, muss nicht falsch sein, sollte Dir aber
verdächtig vorkommen :)
Die mit Sicherheit aufkommenden Empfehlungen "Nimm doch
einfach einen FET" sind zwar nicht gänzlich falsch,
können aber für Lastströme bis ca. 300mA ohne Schaden
ignoriert werden.