LED schalten mit BC547B

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Zitat

    Dein 6,8kΩ ist einfach zu groß. Ersetze ihn mal durch einen 2,7kΩ.

    Da werd ich auch nochmal experimentieren.

    Zitat

    Zu meiner Frage vorhin, trifft genau so zu wie auch im ausgeschalteten Zustand des Pi. Die GPIOs haben einen undefinierten Zustand, bei meinem Zero ergibt sich im undefinierten Zustand eine Spannung am Pin zu GND mit 2,4V.

    Ja genau, das denk ich auch. Es kam mir nämlich so vor wie ein Taster, der in ungedrücktem Zustand nicht entprellt wird und "in der Luft hängt".

    Zitat

    Bist du im Besitz eines Mulitmeters und kannst die Spannung des GPIO und GND messen?

    Ja hab ich. Werde später mal die Messung durchführen und Rückmeldung geben.

  • Benutze mal zusätzlich zum Basiswiderstand vom GPIO zur Basis einen Widerstand von bummelig 10k von der Basis zu GND. Der BC547B hat eine recht hohe Verstärkung und damit verpasst du dem Transistor an der Basis einen "Dämpfer", indem du die Ströme gegen Masse ziehst. Problem bei digtalen GPIOs ist, dass low nicht unbedingt 0V sein müssen. Da kann durchaus eine kleine Spannung anliegen, die bei der hohen Verstärkung zu glimmen führt, da der Transistor analog linear arbeitet.

  • Zitat

    Benutze mal zusätzlich zum Basiswiderstand vom GPIO zur Basis einen Widerstand von bummelig 10k von der Basis zu GND.

    Ich habe schon einen Widerstand von 1,5 kOhm von Base zu GND, der dazu führt, dass die LED zwar ganz aus geht, aber im HIGH-Pegel auch nur schwach leuchtet. Ein 10k Widerstand verschlimmert das Ganze ja dann umso mehr, oder ?

  • Also, Problem gelöst => auch ohne Widerstand von Base zu GND. :bravo2:

    Wie Hofei sagte, gibt es diesen undefinierten Status. Das Multimeter brachte die Antwort :

    GPIO.Output(GPIONummer, LOW) => 0,0 V

    GPIO.Output(GPIONummer, HIGH) => 3,3 V

    Wird jedoch am Ende des Skripts ein GPIO.cleanup() durchgeführt, landen die GPIOs in diesem undefinierten Zustand (laut Multimeter ca. 1,04 V).

    Lässt man dieses GPIO.cleanup() weg, dann behalten die GPIOs ihren Zustand (je nachdem, ob LOW oder HIGH der letzte Befehl war), solange der Raspi hochgefahren ist.

    Nach dem Herunterfahren landen die GPIOs wieder in diesem "undefinierten" Zustand, sowie kurz nach dem Hochfahren.

    Vielen Dank für eure zahlreichen Beiträge ! :thumbup:

    Rookie_Pi

    Einmal editiert, zuletzt von Rookie_Pi (20. März 2019 um 18:10)

  • Wie Hofei sagte, gibt es diesen undefinierten Status. Das Multimeter brachte die Antwort :

    GPIO.Output(GPIONummer, LOW) => 0,0 V

    GPIO.Output(GPIONummer, HIGH) => 3,3 V

    Wird jedoch am Ende des Skripts ein GPIO.cleanup() durchgeführt, landen die GPIOs in diesem undefinierten Zustand (laut Multimeter ca. 1,04 V).

    Rookie_Pi

    Das dachte ich mir schon. Bin aber nicht der Python Held.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!