Forum: Mikrocontroller und Digitale Elektronik LED Dimmen mit 100Hz Grundtakt noch möglich (Max 6 Stufen)


von Jürgen S. (jsachs)


Lesenswert?

Hallo,

ich möchte die Beleuchtung in meinem Modellgebäude minimal steuern 
können um den Bedarf Tag/Nacht anzugleichen.
Aktuell verwende ich eine LED Streifen mit fertigem Dimmer, der auch nur 
ca 8 Stufen kann. Die LED Kette hat 2 Farben (Weiss und Gelb).
Ich bräuchte 2 Unabhängige Regelungen, a 2 Farben, somit 4 Kanäle.

Da mein jetziger ATmega32 allerdings schon mit der Erzeugung von Servo 
Signalen (8 Stück) und RS232 und Erzeugung einem Timer, der mir alle 
1/100 Sekunde ein Flag für das Hauptprogramm setzt etwas kämpft (Servo 
Signal bekommt ein Jitter), würde ich das Dimmen gerne in der "Main 
Loop" mit dem Flag machen, dass alle 1/100 Sekunde gesetzt wird.
Mein Gedanke war das einfach so zu machen: (avr gcc pseudocode)
1
if (flag) // alle 1/100 Sekunde getriggert
2
{
3
 cnt++;
4
 if (cnt>10) // Max Schrittweite
5
 {
6
  cnt=0;
7
  pin[0].an(); // Wir schalten mal alle an
8
  pin[1].an();
9
  pin[2].an();
10
  pin[3].an();
11
 }
12
 // Bei erreichen des Dimmwertes aus
13
 if (ledValue[0] >= cnt) pin[0].aus();
14
 if (ledValue[1] >= cnt) pin[1].aus();
15
 if (ledValue[2] >= cnt) pin[2].aus();
16
 if (ledValue[3] >= cnt) pin[3].aus();
17
}
Achja, der Code ist nicht wirklich ausgereift. Die LEDs werden ja bei 
einem Dimmwert von "0" kurz an und wieder aus gemacht...

Wenn ich nun der Einfachheit halber sage Maximal 10 Helligkeit Schritte, 
würde ein Zyklus 1/10 Sekunde dauern. Reduziere ich auf 5 Schritte 5/100 
Sekunden.

Das ganze  wäre nicht Linear, muss es auch nicht, ich will nur 
Dunkel,Mittlere Helligkeit und volle Helligkeit abbilden. Durch die 
nichtlineare Wahrnehmung eben mehr Schritte.
Sonst ist es Nachts viel zu Hell in der Hütte.

Die Frage ist, ob eine Dimmgrundtakt jede 1/100 noch aus reicht für 
diesen einfachen Dimmer.
Achja, man muss ständig ins Gebäude schauen, Flackern sollte es also am 
besten nicht.

Eine andere Variante wäre noch einen kleinen attiny dafür zu nehmen, der 
nur per "rs232" info vom der haupt CPU bekommt.

Könnt ihr mir einen Tipp für einen Transistor gegen ? Das Netzteil 
bringt max 2A bei 12V. Mein ATmega32 läuft mit 5V.

Können bei der geringen Dimmfrequenz schon Störungen auftreten ?

Mal eben aufbauen ist nicht, sonst hätte ich das kurz ausprobiert.

Danke
Juergen

PS: Ich habe das Tutorial und Wiki schon gelesen, sehe aber leider 
keinen Hinweis auf meine Fragen

von Sascha (Gast)


Lesenswert?

Das mit dem Flag ist ne gute Idee, aber denk dran dass die Abarbeitung 
der main() bei jedem Interrupt unterbrochen wird. Ergo kann da ein 
Flackern entstehen, je nachdem wie viele Interrupts du hast, wie oft die 
pro Sekunde feuern und wie lange die Interruptroutine(n) zur Bearbeitung 
dauert.

Den Tiny kannst du auch nehmen, TWI bietet sich als Interface dafür an. 
Gibts fertige TWI Slave Libs für. Hab ich für ne Schrittmotorplatine mal 
gemacht.

Tipp für einen Transistor? Gehts vielleicht auch etwas genauer, mit 
Schaltplan und Angaben über Spannung und Strom?

Imho irgendein NPN der 12V Sperrspannung hat (da ist die Auswahl groß) 
und der den Strom deines LED Streifens ab kann.
Da kann vielleicht schon ein 2N3904 für reichen.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Der Aufbau wird mit 100Hz getriggert nicht funktionieren. Der Zähler bis 
10 bewirkt eine Teilung der PWM-Frequenz durch 10, sprich die LEDs 
werden sehr deutlich wahrnehmbar mit 10Hz flackern.

Ich würd das auch auf einen zweiten Controller auslagern, wenn es der 
erste nicht mehr schafft. Am besten einen neueren ATxxxx mit zwei 8 
Bit-Timern, die jeweils zwei PWM-Ausgänge haben. Dann kann man das alles 
die Hardware machen lassen und braucht sich in der Software nur um die 
Steuerung zu kümmern.

von Boris O. (bohnsorg) Benutzerseite


Lesenswert?

So ganz ist mir noch nicht klar, warum die Helligkeitsregelung auf allen 
Kanälen notwendig ist. Prinzipiell ließe sich doch das Tag/Nacht-Signal 
vor Ort (=am Häuschen) auswerten. Die bisherige Verkabelung liefert 
immer nur noch an/ aus und wie hell es dann sein muss, macht eine 
untergeordnete Regelung. (Ein Quad-Komparator kann zu einer 
spannungsgesteuerten autarken PWM gebastelt werden, vgl. 
http://www.led-treiber.de/html/pwm-dimmen.html. Liefert die bisherige 
Verkabelung eben eine Steuerspannung.)

von Jürgen S. (jsachs)


Lesenswert?

Boris O. schrieb:
> So ganz ist mir noch nicht klar, warum die Helligkeitsregelung auf allen
> Kanälen notwendig ist. Prinzipiell ließe sich doch das Tag/Nacht-Signal
> vor Ort (=am Häuschen) auswerten. Die bisherige Verkabelung liefert
> immer nur noch an/ aus und wie hell es dann sein muss, macht eine
> untergeordnete Regelung. (Ein Quad-Komparator kann zu einer
> spannungsgesteuerten autarken PWM gebastelt werden, vgl.
> http://www.led-treiber.de/html/pwm-dimmen.html. Liefert die bisherige
> Verkabelung eben eine Steuerspannung.)

In dem Fall würde ich dann doch einen Controller nehmen, da man 
Flexibler ist.
Ich hab noch 2 ATtiny2313 hier liegen, die sollten ja reichen, müssen ja 
nichts anderes tun außer Software PWM und Commands per rs232 zu 
Empfangen.
I2C will ich aktuell nicht verwenden. Zum Hintergrund, mehrere Gebäude 
sollen über einen OneWay RS232 verbunden sein, ein Gebäude hat einen 
Bluetooth Empfänger und ermöglicht so die Steuerung von einem Handy aus.

Alle Kanäle müssen Geregelt werden, da man sonst das Licht nicht Homogen 
einstellen kann. Gelb und Weiß sind ja nicht Linear zu einander.

Jeweils 2 Kreise für innen und außen.
Daher 4 Kanäle

Zur Frage der Stromstärke. Wie ich schon schrieb, hat das Netzteil 12V 
und Max 2A. Das sollte der Transistor dann auch können.
Eine Info die noch gut wäre ist, das die LED Kette einen gemeinsamen 
+12V hat und die die einzelnen Farben nach Masse geschaltet werden.
Hinter dem Akku / Netzteil hängt eine 4AT Sicherung, allerdings nur mehr 
als Kurzschluss Schutz. Wenn das der Transistor überlebt, wäre es auch 
prima.

Gruss
Juergen

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.