Forum: Mikrocontroller und Digitale Elektronik PNP anstatt NPN?


von Laie (Gast)


Lesenswert?

Hallo,

ich habe an einem Raspberry Pi ein blaues LCD 16x2 Display, welche mit 
3V3 läuft. Zur Beleuchtung ist eine einzelne weiße Led verbaut. Auf der 
Rückseite der Platine befindet sich bereits ein verbauter SMD 
Vorwiderstand mit 200 Ohm.

Nun habe ich derzeit das ganze so gelöst, dass ich einen NPN Transitor 
an der Kathode der LED angeschlossen haben. An der Basis des NPN 
Transistors ist ein 1k Basis Widerstand verbaut. Am Emitter liegt Ground 
an und der Kollektor geht zum Anschluss der Kathode.

Das ganze funktioniert soweit ganz gut, hat aber einen Nebeneffekt. Der 
Raspberry Pi hat soweit ich das sehe an den GPIOs einen Pegel von 3,3V, 
wenn der GPIO nicht initialisiert wurde.

Das hat zur folge, dass das Display beleuchtet wird, auch wenn ich das 
nicht möchte (Programm läuft nicht).

Was kann man da nun am besten gegen machen? Ist es okay, wenn ich einen 
100k Widerstand vom Emitter an die Basis lege? Oder sollte ich da ggf. 
einen geringeren Wert nehmen.

Es handelt sich um einen Standard NPN Transistor
BC337

von Pandora (Gast)


Lesenswert?

Legt der RPi die Pins fest auf 3V3 oder kommen die von einem Pullup?
Bei festen 3V3 hilft deine Idee nicht, einfachste Lösung wäre dann einen 
Inverter vorzuschalten (simpler Transistor-Inverter).

von lrep (Gast)


Lesenswert?

Laie schrieb:
> Der
> Raspberry Pi hat soweit ich das sehe an den GPIOs einen Pegel von 3,3V,
> wenn der GPIO nicht initialisiert wurde.

Das wundert mich. Bei den meisten Prozessoren sind die I/O-Pins nach 
einem Power-On-Reset als Eingänge definiert, stellen also weder 
Stromquellen noch Stromsenken dar.
Eventuell aktive Pull-Up Widerstände eines Eingangs werden wohl nicht 
genug Strom liefern um den BC337 durchzusteuern.

Vermutlich gibt es also doch eine Initialisierungsroutine, die daraus 
Ausgänge macht und eine 1 hineinschreibt.

Miß doch mal die Spannung an dem mit dem 1k-Widerstand belasteten 
I/O-Pin.
Wenn da nahezu 3V sind, wird der Ausgang aktiv sein, und die Belastung 
mit 100k wird nichts nützen.
Wenn aber nur der interne Pull-Up-Widerstand eines Eingangs für die 
positive Spannung sorgt, sollte die Spannung des mit 1k und Ube des 
Transistors belasteten Pins eher bei 1V oder weniger liegen.
Dann könnte ein zusätzlicher Widerstand z.B. 1k zwischen B und E helfen.

Welches Betriebsystem bootest du?

von lrep (Gast)


Lesenswert?

Pandora schrieb:
> Bei festen 3V3 hilft deine Idee nicht, einfachste Lösung wäre dann einen
> Inverter vorzuschalten (simpler Transistor-Inverter).

Oder ein Codeschnipsel in die Boot-Sequenz einzufügen, das den Pin als 
Ausgang definiert und eine 0 hineinschreibt.

Das sollte ohne jegliche Änderung der Schaltung immer funktionieren.

von Noch einer (Gast)


Lesenswert?

>an den GPIOs einen Pegel von 3,3V,
>wenn der GPIO nicht initialisiert wurde.

Der Raspi initialisiert die UART Pins beim hochfahren. Hast du einen von 
denen erwischt?

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.