Forum: Mikrocontroller und Digitale Elektronik ATmega32 PWM LED Dimmer


von Tilo (Gast)


Lesenswert?

Ich Versuche gerade ein Power LED (weis) zu dimmen aber je dunkler ich 
sie dimmen will (kleinerer pwm  wert = dunkler) desto mehr flackert es.
Der Atmega32 (Timer1) wird an 4Mhz betrieben (PWM Pre. = 1).

Wie kann ich dieses Problem eliminieren?

von Philipp (Gast)


Lesenswert?

Quellcode zeigen!

von Tilo (Gast)


Lesenswert?

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "pwm.h"

void Init_PORT(void)
{

 PORTD = 0x00;
 DDRD = (1<<PD5);

}


void Init_PWM(void)
{

 //Timer1, Fast PWM,

 TCCR1A = (1<<COM1A1) | (1<<WGM11);
 TCCR1B = (1<<WGM12) | (1<<WGM13) | (1<<CS10);


}



void Set_PWM(unsigned int value)
{

 OCR1A = value;
 ICR1 = 0xFFFF;

}




int main(void)
{

 Init_PORT();
 Init_PWM();


 while(1)
 {


   Set_PWM(x);


 }

 return 0;

}

von Marco V. (marcov)


Lesenswert?

Warum setzt du IRC1? Das ist zumindest für eine normale PWM bei fester 
Frequenz nicht nötig.
Dass Du Set_PWM() in einer Endlosschleife stehen hast ist auch nicht gut 
wenn vor dem Setzen des Registers nicht darauf gewartet wird dass der 
Timer auf 0 steht.

Spring einmal vor der Endlosschleife in die Set_PWM() Funktion und 
danach nur noch wenn sich der Wert auch ändert. Das gibt sonst ein 
Durcheinander.

Grüße

von Karl H. (kbuchegg)


Lesenswert?

Tilo schrieb:
> Ich Versuche gerade ein Power LED (weis) zu dimmen aber je dunkler ich
> sie dimmen will (kleinerer pwm  wert = dunkler) desto mehr flackert es.
> Der Atmega32 (Timer1) wird an 4Mhz betrieben (PWM Pre. = 1).
>
> Wie kann ich dieses Problem eliminieren?

Indem du keine volle 16 Bit PWM benutzt.
Bei 4Mhz kommst du damit auf eine PWM-Frequenz von ~61Hz.
Und wenn die Led Dunkel ist, sieht man das bereits.

Bruachst du wirklich eine LED mit 65536 verschiedenen Helligkeitswerten?

von Tilo (Gast)


Lesenswert?

Nein soviele Werte sieht/unterscheidet man denk ich auch garnicht. Also 
reicht ein 8Bit PWM. Habt ihr mir ein Beispiel für einen solche 
Dimmerlampe mit LED.

Eiei ist das HEIß.

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.