PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Transistor am AVR



cumi
03.08.2006, 20:40
Hallo Zusammen

Ich möchte gerne einen Transistor verwenden um auf Masse zu schalten. Der Strom, welcher ich schalten möchte ist kleiner als 500mA. Der Transistor soll durch einen IO-Port einen ATmega8 gesteuert werden.
Nun wenn ich eine ganz normale Emiterschaltung mit einen NPN nehme, wie muss ich dann den Vorwiderstand dimensionieren?
Wenn der AVR ein High-Pegel liefert, dann hängt der Ausgang nicht direkt am VCC des AVRs sonder noch mit einem Widerstand dazwischen, oder?

Wie würde diese Schaltung aussehen, wenn ich mit dem Transistor gegen +5V schalten möchte. Nehme ich dann einfach die Kollektorschaltung?

Vielen Dank für eure Hilfe!
Grüsse cumi

kalledom
03.08.2006, 21:49
Hallo cumi,
wenn Du 500mA schalten möchtest, dann muß der Basisstrom mindestens 500mA / hFE * 2 sein. Der hFE ist der Verstärkungsfaktor des Transistors und steht im Datenblatt. Dort entnimmst Du den niedrigsten, also ungünstigsten Wert. Die Multiplikation mit 2 ist dazu da, den Transistor sicher aus dem Regelbereich raus in den Schaltbetrieb zu bringen.
Beispiel mit hFE = 100: 500mA / 100 * 2 = 10mA. Der Basisstrom sollte also 10mA betragen; das schafft ein AVR-Ausgang locker.
Jetzt zu dem Basis-Vorwiderstand. Die Versorgung ist 5V, die Basis-Spannung ist 0,7V. Es gilt somit 5,0V - 0,7V = 4,3V zu vernichten. Nach dem Ohmschen Gesetz ist R = U / I = 4,3V / 0,010A = 430 Ohm. Der nächst niedrigere Wert wäre 390 Ohm; Fertig.

Wenn Du den Plus schalten möchtest, nimmst Du einen PNP-Transistor. Emitter an +5V, Collektor zur Last. Basis-Vorwiderstand mit der gleichen Rechnerei wie beim NPN-Transistor.

cumi
03.08.2006, 21:58
Viele dank kalledom!! Wenn man etwas in der Elektronik nicht weiss, bist du immer da, super!!

Ok, das dann ich alles nachvollziehen. Aber jetzt doch noch eine Frage zum AVR. Also irgendwie werde ich da nicht so ganz schlau. Also wenn ich Einen Low-Pegel gebe Schaltet der AVR den IO-Pin, welcher als Ausgang konfiguriert ist (DDRx high) auf Masse. Man darf dann einen gewissen Strom (so viel ich weiss etwa 20ma) darüber fliessen lassen. Ist der Strom zu gross, geht der AVR kaputt.
Nun wie ist das beim High-Pegel. Ich dachte, es wird dann einfach der Pull-Up noch zugeschalten und man hat so 5V am Port. Weil der Pull-Up aber relativ hochomig ist, fliegen diese sofort zusammen, wenn man eine Last dran hängt.
Erzähl ich jetzt einen totalen Blödsinn, oder stimmt das so?

Ich habe leider das Material nicht gleich in der Nähe um es auszuprobieren, werde dies jedoch morgen tun.

Vielen Dank für deine Hilfe!

Grüsse cumi

kalledom
03.08.2006, 22:14
Du erzählst da keinen Blödsinn.
Mir wurde in dem Thread https://www.roboternetz.de/phpBB2/viewtopic.php?t=21928&postdays=0&postorder=asc&start=44 gesagt, daß der AVR gegenüber dem PIC Gegentakt-Ausgänge haben soll. Ich habe das nicht kontrolliert. Wenn das so ist, erübrigt sich Deine Frage, dann wird auch +5V zum Ausgang geschaltet. Wenn das nicht so ist, kannst Du den Basis-Vorwiderstand als PullUp-Widerstand einsetzen. Wenn der Ausgang high ist, also nix rausschaltet, fließt der Basisstrom vom +5V über den PullUp zur Basis. Bei Low wird die Basis auf GND gezogen; es fließt dann ein Strom von +5V in den Ausgang zum GND.
Bei einem PullUp bitte nicht vergessen, daß beim Einschalten bis zur Initialisierung und während Reset die I/O-Pins auf Eingang gesetzt und damit hochohmig sind; dann sind PullUps wirksam und schalten den Transistor durch. Das kann durch einen vorgeschalteten Transistor als Inverter verhindert werden.

cumi
03.08.2006, 22:19
vielen dank für deine antwort!
Ich probier das morgen einmal aus.

Das mit dem Reset ist in der Schaltung, an der ich gleich arbeite nicht so schlimm....

cumi
03.08.2006, 23:53
und wie funktioniert das jetzt, wenn ich mit einen npn +5V am Ausgang liefern möchte?
Also wenn ich da die Kollektorschaltung nehme, brauche ich ja einen belastbaren high-pegel, welcher mir ja der AVR nicht direkt liefert.
Gibt es da eine Lösung, ohne einen zweiten Transistor zu benützen?

kalledom
04.08.2006, 00:04
Mit einem NPN als Emitterfolger: Collektor an +5V, Basis direkt an den Ausgang, Last zwischen Emitter und GND. Da rate ich aber von ab; an der Basis liegen ca. 4,7V vom Ausgang an, am Emitter 0,7V weniger, also 4,0V. Wenn der Ausgang keinen Plus durchschaltet, ist ein PullUp erforderlich, da fällt durch den Basisstrom auch noch Spannung ab, so daß am Emitter immer weniger raus kommt. Bei 500mA wird der Transistor heiß.
Alternative: ein PNP mit Emitter an +5V, Last zwischen Collektor und GND, Basis über Widerstand zum Ausgang. Damit fällt auch das 'Reset-Problem' flach, weil der Transistor bei low am Ausgang schaltet. Ein PullUp ist auch nicht erforderlich.

blan
04.08.2006, 01:24
danke kalledom, du hast mir auch sehr geholfen!

mfg blan

cumi
04.08.2006, 14:04
also eigentlich stört mich das schon, dass ich mit dem AVR aktiv verhindere, dass der Tranistor durchgeschalten ist. Das sollte wirklich umgekehrt sein.

Um auf +5V zu schalten gibt es ja eine einfache Lösung mit dem PNP.
Ich möchte keinen zweiten Transistor benützen (aus Platzgründen). Gibt es trotzdem eine Lösung mit einem PNP oder einem NPN Transistor?

kalledom
04.08.2006, 15:06
Für den Schaltbetrieb in Emitterschaltung gibt es mit einem Transistor als Invertierer nur zwei Möglichkeiten:
NPN wird high-aktiv angesteuert und schaltet den GND
PNP wird low-aktiv angesteuert und schaltet den Plus
Für andere Varianten sind 2 Transistoren erforderlich (siehe http://www.domnick-elektronik.de/elekts1.htm )