Transitor erzeugt LED glimmen/flackern bei AUS

Hallo,

ich hab hier ein Verhalten eines Transistors wo ich noch nicht dahinter gestiegen bin woher es kommt. Ich möchte mit einem BC 337-16 Transistor 4 LEDs (parallel geschalten) mit PWM ansteuern. Während das einschalten kein Problem ist, kommt es aber beim ausschalten (PWM auf 0) zu minimalen flackern, oder sie leuchten minimal immer noch weiter. Und das ich nicht mal permanent, sondern mal ist ganz aus, und sporadisch fangen die LEDs wieder, obwohl aus sein sollten, wieder leicht zu glimmen an.

Angeschlossen ist der Transistor wie folgt:

5V (Netzteil) --- 330Ohm --- LED --- Transistor (C) --- Transistor (E) ---- Masse (Netzteil)

Vom Arduino (LilyPad 5V, ATmega328): Pin 5 --- 1K --- Transistor (B)

Daten von der LED: 3V, 30mA

Durch den Widerstand (330Ohm) hab ich den Strom auf 10mA begrenzt. Mit den 4 LEDs würde auf max 40mA kommen. Daher wäre der Transistor doch nicht überlastet? Oder hab ich was anderes übersehen bzw mich irgendwo verrechnet?

Hängt das lilypad am gleichen Netzteil, oder sind zumindest die Massen verbunden?
Arduino GND = Netzteil - ?

Ist Netzteil " - " und "Masse" dasselbe ?

Damit die LED gleich hell leuchten, sollte eigentlich jede einen 330 Ohm Vorwiderstand haben.
Aber das ist hier nicht dein Problem: das sollte sich, egal ob 1 oder 4 LED, gleich verhalten.

Vielleicht ist die Ursache ja hier zu suchen:

The PWM outputs generated on pins 5 and 6 will have higher-than-expected duty cycles. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs. This will be noticed mostly on low duty-cycle settings (e.g 0 - 10) and may result in a value of 0 not fully turning off the output on pins 5 and 6.

Aus: analogWrite() - Arduino Reference

Arduino und LEDs werden vom selben NT gespeist.

Jede LED hat denselben Widerstand. Hab oben nur symbolisch nur für eine LED dargestellt. Die 4 LEDs sind ja paralell verdrahtet.

Edit:
@combie
Oh oh, das muss ich mal näher anschauen.

Jede LED hat denselben Widerstand.

Jede LED braucht einen eigenen.
Nicht alle denselben.
Vielleicht den gleichen, also 4 gleiche.

Jep, so war es natürlich gemeint ^^

Habe den Pin von 5 auf 9 gewechselt. Ich gehe jetzt mal davon aus dass es das war. Die Arduino Rerefence gibt da wahrlich schon die entsprechende Info auf mein nicht gewolltes Verhalten.

Danke für den Hinweis! Bin da guter Dinge dass der Spuk nun ein Ende hat :slight_smile:

Wobei das schon etwas seltsam ist. Wenn man analogWrite(0) macht wird eigentlich der Pin vom Timer getrennt und digitalWrite(LOW) gemacht.

That's PWM :wink:

Kann ich mich an ein anderes Phänomen erinnern, wo ich eine einzelne PWM-LED an Pin 3 klemmen hatte, dazu ein Aufbau mit weiteren Teilen wie einen Piezo Summer. Da hatte sich die LED bei ertönen des Summers immer ausgeschalten. Ewig gegrübelt und im ellenlangen Code nach einem Fehler gesucht bis ich mal in der Reference nachgeschaut und gesehen habe, dass "tone()" die PWM Pin 3 und 11 negativ beeinflusst. Umso schlimmer dass ich in diesem aktuellen Fall nicht an die Reference gedacht habe :smiley:

Naja, wenn in den nächsten 1-2 Tage die LEDs hier nicht mehr flackern/glimmen, wirds an den Pins (5,6) gelegen haben.

Das ist vollkommen logisch. PWM wird auf Hardware Timern gemacht. Auf dem UNO steuert ein Timer jeweils 2 Pins (auf dem Mega 3). Wenn also die Timer für etwas anderes belegt werden (Ausnahme: millis() + delay() auf Timer0), dann geht auf den entsprechenden Pins kein PWM mehr.

Das ist bei allen Libraries so die Timer verwenden. Servo, IrRemote, AltSoftSerial, usw.