Problem mit PWM und HighPower LED's

Gast #1361892
Lesenswert?
• ▲
▼
Hi,

ich habe eine Schaltung aufgebaut, wo ich ein paar HighPower LED's über 
die Port Pins C0, C1 und C2 per PWM ansteuere. An den PortPins ist 
jeweils ein ICL7667 angeschlossen und daran werden über IRLZ34N die 
HighPower LED's betrieben. So weit so gut. Funktioniert auch alles 
wunderbar.

Nur hab ich etwas "Probleme" mit der PWM. Hier ist der Code der Timer 
ISR:

ISR(TIMER1_COMPA_vect) {
    static uint8_t pwm_zaehler=0;
    uint8_t temp=0;
    OCR1A += 600;

    if (pwm_wert[0] > pwm_zaehler) temp |= (1<<0);
    if (pwm_wert[1] > pwm_zaehler) temp |= (1<<1);
    if (pwm_wert[2] > pwm_zaehler) temp |= (1<<2);

PORTC = temp;

    if (pwm_zaehler==255)
    {
        pwm_zaehler=0;
    }
    else
    {
        pwm_zaehler++;
    }
}

Nun hab ich aber das Problem, wenn die LED's eigentlich aus sein sollen 
(kleinster Dimmerwert), "glimmen" diese trotzdem minimal nach. Ich hab 
mir jetzt so geholfen, indem ich in der ISR abfrage ob dieser Zustand 
erreicht wurde, und ändere einfach die Richtung der Portpins:

  if (pwm_wert[0] ==255)
    {
    DDRC &=~(1<<DDC0);
    }
    else DDRC |= (1<<DDC0);

  if (pwm_wert[1] ==255)
    {
    DDRC &=~(1<<DDC1);
    }
    else DDRC |= (1<<DDC1);

  if (pwm_wert[2] ==255)
    {
    DDRC &=~(1<<DDC2);
    }
    else DDRC |= (1<<DDC2);

Kann man das vielleicht noch etwas "eleganter" lösen?

Danke schonmal.
Persönliche Seite #1361907
Lesenswert?
• ▲
▼
tf1973 schrieb:
> Kann man das vielleicht noch etwas "eleganter" lösen?

Hardware PWM eine Option?

Dann kannst du eine invertierende PWM einstellen, allerdings hast du das 
Problem dann bei 100%, dass die LEDs immer kurz ausgehen und nie ihre 
volle Helligkeit erreichen. Allerdings ist das in deinem Fall eher 
verschmerzbar. Man muss dann allerdings beachten, das 0 = 99.9999% ist 
und 255=0%.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.