Gast
#5243507
Hallo Zusammen, ich versuche, einen 2-kanaligen Dimmer zu programmieren, für eine "Tunable White"-Funktion. Also Kanal 1 Warmweisse Led, Kanal 2 Kaltweisse Led. Die Helligkeit und das Farbverhältniss soll über 2 Potentiometer eingestellt werden: P1 stellt das Farbverhältnis ein: Rechtsanschlag (0V) nur Warmweiss, Linksanschlag (3,3V) nur Kaltweiss. Dazwischen soll linear zwischen den Farben hinundhergeblendet werden. P2 stellt die Helligkeit des Farbgemisches ein: Rechtsanschlag (0V) dunkel, Linksanschlag (3,3V) volle Helligkeit. Die Hardware ist soweit aufgebaut und funktionert (Attiny841). Die beiden 10-Bit-Pwm-Timer / Mostfet-Ausgänge funktionieren. Auch das Einlesen der Potentiometer / Adc's funktioniert bestens. Die Helligkeit wird über eine PWM-Tabelle modifiziert, damits "linear" wird fürs Auge (10-Bit PWM, 128 Steps). Mein grosses Problem ist nun, wie ich nun die Software aufbaue / schreibe, damit das Hinundherblenden zwischen den beiden Farben funktioniert. Die Helligkeit alleine konnte ich schon so programmieren dass das Funktioniert hat, aber sobald ich versuche den Farbwert zu ändern gibts Chaos... Bin da schon relativ lange am rumprobieren, komme aber auf keine Lösung, mir fehlt einfach der logische Ansatz wie das gelöst werden soll. Deswegen sieht der Code momentan noch total Mager aus (macht m.M.n. keinen Sinn einen überhaupt nicht funktionierenden Ansatz zu posten). Wie gehe ich die beiden Abschnitte nun am besten an? Habt ihr einen Denkanstoss für mich, wie ich das Lösen kann? (erwarte natürlich keinen fertigen Code, mehr ein kleines Beispiel / denkansatz damit ich selbst weiter dran arbeiten kann). Wahrscheinlich ist es total simpel und ich denke viel zu kompliziert (wie immer). Falls ihr weitere Infos möchtet oder mein planloses rumgecode in den Abschnitten "farbe berechnen" und "helligkeit berechnen" doch sehen wollt, bitte melden! Ich danke euch schon für eure Hilfe! Beste Grüsse, Markus
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |