Flackern von KSQ mit ATtiny84

Gast #3362689
Hallo,

ich habe mir eine Schaltung zum dimmen von meinen Schreibtischlampen 
aufgebaut.

Schaltungsaufbau:
-----------------
Bei den Lampen handelt es sich um diese hier: 
http://www.ikea.com/de/de/catalog/products/60213782/
Standardmäßig haben sie eine KSQ im steckernetzteil integriert, welche 
700mA liefert bei ca 5V.

Meine idee war nun diese zu ersetzen durch eine eigene KSQ mit PWM 
Eingang.
Also habe ich hier im wiki etwas gesucht und bin hierauf gestoßen: 
http://www.mikrocontroller.net/articles/Datei:Power-LED_Stromquelle.png
Diese Schaltung basiert auf diesen Modulen hier: 
http://www.mikrocontroller.net/articles/Konstantstromquelle_fuer_Power_LED#Fertigmodul

Zum ansteuern habe ich einen ATtiny84 gewählt. Programmiert ist das 
ganze mit dem Arduino Framework und läuft auf 8mHz Internal Clock.

Als Stromversorgung dient ein altes PC-Netzteil
-----------------



Nun zum eigentlichen Problem:
In den Leistungsbereichen mit <15% oder >85% Duty-Cycle sieht das ganze 
recht ordentlich aus. Bei ~50% jedoch flackert das ganze echt herb.



Hat einer von euch eine Idee woher das kommt und wie ich das vor allem 
beheben kann?

Viele Grüße,
Marcel
Gast #3362737
Die Frequenz bestimmt das Programm durch Konfiguration der Register des 
Timers. Welche Frequenz angemessen ist, steht in dem von Dir gelinkten 
Artikel (100-300Hz).
Gast #3363292
für alle die es interessiert:

Fuse-Bits
clock auf internal 8mhz
clock prescaler auf 8

Timer Konfiguration:
timer0 clock prescaler auf 8
timer1 clock prescaler auf 1


hier der entsprechende code
1
void setup()  { 
2
  TCCR0B = TCCR0B & 0b11111000 | 0x2;
3
  TCCR1B = TCCR1B & 0b11111000 | 0x1;
4
} 
5

6
void loop()  { 
7
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=1) { 
8
    analogWrite(7, fadeValue);         
9
    analogWrite(6, fadeValue); 
10
    delay(5);                            
11
  } 
12

13
  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=1) { 
14
    analogWrite(7, fadeValue);  
15
    analogWrite(6, fadeValue);     
16
    delay(5);                            
17
  }
18
}
#3363424
@mdorenka (Gast)

>jetzt muss ich nurnoch aus dem UC eine adäquate frequenz zaubern - ohne
>logic analyzer ganz schön müßig :/

Nö, ein wenig Grundrechenarten und die richtige Einstellung für den 
Timer reicht.
Gast #3363449
leider bin ich durch die libraries von arduino nicht ganz 
durchgestiegen, deswegen der explorative ansatz. es funktioniert jetzt 
einwandfrei auf beiden timern.
Gast #3366333
ok nochmal eine blöde frage zur berechnung der prescaler


cputakt / prescaler (also beim attiny 1 8 64 256 oder 1024) / (256 oder 
65536) (beim 8bit timer bzw 16 bit timer) = hz?
Gast #3366649
Ja, so hast Du den Prescaler richtig verstanden.

> leider bin ich durch die libraries von arduino nicht ganz durchgestiegen

Das lese ich hier jede Woche. Dann lass sie doch weg und programmiere 
"zu fuß". Direkt Register anzusprechen hast Du ja schon gemacht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.