Forum: Analoge Elektronik und Schaltungstechnik 230V LED Dimmen --> flackert


von Flole L. (Firma: Flole) (flole998)


Angehängte Dateien:

Lesenswert?

Ich habe die Schaltung aus dem Anhang aufgebaut, an einem Mega1284 mit 
20Mhz angeschlossen und verwende unter anderem die TimerOne Bibliothek 
für die Ansteuerung des Triacs (die relevanten Teile des Codes habe ich 
unten einmal rauskopiert). Die Nulldurchgangserkennung wird mit einem AC 
Optokoppler gemacht, laut Oszilloskop auch alles super. Nun gibt es aber 
ein kleines Problem: Die Lampen flackern (leichte aber störende 
Helligkeitsänderungen) , je dunkler desto Schlimmer. Zuerst dachte ich 
an die mindestlast, aber eine Glühlampe zusätzlich anzuschließen hat 
leider nicht wirklich was gebracht. Mit einem billigen Baumarktdimmer 
tritt das ganze Problem nicht auf, die Netzspannung nach dem Dimmer 
sieht bei beidem ähnlich aus. Die LED Netzteile sind zum dimmen 
freigegeben (und beim Baumarktdimmer funktioniert es ja auch). Ich habe 
bereits Experimente mit RC Gliedern und Drosselspulen durchgeführt, 
alles aber leider ohne Erfolg.

Code:
1
void Dimmer::begin(uint8_t value, bool on) {
2
  // Initialize lamp state and value
3
  set(value, on);
4
5
  // Initialize triac pin
6
  pinMode(triacPin, OUTPUT);
7
  digitalWrite(triacPin, LOW);
8
9
  if (!started) {
10
    Timer1.initialize(freqStep);
11
    Timer1.attachInterrupt(do_dim, freqStep);
12
    started = true;
13
  }
14
}
15
16
void Dimmer::zeroCross() {
17
18
    // Calculate triac time for the current cycle
19
    uint8_t value = getLampValue();
20
    if (value > 0 && lampState) {
21
      triacTimes[dimmerIndex] = pgm_read_byte(&powerToTicks[value - 1]);
22
    }
23
24
    // Increment the ramp counter until it reaches the total number of cycles for the ramp
25
    if (rampCounter < rampCycles) {
26
      rampCounter++;
27
    }
28
}
29
30
// Zero cross interrupt
31
void Dimmer::callZeroCross() {
32
  // Clear the timer and enable nested interrupts so that the timer can be updated while this ISR is executed
33
 // TCNT(DIMMER_TIMER) = 0;
34
  Timer1.restart();
35
  tmrCount = 0;
36
  sei();
37
38
  // Turn off all triacs and disable further triac activation before anything else
39
  for (uint8_t i = 0; i < dimmerCount; i++) {
40
    *triacPinPorts[i] &= ~triacPinMasks[i];
41
    triacTimes[i] = 255;
42
  }
43
44
  // Process each registered dimmer object
45
  for (uint8_t i = 0; i < dimmerCount; i++) {
46
    dimmmers[i]->zeroCross();
47
48
    // If triac time was already reached, activate it
49
    if (tmrCount >= triacTimes[i]) {
50
      *triacPinPorts[i] |= triacPinMasks[i];
51
    }
52
  }
53
}
54
55
// Timer interrupt
56
void do_dim() {
57
  // Increment ticks
58
  if (tmrCount < 254) {
59
    tmrCount++;
60
  }
61
62
  // Process each registered triac and turn it on if needed
63
  for (uint8_t i = 0; i < dimmerCount; i++) {
64
    if (tmrCount == triacTimes[i]) {
65
      *triacPinPorts[i] |= triacPinMasks[i];
66
    }
67
  }
68
}

Was könnte man nun tun um das Flackern loszuwerden? Was würde passieren 
wenn man einen Kondensator an die Sekundärseite der LED Netzteile 
anschließt?

von oszi40 (Gast)


Lesenswert?

Flole L. schrieb:
> Was könnte man nun tun

1.Bist Du sicher, daß Dein Triac in beiden Halbwellen zündet?
2. Statt der MOC-LED mal eine LED angeschlossen ob die auch schon 
häßlich flackert? Dann prüfe die SW.

von K. S. (the_yrr)


Lesenswert?

Flole L. schrieb:
> if (!started) {
>     Timer1.initialize(freqStep);
>     Timer1.attachInterrupt(do_dim, freqStep);
>     started = true;

wie genau hast du den timer initialisiert (Wert?), laut google sollte 
das in µs (ich kann nur avr in C oder asm, keine Arduino libs) angegeben 
werden, also etwa 39µs (*254 max = 10ms = 100Hz = jede Halbwelle ein 
Durchlauf)

edit: hast du den richtigen F_CPU Wert angegeben?

: Bearbeitet durch User
von Flole L. (Firma: Flole) (flole998)


Angehängte Dateien:

Lesenswert?

oszi40 schrieb:
> 1.Bist Du sicher, daß Dein Triac in beiden Halbwellen zündet?
> 2. Statt der MOC-LED mal eine LED angeschlossen ob die auch schon
> häßlich flackert? Dann prüfe die SW.

Ja ziemlich sicher, siehe Oszi-Bild im Anhang. Gemessen am Ausgang des 
Triacs mit 5ms/div

von Flole L. (Firma: Flole) (flole998)


Lesenswert?

K. S. schrieb:
> Flole L. schrieb:
>> if (!started) {
>>     Timer1.initialize(freqStep);
>>     Timer1.attachInterrupt(do_dim, freqStep);
>>     started = true;
>
> wie genau hast du den timer initialisiert (Wert?), laut google sollte
> das in µs (ich kann nur avr in C oder asm, keine Arduino libs) angegeben
> werden, also etwa 39µs (*254 max = 10ms = 100Hz = jede Halbwelle ein
> Durchlauf)
>
> edit: hast du den richtigen F_CPU Wert angegeben?

freqStep sind 75, also sind das 75µs, maximum sind bei mir 100 für die 
Dimmwerte (da gibts eine extra Dimmtabelle für die ich jetzt nicht 
gezeigt hab, auch damit das nichtlineare Verhalten etwas kompensiert 
werden kann).

F_CPU wird automatisch richtig gesetzt, und der stimmt (hab ich über 
UART kontrolliert).

von Herr Troll (Gast)


Lesenswert?

Flole L. schrieb:
> Die Lampen flackern (leichte aber störende
> Helligkeitsänderungen) , je dunkler desto Schlimmer.

1.Eine gewisse Menge Zündimpuls braucht der Triac auch, wenn er später 
zündet. Ist Dein Oszillogramm in der flackrigen Zeit aufgenommen? Dann 
würde ich mal als Gegenprobe andere dimmbare LEDs testen, um ein 
Elko-Problem auszuschließen. Der böse Unterschied zwischen LED und 
Glühlampe ist ja auch, daß eine LED erst AB einer gewissen Spannung 
leuchtet, wogegen ein Glühfaden noch glimmt.
2.Abschließend mal nachsehen ob die Synchronistion von Nulldurchlauf und 
Zündung stimmt! Viel Dreck im Netz könnnnnTE zu fehlerhafter Auswertung 
führen.

von Flole L. (Firma: Flole) (flole998)


Lesenswert?

Herr Troll schrieb:
> Flole L. schrieb:
>> Die Lampen flackern (leichte aber störende
>> Helligkeitsänderungen) , je dunkler desto Schlimmer.
>
> 1.Eine gewisse Menge Zündimpuls braucht der Triac auch, wenn er später
> zündet. Ist Dein Oszillogramm in der flackrigen Zeit aufgenommen? Dann
> würde ich mal als Gegenprobe andere dimmbare LEDs testen, um ein
> Elko-Problem auszuschließen. Der böse Unterschied zwischen LED und
> Glühlampe ist ja auch, daß eine LED erst AB einer gewissen Spannung
> leuchtet, wogegen ein Glühfaden noch glimmt.
> 2.Abschließend mal nachsehen ob die Synchronistion von Nulldurchlauf und
> Zündung stimmt! Viel Dreck im Netz könnnnnTE zu fehlerhafter Auswertung
> führen.

Das Problem ist bei einer anderen dimmbaren LED auch vorhanden, wenn 
auch schwächer. Insgesamt sind es 5 dimmbare LEDs die dort dran 
angeschlossen sind, alle flackern gleichzeitig. Mit Baumarkt-Dimmer ist 
das alles überhaupt kein Problem, lediglich mit meinem selbstbau-Dimmer. 
Ich habe auch mal das Gate eines Dimmers mit dem es funktioniert 
abgelötet und zur Schaltung geführt (und die Spannungsversorgung 
ebenfalls) um auszuschließen das es an der Schaltung liegt, es müsste 
also irgendein Software-Problem sein was ich auf dem Oszi leider nicht 
erkennen kann. Das Diagramm kommt aus der flackrigen Zeit.

Die Synchronisation scheint zu stimmen, das merkt man wenn man weiter 
hochdimmt das dann nur noch ein sehr kleiner Teil der Halbwelle 
weggeschnitten wird. Ansonsten würde das Oszi-Bild doch auch anders 
aussehen, "wilde" Zündungen müsste man dort ja eigentlich eindeutig 
erkennen können, oder nicht?

von Bernd K. (prof7bit)


Lesenswert?

Flole L. schrieb:
> Die Lampen flackern (leichte aber störende
> Helligkeitsänderungen) , je dunkler desto Schlimmer.

Womöglich reicht die zeitliche Auflösung Deiner Timergeschichte oder der 
Nulldurchgangserkennung nicht und Du bekommst einen Jitter. Der Jitter 
mit seiner festen Größe wirkt sich dann logischerweise um so stärker aus 
je kürzer die Phasenanschnitte sind, deshalb wird es schlimmer wenn Du 
es dunker stellst.

Versuche also einerseits mal den Jitter überhaupt irgendwie auf dem Oszi 
sichtbar zu machen um zu sehen ob das tatsächlich der Fall ist und dann 
zu ergründen wodurch er verursacht wird.

: Bearbeitet durch User
von Flole L. (Firma: Flole) (flole998)


Lesenswert?

Bernd K. schrieb:
> Versuche also einerseits mal den Jitter überhaupt irgendwie auf dem Oszi
> sichtbar zu machen um zu sehen ob das tatsächlich der Fall ist und dann
> zu ergründen wodurch er verursacht wird.

Ich würde das nacher mit einem Logic-Analyzer am Eingang des MOC machen, 
da sehe ich dann die Ein/Aus Zeiten ziemlich genau (der sampelt mit 
80MS/s), da sollte sowas ja auffallen, oder? Der Jitter kann ja nicht 
durch MOC oder Triac verursacht werden (zumindest wüsste ich nicht wie).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Flole L. schrieb:
> es müsste also irgendein Software-Problem sein was ich auf dem Oszi
> leider nicht erkennen kann. Das Diagramm kommt aus der flackrigen Zeit.
Ich tippe mal auf "Jitter": du triffst den Phasenwinkel nicht immmer 
genau und hast dadurch irgendwelche Interferenzen.
Triggere doch mal auf deinen "Gateausgang" und sieht dir mit diesem 
Trigger die Netzspannung an. Wenn du da eine "verschwommene" Kurve 
siehst, dann "wackelt" (= jittert) dein Gateausgang in Bezug zum Netz. 
Und du bekommst natürlich unterschiedlich viel Spannung auf die LED.
Genau um den Nulldurchgang ist die Steigung am steilsten und wenig 
Jitter bringt schon merkbar unterschiedliche Helligkeit.

> Was würde passieren wenn man einen Kondensator an die Sekundärseite der
> LED Netzteile anschließt?
Kommt drauf an, wie die aufgebaut sind...

: Bearbeitet durch Moderator
von Flole L. (Firma: Flole) (flole998)


Lesenswert?

Lothar M. schrieb:
>> Was würde passieren wenn man einen Kondensator an die Sekundärseite der
>> LED Netzteile anschließt?
> Kommt drauf an, wie die aufgebaut sind...

Was könnte im schlimmsten Fall passieren? Vermutlich Zerstörung des 
Leuchtmittels wenn es anfängt zu schwingen?

von oszi40 (Gast)


Lesenswert?

Flole L. schrieb:
> Was könnte im schlimmsten Fall passieren? Vermutlich Zerstörung des
> Leuchtmittels wenn es anfängt zu schwingen?

Wenn Du ein Triac nimmst, wirst Du wohl Wechselspannung schalten. Ein 
kleiner Snubber wäre evtl. ein Versuch. Ein dicker C würde im 
Einschaltmoment viel Strom ziehen. Das wäre weniger gut.

Meine Glaskugel meint aber, daß die Nullpunkterkennung evtl. durch 
Störimpulse verwirrt werden könnte. Zeig uns mal die Schaltung. Mal die 
Nullpunkterkennung mit dem Ausgang verglichen? Vorsicht Oszi ist mit 
Masse verbunden!!!

von Flole L. (Firma: Flole) (flole998)


Angehängte Dateien:

Lesenswert?

oszi40 schrieb:
> Flole L. schrieb:
>> Was könnte im schlimmsten Fall passieren? Vermutlich Zerstörung des
>> Leuchtmittels wenn es anfängt zu schwingen?
>
> Wenn Du ein Triac nimmst, wirst Du wohl Wechselspannung schalten. Ein
> kleiner Snubber wäre evtl. ein Versuch. Ein dicker C würde im
> Einschaltmoment viel Strom ziehen. Das wäre weniger gut.
Da ging es um einen Elko auf der Sekundärseite der Netzteile (also um 
das Flackern dort zu verhindern. RC Glied hatte ich schon getestet: kein 
Erfolg.


> Meine Glaskugel meint aber, daß die Nullpunkterkennung evtl. durch
> Störimpulse verwirrt werden könnte. Zeig uns mal die Schaltung. Mal die
> Nullpunkterkennung mit dem Ausgang verglichen? Vorsicht Oszi ist mit
> Masse verbunden!!!

Ich habe weiter oben ja schonmal ein Bild der "zerhackten" Netzspannung 
gepostet, eine verwirrte Nullpunkterkennung müsste da ja eigentlich 
auffallen. Wenn nicht dann aber spätestens jetzt:

Ich habe nun einen Mitschnitt mit dem Logic Analyzer vorliegen (einmal 
angehangen, kann mit Saleae Logic Software geöffnet werden), interessant 
ist da im Prinzip nur zwei Sachen:
1. Die Nulldurchgänge "prellen" am Anfang und Ende jeweils, die 
Schaltung ist ein ILQ620 mit 510K Vorwiderstand, also ein AC Optokoppler 
der im Nulldurchgang kurz ausschaltet.
2. Die Ausschaltdauer ist immer 0.00832 Sekunden, das ist also sehr 
konstant. Lediglich die Einschaltdauer "zittert" zwischen 0.001705713 
Sekunden und 0.001658863 Sekunden, haben wir da eventuell die Ursache? 
Können diese 46,9 Microsekunden wirklich das Problem sein oder ist das 
nicht so zeitkritisch das 0.47% da einen Unterschied machen?

: Bearbeitet durch User
von Jitt-Sitt (Gast)


Lesenswert?

Sind ca. 50µs nicht eher 3% von ca. 1600µs(ED)?

von oszi40 (Gast)


Lesenswert?

1.Von der Zeit her wären 3% Lichtänderung kaum sichtbar. Das Prellen 
könnte aber manche SW dazu verlocken, Timer-Dummheiten zu machen?

2.Welche Last (in A) hängt eigentlich an Deine 25A-Triacs? Test mal mit 
mehr Last ob sich was ändert.

von Flole L. (Firma: Flole) (flole998)


Lesenswert?

Jitt-Sitt schrieb:
> Sind ca. 50µs nicht eher 3% von ca. 1600µs(ED)?

Ja, und 0.47% der Halbwelle ;)

Die Software ist ja oben, der Timer würde bei jedem erkannten (wir reden 
hier ja wohlgemerkt über 12.5nS beim Prellen, also 20Mhz was auch mein 
Prozessortakt ist) Nulldurchgang den Timer von 0 starten, also 
vermutlich wird der vom Ende des prellens anfangen zu zählen. In LTSpice 
hab ich das ganze gerade mal durchsimuliert um festzustellen was da 
Ursache sein könnte und habe festgestellt das die 510k vielleicht schön 
stromsparend sind, aber elendig lange Anstiegs/Abfallzeiten verursachen, 
das muss ich morgen also mal versuchen etwas zu reduzieren und schauen 
ob das prellen durch die steileren Flanken vielleicht besser wird oder 
gar ganz wegfällt.

> 2.Welche Last (in A) hängt eigentlich an Deine 25A-Triacs? Test mal mit mehr 
Last ob sich was ändert.
Wie oben beschrieben hat eine 60W Glühlampe keine Besserung gebracht, 
auch das testen mit einem Dimmer (also Gate entlötet und über meine 
Schaltung geführt) hat das Phänomen ja nicht verschwinden lassen.

: Bearbeitet durch User
von oszi40 (Gast)


Lesenswert?

Flole L. schrieb:
> VERMUTLICH wird der vom Ende des prellens anfangen zu zählen

Als Gegenprobe könnte man mal ein relativ sauberes Signal aus einen 
Trafo über die Optokoppler einspeisen? Das wäre zwar etwas 
phasenverschoben aber für einen Test ausreichend, um die Ursache des 
Übels langsam zu erkennen.

3.Selbst wenn die Schaltung schööön ist, kann auch noch der Aufbau Mist 
sein wenn irgendetwas einstrahlt.

von Flole L. (Firma: Flole) (flole998)


Lesenswert?

Es geht gut voran: Das Problem mit dem Flackern konnte gelöst werden, 
das war ein Problem mit der Spannungsversorgung, die Restwelligkeit des 
Netzteils war scheinbar zu viel, jetzt ist das geglättet und es läuft 
besser. Nun habe ich leider ein kleines anderes Problem: Sobald ich mehr 
als die halbe Halbwelle wegschalte steuert der Triac manchmal 
unkontrolliert durch, wenn ich eine Glühlampe Parallel schalte ist das 
Problem behoben (also ein Problem mit der Mindestlast), mit einem RC 
Glied (27 Ohm und 0.047uF) bastel ich dort einen schönen Schwingkreis 
sodass das Flackern grundsätzlich bei allen Helligkeiten da ist, das RC 
Glied parallel zum Triac hat gar keinen Effekt. Wie könnte man das nun 
lösen? Anderer Triac? Wenn ja, welcher? Hätte noch BTA16 und BTA08 hier 
rumliegen, wäre das eine Möglichkeit?

von Erich (Gast)


Lesenswert?

Die Sache mit der Mindestlast ist komplex,
es hängt mit dem Typ des verwendeten Leuchtmittels und mit der Art des 
Dimmers zusammen.

Von Markenfirmen gibt es Kompatibilitätslisten dazu,
hier z.B. Philips
http://www.effex.ee/pdf/dimmerMV.pdf

Wie man sieht, sind viele Felder gelb, was bedeutet:
"These dimmers require more than 5 lamps as minimum load, or poor 
dimrange"

Weitere gute Info auf dieser englischen Seite
https://www.lightbulbs-direct.com/article/dimming-guide/
speziell der Abschnitt
https://www.lightbulbs-direct.com/article/dimming-guide/#Leading%20Edge%20vs.%20Trailing%20Edge%20Dimmers:%20What's%20the%20Difference?
sowie
https://www.lightbulbs-direct.com/article/led-dimmer-switch-compatibility/

Wichtige Übersetzung:
  PhasenANschnittdimmer      leading edge dimmer
  PhasenABschnittdimmer      trailing edge dimmer

Siehe auch hier
https://www.elv.de/ratgeber/dimmer-welchen-wofuer-einsetzen.html
Text unter Hinweis (2) lesen
2 LED-Lampen

Gruss

von Flole L. (Firma: Flole) (flole998)


Lesenswert?

Das ist ja alles schön und gut das Firmen da Kompatibilitätslisten 
haben, hilft mir nur mit meinem selbstgebauten Dimmer nicht wirklich 
weiter, oder wie hast du dir gedacht soll ich diese Informationen 
verwenden?

Auch weiß ich nicht wirklich was mir die Erklärung 
Phasenanschitt/Phasenabschnittsdimmer bringen soll, das ist alles 
irgendwie ein bisschen am Thema vorbei. Das Leuchtmittel ist natürlich 
für meine Dimmerart geeignet, ansonsten hätte ich ja einen anderen 
gebaut.

von Erich (Gast)


Lesenswert?

Flole L. schrieb:
> wie hast du dir gedacht

Flole L. schrieb:
> das ist alles
> irgendwie ein bisschen am Thema vorbei.


Sorry,

wenn du mit der Information nichts anfangen kannst,
vergiss' sie einfach oder lese es eben gar nicht.

Es tut mit leid, daß ich dich mit der angebotenen Information 
überfordert habe.


Flole L. schrieb:
> Das Leuchtmittel ist natürlich für meine Dimmerart geeignet,
> ansonsten hätte ich ja einen anderen gebaut.

Dann dürfen jetzt alle Fragen geklärt sein und das Thema ist durch.

Gruss

von Georg M. (g_m)


Lesenswert?

Flole L. schrieb:
> Mit einem billigen Baumarktdimmer tritt das ganze Problem nicht auf.

Öffnen, abgucken.

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.