Forum: Mikrocontroller und Digitale Elektronik S: einfache Wertetabelle für RGB LED / Regenbogen


von Klaus D. (kolisson)


Lesenswert?

Hallo Leuts,
nach einer harten Zeit im Weinmachergeschäft habe ich mal wieder ne 
Frage.

Ich möchte 1 Stck. RGB led als ungefähre Spannungsanzeige verwenden.
(Es geht also nur um den beiläufigen optischen Eindruck).

Ich dachte daher an einen Lichteffekt wie man ihn vom Prisma her kennt.
Nach der ROGBIV Regel spaltet ein Prisma ja in Rot, Orange , etc.

Ich benutze eine 3 kanal Timergesteuerte Soft-PWM mit jeweils
255 möglichen Werten.

Die Messung der Messpannung erfolgt über Atmega ADC mit max = 1023.
Da ich denke das ein 8 Bit ADC Signal mit max = 255 für den Effekt
schon ausreichen wird werde ich also nur ein Byte als Eingangswert
verwenden.

Die Fakten also:
Eingang = 0 bis 255
Ausgang rot = 0 bis 255
Ausgang grün = 0 bis 255
Ausgang blau = 0 bis 255

Gewünscht = ein Lichteffekt der die höhe des Eingangspegels suggeriert.


Gesucht:
.. naja , so eine Art Lookuptable der die entsprechenden Levels
in etwa representiert.

Das hat doch bestimmt schonmal jemand durchgekaspert .. oder ?

Gruss Klaus

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

Klaus De lisson schrieb:

> Das hat doch bestimmt schonmal jemand durchgekaspert .. oder ?

Deine RGB Werte müssen diese Kurven durchlaufen (Bild), dann kriegst du 
einen relativ einfachen Farbverlauf durch alle Farben. Lässt sich auch 
relativ einfach programmieren: 6 Phasen, wobei in jeder Phase eine 
andere Primärfarbe auf oder abdimmt.

(Wenn die Höhe eines Wertes durch eine Farbe dargestellt werden soll, 
würde ich die letzte Phase weglassen (Magenta->Rot). Sonst kann man 
Maximum nicht vom Minimum unterscheiden.
Also: 5 Phasen a' 51 Werte. 2 der Primärfarben sind in jeder Phase 
jeweils konstant, die 3. wird entsprechend der Graphik gedimmt.

zb
1
   // Wert: 0 .. 254
2
   // Maximum 255 könnte man zu einem Ausnahmefall machen: weiß
3
   //
4
   Phase = Wert / 51;
5
   Level = Wert % 51;
6
7
   switch( Phase )
8
     case 0:
9
       Red   = 255;
10
       Green = Level * 5;
11
       Blue  = 0;
12
       break;
13
14
     case 1:
15
       Red   = 255 - Level * 5;
16
       Green = 255;
17
       Blue  = 0;
18
       break;
19
20
     case 2:
21
       Red   = 0;
22
       Green = 255;
23
       Blue  = Level * 5;
24
       break;
25
26
     case 3:
27
       Red   = 0;
28
       Green = 255 - Level * 5;
29
       Blue  = 255;
30
       break;
31
32
     case 4:
33
       Red   = Level * 5;
34
       Green = 0;
35
       Blue  = 255;
36
       break;
37
38
     default:
39
       Red = Green = Blue = 255;
40
   }

von Klaus D. (kolisson)


Lesenswert?

Danke Karl Heinz Buchegger,

ich glaube das war schon die Antwort...
.. Andererseits ergibt sich diese in groben Schritten ja auch aus
dem Wikipediaartikel http://de.wikipedia.org/wiki/HSV-Farbraum

Unterpunkt "Transformation von RGB und HSV"


... alerdings ging meine Frage ja auch dahin, ob schon jemand mal
so eine Wertetabelle gemacht hat, die ich einfach mal einbinden könnte.

Vielleicht findet sich ja noch einer, der so eine Tabelle gemacht hat
und diese teilen kann

Gruss klaus

von Karl H. (kbuchegg)


Lesenswert?

Klaus De lisson schrieb:


> Vielleicht findet sich ja noch einer, der so eine Tabelle gemacht hat
> und diese teilen kann

Nimm den Code, schreib dir eine main drumherum, schreib die Werte in ein 
File und du hast deine Werte in Tabellenform (alles auf dem PC)
Allerdings frag mich mich: wozu, da die Umformung ja relativ einfach als 
Code formuliert werden kann.

von Klaus D. (kolisson)


Lesenswert?

Hallo Karl Heinz,
Du hast recht, die Werte tabelle für eine quasi Dreieckfunktion
kann ich auf nem Papierstück machen.

Das werde ich jetzt auch tun . Meine Frage war wohl schwammig gestellt,
da ich neulich mal etwas gelesen hatte wo die Anstiege eben nicht
dreieckick waren . Diesen Artikel hatte ich gread nicht gefunden und 
dachte,
da es ja soviele LED Cubes gibt, dass auch jemand eine Tabelle Parat 
hat.

Ich mach es halt mal so mit den Dreiecken und werde es dann nach Gefühl
korrigieren.


Vielen Dank soweit

Klaus

von Karl H. (kbuchegg)


Lesenswert?

Klaus De lisson schrieb:

> Das werde ich jetzt auch tun . Meine Frage war wohl schwammig gestellt,
> da ich neulich mal etwas gelesen hatte wo die Anstiege eben nicht
> dreieckick waren . Diesen Artikel hatte ich gread nicht gefunden und
> dachte,

Könnte HLS gewesen sein.

Ist bei dir aber relativ egal, weil deine RGB-LED ja kein kalibriertes 
Ausgabegerät darstellen. D.h. die Zahlenwerte haben keinen exakten 
Zusammenhang mit den Primärfarben, die die LED erzeugt. Da kommt sowieso 
bei jeder RGB-Led ein leicht unterschiedliches Ergebnis raus.

> Ich mach es halt mal so mit den Dreiecken und werde es dann nach Gefühl
> korrigieren.

:-)
von den "Dreiecken" wirst du nicht viel sehen.

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.