Forum: Analoge Elektronik und Schaltungstechnik Transistor triggert µC Eingang, Basiswiderstand berechnen


von Martin (Gast)


Lesenswert?

Hallo,

ich möchte mit einem Transistor einen Input Capture Eingang eines 
Atmega88 triggern. Dazu soll der interne Pullup aktiviert sein und der 
Transistor GND durchschalten bei Ankunft des Triggersignals und so ein 
Interrupt auf fallende Flanke generieren.
Als Transistor habe ich einen BC547A zur Hand.

Nur ist die Frage, wieviel Strom fließt denn nun am Collector? Ist das 
U_min am µC (~4,5V) geteilt durch den Pullup Widerstand des AVRs 
(30-60kOhm)?

Gruß
Martin

: Verschoben durch Admin
von Düsendieb (Gast)


Lesenswert?

Ja, es schadet aber nicht, wenn der Transistor in die Sättigung 
gesteuert wird.
(durch einen kleineren Basiswiderstand als berrechnet)

von ergsg247 (Gast)


Lesenswert?

In Deinem Fall wäre die Kombination aus U_max und R_min
die Interessanteste ( = höchster zu schaltender Strom).

Sind das z.B. 5V mit +-2% und einem PullUp-Widerstand von
30kOhm, kommt da

I_max = (5V * 1,02) / 30000 Ohm = 0,17mA

heraus.

Diesen Strom musst Du also mit dem NPN-Transistor im
Schalterbetrieb sauber durchsteuern können.

Leider schwankt der hfe des Transistors stark durch Produktions-
streuungen, dann gibt es noch die Stromverstärkungsklassen
und die Temperatur geht da auch noch stark mit ein.

Fazit ist also, dass Du - wenn Du einen fehlerfreien
Betrieb auch in rauheren Umgebungen sicherstellen möchtest -,
wie Düsendieb schon sagte, zur Sicherheit mit einem höheren
Basisstrom den Transistor definitiv immer im Schalterbetrieb
betreibst.

Der BC547A ist ja schon der Typ mit der kleinsten garantierten
Stromverstärkung. Laut Datenblatt liegt hfe_min bei 110 bei TA=25°C 
(usw.).
Ob das bei allen Herstellern der Fall ist, keine Ahnung.

Würde bedeuten, dass Du mindestens 0,17mA / 110 = 1,5µA Basisstrom
benötigen würdest, um im Schalterbetrieb zu sein.

Das macht aber so niemand. Die Stromverstärkung ist bei tieferen
Temperaturen kleiner als 110.

Beispiel: Nimm einen 10k-Basiswiderstand, wenn Du ihn mit einer
5V-PushPull-Stufe ansteuerst. Dann fließt ungefähr ein Basisstrom
von (5V-0,6V) / 10000 Ohm = 0,44mA, der dann sogar höher als
Dein Kollektorstrom ist (und dann gar keine Stromverstärkung
mehr benötigt :-)).

Ich würde auch drüber nachdenken, nicht die internen PullUp-Widerstände
zu aktivieren, sondern externe zu nutzen (mit kleinerem 
Widerstandswert).

von Martin (Gast)


Lesenswert?

Danke für die ausführliche Erklärung

von Wilhelm F. (Gast)


Lesenswert?

Transistoren arbeiten bei Strömen weit unter ihrem Nennstrom 
gelegentlich langsam. Auch leidet sehr der Verstärkungsfaktor, siehe 
Gumble-Poon-Modell.

Es könnte also wirklich auch hilfreich sein, einen externen Pullup mit 
bspw. 1k oder 4,7k zu installieren, wenn die Sache sehr zeitkritisch 
ist.

Ich würde die Schaltung also wenigstens schon so auslegen, daß der 
Kollektorstrom bei Einschaltung wenigstens 1mA oder mehr hat.

Sonst: Kleintransistor suchen, der noch kleiner als der BC547 ist.

SPICE berücksichtigt auch das Gumble-Poon-Modell. Da sollte es 
simulierbar sein.

von ergsg247 (Gast)


Lesenswert?

Wir nutzen hier pauschal 10k bei 5V-Logik und 4k7 bei 3,3V-Logik als
PullUp- oder PullDown-Widerstand (ggf. auch Serienwiderstand).

Da wir immer versuchen, den Strom in einen GPIO oder aus einem GPIO
auf maximal 1mA zu begrenzen, passt das dann recht gut und man hat
eine gewisse Resistenz gegenüber Schmutznebenwiderständen.

von Martin (Gast)


Lesenswert?

Hallo,

ja, die Anwendung ist schon relativ zeitkritisch, da ich eine Frequenz 
damit messen möchte.
Könnte ich nicht einfach den Basisstrom auf 1mA ziehen, z.B. mit einen 
4,3k an der Basis:
(5-0,6)/0,001A = 4400Ohm --> 4,3k ?

von Karl H. (kbuchegg)


Lesenswert?

Martin schrieb:
> Hallo,
>
> ja, die Anwendung ist schon relativ zeitkritisch, da ich eine Frequenz
> damit messen möchte.

langsam.
Über welche Frequenzen reden wir?

Schnarchlangsam bewegt sich immer noch im Mykro-Sekunden Bereich.


> Könnte ich nicht einfach den Basisstrom auf 1mA ziehen,

Den Basisstrom 'ziehst' du überhaupt nicht. Den liefert die Schaltung, 
die vor dem Transistor hängt.

Irgendwie fehlt dir da was:

In die Basis des Transistors rinnt ein Strom hinein. Dieser Strom 
verändert die C-E Strecke des Transistors, so dass dort ein maximaler 
Strom fliessen kann. Kann - nicht muss.

Das ganze ist also wie ein Wasserhahn. Drehst du den Hahn in eine 
bestimmte Stellung auf, dann kann da eine bestimmte Wassermenge durch. 
Ob das Wasserwerk diese Wassermenge auch liefern kann, ist eine andere 
Frage. Aber wenn sie es kann ... der Wasserhahn kann sie bewältigen. Das 
ist deine C-E Strecke.
Und jetzt ist es so, dass du diesen Wasserhahn nicht mit der Hand 
betätigst, sondern mit einem Wasserstrahl. Je stärker der auf den Hahn 
auftrifft, desto weiter macht der Hahn auf. D.h. der Gartenschlauch, mit 
dem du den Hahn anspritzt, muss selbst eine gewisse Wassermenge liefern 
können, damit der Wasserhahn weit genug aufgeht, damit da 3000 
Kubikmeter Wasser in der Sekunde durchkönnen - wenn das Wasserwerk 
liefern kann.
Das Wasser aus dem Gartenschlauch, das ist der Basisstrom. Das kommt aus 
dem Schlauch und es gibt nichts was der Hahn an dieser Menge ändern 
könnte. Man kann nur im Hahn die Federn ein wenig schwächer einstellen, 
so dass auch bei einem schwächeren Wassserstrahl der Hahn schon weit 
genug aufmacht. Aber wenn der Strahl von Haus aus schon zu schwach ist, 
dann hilft auch das nichts mehr.


Also: Du stellst mit dem Widerstand zwar den Basisstrom ein, aber 
liefern muss ihn die Schaltung davor.

von Wilhelm F. (Gast)


Lesenswert?

Martin schrieb:

> Könnte ich nicht einfach den Basisstrom auf 1mA ziehen, z.B. mit einen
> 4,3k an der Basis:
> (5-0,6)/0,001A = 4400Ohm --> 4,3k ?

Manchmal hilft auch noch die Basisschaltung, wenn die Eingangsschaltung 
es zu läßt.

Reichlich Übersättigung des Transistors ist nicht immer gut.

Hast du mal ein Datenblatt über den BC547 mit Kurvenscharen von vielen 
Strömen über viele Dekaden? Ich leider nicht. Die haben manchmal nur ein 
paar unzureichende Eckwerte, die für die meisten Anwendungen genügen.

LTspice macht es sicherlich. Gratis ohne Registrierung downloadbar. 
Allerdings muß man sich damit beschäftigen. In einer halben Stunde hat 
man aber was, das kann schon gehen.

von Martin (Gast)


Lesenswert?

Also ich habe jetzt einen 4,7k als Pullup am ICP Eingang hängen.
Das Signal kommt von einem Induktivgeber. Die Spannung des Gebers habe 
ich mit einer Z-Diode 4,7V halbwegs stabilisiert.
Diese 4,7V gehen nun an die Basis des Transistors, dessen Emitter mit 
GND verbunden ist.
Als Basiswiderstand habe ich 4,7k und testweise auch mal 10k und 1k 
ausprobiert. Allerdings schaltet er mir nur niedrige Frequenzen im 
Bereich von ca. 20Hz durch. Darüber kommt nichts mehr am ICP an.

Kann mir jemand helfen?

Ich habe testweise mal einen Optokoppler (CNY17-3) mit gleicher 
Beschaltung (Z-Diode zur Spannungstabilisierung), allerdings 
entsprechend nur 150 Ohm Vorwiderstand vor die LED des Kopplers gehangen 
und da kommen die Signale sauber an.
Aber den Koppler würde ich gerne sparen, da die Massen sowieso verbunden 
sind...

von Bastler (Gast)


Lesenswert?

Martin schrieb:
> Aber den Koppler würde ich gerne sparen, da die Massen sowieso verbunden
> sind...
Das wäre jetzt die Sternstunde eines Oszilloskops. Guck dir doch mal die 
Signale an ;-)

von Wilhelm F. (Gast)


Lesenswert?

Martin schrieb:

> Aber den Koppler würde ich gerne sparen, da die Massen sowieso verbunden
> sind...

Bitte mal den gesamten Plan hoch laden. Das bringt sonst hier nichts.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

So anbei der Schaltplan, wie es funktioniert (mit Optokoppler).
Den OK hätte ich aber gerne durch einen einfachen Transistor ersetzt, da 
die Massen sowieso nicht getrennt sind.
Der Signalverlauf des Induktivgebers sieht qualitativ so aus, wie im 
Anhang. Mit steigender Drehzahl steigt auch der Spannungsausschlag. Die 
Z-Diode (1/4W) mit 220 Ohm Vorwiderstand verkraftet dies aber problemlos 
ohne warm zu werden.

von Wilhelm F. (Gast)


Lesenswert?

Tja, so ein CNY17 ist in dieser Schaltung langsam.

Um ihn zu beschleunigen, hatte ich hier selbst mal einen Thread, vor 
einem Jahr. Das endete in einer Zusatzbeschaltung mit Transistoren in 
Emitterkopplung und schneller Basisschaltung. Man bekommt wenigstens 
eine Schaltflanke optimiert und beschleunigt, bei beiden wird es 
komplizierter. Weil man den Arbeitspunkt nahe an den Anfangsbereich 
einer Flanke setzen muß.

Die Forensuche mit "CNY17" sollte auch zu meinem alten Thread führen. Es 
sollte aber hier dann keine weitere Rolle mehr spielen. Das ist nett, 
wenn man sonst nichts mehr zu tun hat.

Mit Transistoren ohne den Optokoppler wird die Sache jedenfalls 
schneller.

Den Transistor sollte man anfangs mal mit einem Kollektorwiderstand ab 
1k und Basisvorwiderstand 10k versuchen, bzw. IC/IB von 10. Und sich 
dann an bessere Werte heran tasten. Am besten wäre es, Datenblätter mit 
Kurven zu finden.

Aber heute alles nicht mehr. Es ist Zeit für den MAD, 
Matratzen-Abhör-Dienst. Das Sandmännchen ist auch schon um. ;-)

von Martin (Gast)


Lesenswert?

Also ich habe jetzt 1k als Pullup versucht und einmal 10k als 
Basiswiderstand und einmal 4,7k als Basiswiderstand. Leider kommt die 
Frequenz nicht richtig an bzw. wird nicht sauber getriggert :(

von Michael_ (Gast)


Lesenswert?

Mal nochmal die Transistorschaltung auf.
Ich glaube, du hast einen Denkfehler! Du hast eine L-Auswertung und 
bietest H-Impulse an.
Nimm noch einen Transi und baue einen Schmitt-Trigger.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Anbei mein Versuch mit dem Transistor.

von Michael_ (Gast)


Lesenswert?

Ich versuche es trotz später Stunde es hinzukriegen.
Optokoppler
H-Pegel, LED leuchtet, Transi schaltet durch, LOW am Prozessor

Transistor
H-Pegel, Basis des Transis ist auch wegen der Restströme schon auf H, 
---> keine Änderung,
Wenn L, dann wird der Transi wegen des Basisvorwiderstandes nicht auf L 
gezogen, es reicht nicht den auf L zu ziehen
am Prozessor liegt mehr oder weniger L an, also kann nur eine Flanke von 
L auf H kommen

Fazit:
Der Optokoppler negiert nicht
Der Transi negiert

Mindestens muß der Transi einen R als Pullup oder Pulldown erhalten.
Beides ist Murks. Du brauchst einen Schmitt-Trigger.

von Wilhelm F. (Gast)


Lesenswert?

Michael_ schrieb:

> Du brauchst einen Schmitt-Trigger.

Irgendwas in dieser Richtung. Schmitt-Trigger oder Komparator.



Ich hab mir noch mal das Signal des Induktivgebers angeschaut. Der 
liefert doch an einer Stelle auch noch ein sehr schwaches Signal, 
wahrscheinlich bei langsamer Bewegung. Dann wird das weder mit 
Optokoppler noch mit Transistorinverter was.

Was stellen die 2 Graphen überhaupt genau dar? Die Sinuswelle ist ja 
noch einleuchtend. Aber der Rest nicht. Da ist keine Beschriftung dran.

Und, wie sind die technischen Daten des Induktivgebers? 
Ausgangsimpedanz? Ausgangssignalstärke? Vielleicht bricht das Signal ja 
am Eingang schon zusammen.

von Martin (Gast)


Lesenswert?

Wilhelm Ferkes schrieb:
> Was stellen die 2 Graphen überhaupt genau dar? Die Sinuswelle ist ja
> noch einleuchtend. Aber der Rest nicht. Da ist keine Beschriftung dran.

Also wie gesagt, mit dem OK funktioniert das Ganze. Ob das Signal jetzt 
genau so aussieht mit diesen "Zwischensprüngen" kann ich nicht sagen. 
Leider habe ich kein Oszi um mir das genau anzusehen. Ich vermute aber 
eher nein, sonst würde der OK noch ein weiteres Signal durchschalten und 
das würde ich feststellen.

Ich hätte eine kleine Bitte:
Könnte mir jemand, der sich mit LTSpice auskennt, die Schaltung mit dem 
OK "simulieren" und zwar, wie lange es dauert, bis der Low Pegel am 
Prozessor bzw. ICP ankommt und dort erkannt wird?
Also Optokoppler wäre interessant ein CNY17-3 oder eine einfache 
SMD-Variante wie LTV357T.
Wenn ich die genaue Zeit wüsste, könnte man das nämlich in der Software 
als Offset kompensieren.

von Michael_ (Gast)


Lesenswert?

Martin schrieb:
> Könnte mir jemand, der sich mit LTSpice auskennt, die Schaltung mit dem
> OK "simulieren" und zwar, wie lange es dauert, bis der Low Pegel am
> Prozessor bzw. ICP ankommt und dort erkannt wird?
Du hast kein Zeitproblem! Du hast ein Pegelproblem!
Den Transi mußt du an der Basis beschalten. Mit deinen R1 u. R2 kriegst 
du den nie gesperrt.
Setze einen HC(T)14 davor und dein Problem ist erledigt. Das ist ein 
Schmitt-Trigger IC.

von Martin (Gast)


Lesenswert?

Hallo Michael und andere,

ich habe leider noch nie mit Schmitt-Triggern gearbeitet. Ich habe mir 
jetzt mal den Artikel hier im Wiki durchgelesen.
Dennoch weiß ich noch nicht genau, wie ich den Schmitt-Trigger 
anschließe bzw. wo genau ich diesen hinsetze. Vor oder nach der Z-Diode?
Falls jemand in meine obige Schaltung einen Schmitt Trigger integrieren 
könnte bzw. einen geänderten Schaltplan zeichnen könnte (gerne auch per 
Hand und als Foto) wäre ich ihm sehr verbunden.

Mir genügt es, nur auf eine Signalwelle (positive Welle) zu triggern. 
Die andere schneide ich mit einer Diode sowieso weg.

Danke.

von Was (Gast)


Lesenswert?

sol das denn für ein "Induktivgeber" sein ? Evt. ein induktiver 
Näherungsschalter? Die machen die Frequenz meist nicht und würden keinen 
OK benötigen. Spannungsteiler würde genügen falls der Geber z.B. mit 24 
V betreben wird.

von Wilhelm F. (Gast)


Lesenswert?

Martin schrieb:

> Mir genügt es, nur auf eine Signalwelle (positive Welle) zu triggern.
> Die andere schneide ich mit einer Diode sowieso weg.

Das macht ein Schmitt-Trigger oder Komparator auch.

In Wikipedia findet man auch die Unterschiede zwischen Schmitt-Trigger 
und Komparator, wenn man dort die beiden Namen mal eingibt.

Was hier zur Beurteilung und Einschätzung mal benötigt würde, wären 
konkrete Daten des Induktivgebers. Und, wie dieser eingesetzt wird, ich 
meine, welche Signale davon verarbeitet werden.

von Werner (Gast)


Lesenswert?

Wilhelm Ferkes schrieb:
> Was hier zur Beurteilung und Einschätzung mal benötigt würde, wären
> konkrete Daten des Induktivgebers.

Und dazu gleich noch ein Oszillogramm (mit Angabe zur Skalierung) von 
den Signalen

von Wilhelm F. (Gast)


Lesenswert?

Werner schrieb:

> Wilhelm Ferkes schrieb:
>> Was hier zur Beurteilung und Einschätzung mal benötigt würde, wären
>> konkrete Daten des Induktivgebers.
>
> Und dazu gleich noch ein Oszillogramm (mit Angabe zur Skalierung) von
> den Signalen

Auf jeden Fall gibt es Lösungen. Das Stichwort heißt 
"Signalkonditionierung". Dafür muß man aber alles wissen, was eine 
Schaltung bzw. ein Eingangssignal macht.

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.