S: einfache Wertetabelle für RGB LED / Regenbogen

OP #2418799
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
#2418830
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
   }
Angehängte Dateien:
OP #2418880
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
OP #2418927
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
#2418973
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren