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
Ja, es schadet aber nicht, wenn der Transistor in die Sättigung gesteuert wird. (durch einen kleineren Basiswiderstand als berrechnet)
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).
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.
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.
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 ?
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.
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.
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...
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 ;-)
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.
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.
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. ;-)
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 :(
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.
Anbei mein Versuch mit dem Transistor.
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.
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.
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.
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.
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.
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.