mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Soft-PWM und High-Power-LED (ATMega8)


Autor: Andre (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein etwas seltsames Problem beim Bau einer der bekannten 
Farbwechsel-RGB-LED-Moodlamps.

Ich verwende einen ATMega8, intern mit 8 MHz getaktet. Ich Programmiere 
mit BASCOM.

Das Programm sieht 2 Modi vor: automatischer Farbwechsel zwischen 
verschiedenen Farben und freie Farbwahl über 3 Potis.

Die Potis sind 10 kOhm, die Transistoren sind BC337-25. Basiswiderstände 
vor den Transistoren sind 500 Ohm, die LED-Vorwiderstände sind auf 
momentan 200 mA Strom pro LED-Farbe ausgelegt (wird später 350 mA), es 
handelt sich um eine Seoul Z-LED P5.

Jetzt das Problem: im Farbwechselmodus klappt alles wunderbar.
Sobald ich jedoch auf einstell-Farben gehe und ein beliebiges Poti auf 
mehr als ca. 50% aufdrehe, flackern die anderen beiden Farben, trotz 
Poti auf Nullstellung, leicht unregelmäßig mit ca. 10 Hz mit.

hier die relevanten Code-Teile:
Rot Alias Portd.5
Gruen Alias Portd.6
Blau Alias Portd.7

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

On Timer1 Ontimer1
Config Timer0 = Timer , Prescale = 64
Enable Timer0
Config Timer1 = Timer , Prescale = 1
Enable Timer1
Enable Interrupts
T1 = Getadc(0)
T2 = T1 / 4
Rhell = T2
T1 = Getadc(1)
T2 = T1 / 4
Ghell = T2
T1 = Getadc(2)
T2 = T1 / 4
Bhell = T2
If Timer0 < Rhell Then Rot = 1
If Timer0 > Rhell Then Rot = 0
If Rhell = 0 Then Rot = 0
If Rhell = 255 Then Rot = 1

If Timer0 < Ghell Then Gruen = 1
If Timer0 > Ghell Then Gruen = 0
If Ghell = 0 Then Gruen = 0
If Ghell = 255 Then Gruen = 1

If Timer0 < Bhell Then Blau = 1
If Timer0 > Bhell Then Blau = 0
If Bhell = 0 Then Blau = 0
If Bhell = 255 Then Blau = 1

wie gesagt, wenn die Variablen Rhell, Ghell und Bhell automatisch 
bestückt werden klappt alles wunderbar!
Kann mir nicht erklären wo das Problem liegt?
Verwende ich den selben Aufbau mit einer 5mm-20mA-RGB-LED tritt das 
Problem nicht auf. Beeinflussen sich die Transistoren irgendwie 
gegenseitig? Aber warum nicht im Farbwechsel-Modus?

Ach ja, und noch etwas verwundert mich:
wenn ich die LED's auf "dunkel" dimme, flackern sie merklich, obwohl 
doch die Blinkfrequenz im schlimmsten Fall 8 Mhz geteilt durch 64 
Prescale geteilt durch 256 An/Aus-Verhältnis = 488 Hz betragen sollte?

Im Anhang auch noch die verwendete Schaltung

Danke schonmal für Eure Hilfe,
  André

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.