RGB LED mit nur einem POTI dimmen

OP #2441044
Lesenswert?

Hallo zusammen...

Ich stehe vor einem anscheinend unlösbaren Problem....

Eine RGB LED soll mit nur einem Potentiometer gedimmt werden, sodass 
alle möglichen Farben entstehen. Die Realisierung soll über Soft-PWM 
passiern und jede mögliche Farbkombination entstehen. (z.B. Rot 50%, 
Grün 30% und Blau 100% oder Rot 70%, Grün 20% und Blau 100% usw).
Etwas ähnliches verkauft derzeit Ikea
http://www.ikea.com/at/de/catalog/products/40192361/
ich möchte aber nur 1 RGB LED ansteuern.. keinen Strip.

Entweder denke ich viel zu kompliziert oder es ist wirklich nicht 
einfach realisierbar.

Ich bin über jeden Gedankenanstoss dankbar.

LG Roland
#2441066
Lesenswert?

wenn du dich mit 10 helligkeiten pro einzel Led zufrieden gibst hast du 
insgesammt 10 x 10 x 10 = 1000 verschiedene Möglichkeiten (Farben). Das 
ist gerade noch mit einem 10 Bit ADC machbar. für Mehr farben wirst du 
schwierigkeiten haben das Poti anständig auszulesen.
farbe 1 hochzählen von 0 bis neun - beim nächsten schritt wieder auf 0 
und farbe 2 um 1 erhöhen hat farbe zwei dann irgendwann 9 erreicht, 
farbe drei beim nächsten schritt um 1 erhöhen und farbe 2 auf 0 usw.

Ob das ganze für einen LED Strip oder eine einzel LED ist, ist nur noch 
frage des Transistors/Treibers
Gast #2441105
Lesenswert?

Oder eine einfachere Möglichkeit wäre, habe ich in Bascom geschrieben 
,die Enistellungen der einzelnen Farben , bzw. Kombination in der 
Anweisung hinterlegt, klar, nicht stufenlos.

Adc0 = Getadc(0)
Select Case Adc0
Case 0 To 75 :
R = 125
G = 0
B = 0
Case 100 To 175 :
R = 255
G = 0
B = 0
Case 200 To 275 :
R = 125
G = 125
B = 0
Case 300 To 375 :
R = 0
G = 255
B = 0
Case 400 To 475:
R = 0
G = 125
B = 125
Case 500 To 575 :
R = 0
G = 0
B = 255
Case 600 To 675 :
R = 125
G = 0
B = 125
Case 700 To 775:
R = 255
G = 0
B = 255
Case 800 To 875:
R = 255
G = 255
B = 0
Case 900 To 1000:
R = 255
G = 255
B = 0
End Select
Return

kann entsprechend angepasst werden...

oder wenn Du was gutes und fertiges haben willst, das Gerät ist für das 
Geld echt Spitze...

http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=13044
Gast #2441107
Lesenswert?

wenn Zustand (vom Poti) ein Wert von 1 bis 1000 hat,
R, G, B je einen Wert von 1 bis 10,
dann könnte man, um alle möglichen Kombinationen zu erhalten, das so 
umrechnen:

R = Zustand % 10
G = (Zustand/10) % 10
B = Zustand/100


R,G,B müssen natürlich noch auf Ganzzahlen gerundet werden, % bedeutet 
Modulo


Das entspricht aber nicht der IKEA Lösung, denn die scheint immer mit 
voller Helligkeit zu brennen, der Schalter zeigt ja auch einen 
Regenbogen (mit gleicher Helligkeit).
Bei meien Lösung oben würde man beim Drehen die Farbe rot springen 
sehen, dann grün und ganz langsam den Blauanteil. Nicht wirklich 
Benutzerfreundlich.
Gast #2441111
Lesenswert?

Der Programmieraufwand ist nicht groß, wenn du eine Wertetabelle 
anlegst.
Dies kann z.Bsp. in einem oder mehreren EPROM abgelegt werden.
Vorn die Adressen aus dem A/D-Wandler und hinten kommen die Farben raus.
Für diesen Abschnitt kann man evtl. sogar auf einen MC verzichten.
Oder eben im Flash eines MC.
Gast #2441181
Lesenswert?

Ich glaube, das ist viel simpler. Diese Farbwechsler haben meistens eine 
begrenzte Anzahl von vordefinierten Farbkombinationen - z.B. 8, 16 oder 
32. 1000 verschiedene Farben wirst Du mit dem Ikea-Ding bestimmt auch 
nicht hinbekommen.
Probier doch verschiedene "schöne" Farbkombinationen aus, bring diese in 
eine schöne Reihenfolge und verteile sie auf Bereiche des AD-Wandlers. 
Poti an den ADC und fertig. Wenn Du es dann noch verbessern willst, 
kannst Du mit fließenden Übergängen zwischen den Farbstufen spielen. So 
daß es nicht von einer Farbe auf die nächste umschaltet, sondern rüber 
dimmt.
#2441202
Lesenswert?

Hallo,
Du kannst mit einem Poti jederzeit ohne große Probleme den gesamten 
Farbkreis (HSV) abfahren. Mit zwei zusätzlichen Tastern könntest Du 
sogar zusätzlich noch die Helligkeit und die Farbsättigung regeln.

Das "Geheimnis" heißt HSV....

Schau Dir mal die folgenden Beiträge an:

Beitrag "hsv nach rgb für 12Bit"
Beitrag "HSV RGB Led Dimmer, C Code & Video & Doku"
Beitrag "HSV to RGB-LED Funktion"
http://www.mikrocontroller.net/forum/codesammlung?filter=moodlight

und

http://de.wikipedia.org/wiki/HSV-Farbraum

Gruß
Frank
Moderator (Firma: Titel) Persönliche Seite #2441209
Lesenswert?

Blöd nur, dass dann zwar jede Farbe vorkommt, aber noch überhaupt nichts 
gedimmt ist. Und das war die eigentliche Frage...

Bastler schrieb:
> oder wenn Du was gutes und fertiges haben willst, das Gerät ist für das
> Geld echt Spitze...
> http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=13044
Das Ding hat ja auch 1 Knopf für Farbe und 1 für die Helligkeit...
#2441236
Lesenswert?

Lothar Miller schrieb
> Blöd nur, dass dann zwar jede Farbe vorkommt, aber noch überhaupt nichts
> gedimmt ist. Und das war die eigentliche Frage...
>
Da (egal welcher Farbraum) inklusive Helligkeit genau drei unabhaengige 
Zahlenwerte benoetigt werden, kann man immer noch einen ADC nehmen und 
jeweils einen Teil der Bits einer der drei Zahlen zuordnen (z.B. bei 
einem 12-Bit ADC die obersten vier Bit als Rot, die mittlersten Bit als 
Gruen und die intersten 4 Bits als Blau).

Die Probleme einer nichtlinearen Abhaengigkeit zwischen Potistellung und 
Farbe ist aber dabei nur ein Problem, das je nach Wahl der Zuordnung der 
Bits etwas verringert werden kann. Mal davon abgesehen, dass ein 
normales Poti nur eine begrenzte Aufloesung besitzt.

Gruss Matthias
#2441260
Lesenswert?

>
> Eine RGB LED soll mit nur einem Potentiometer gedimmt werden, sodass
> alle möglichen Farben entstehen. Die Realisierung soll über Soft-PWM

Stellt sich die Frage, wie der Zusammenhang mit dimmen und alle 
möglichen Farben entstehen zu verstehen ist.

Sollte damit gemeint sein, dass nur die Farbe verändert werden soll, ist 
die HSV-Methodik die einfachste, da bei konstantem S und V Anteil nur 
der H-Anteil verändert würde.

D.h. bei 8 Bit Auflösung des ADC könnten 256 Farben dargestellt werden 
und das ohne großen Aufwand, da die HSV2RGB Funktionen alle anderen 
Werte liefern würden.

Gruß
Frank
Gast #2441294
Lesenswert?

> Die Helligkeit ist immer konstant, nur die Farben ändern sich.

Sicher. Wie soll es auch sonst sein ?
Ein Poti hat nur einen Freiheitgrad, also
ENTWEDER die Helligkeit ändern ("dimmen")
ODER die Farbe ändern.

Du hast wohl dasselbe Problem wie unter
Threadstarter Roland B, der die Begriffe nicht
auseinanderhalten kann.

> Stellt sich die Frage, wie der Zusammenhang mit dimmen und alle
> möglichen Farben entstehen zu verstehen ist.

So bald man einen uC einsetzt, ist das Problem
kinderleicht zu lösen. Interessanter wäre eine
analoge Lösung mit LM324.
#2441340
Lesenswert?

@  MaWin (Gast)

>> Die Helligkeit ist immer konstant, nur die Farben ändern sich.

>Sicher. Wie soll es auch sonst sein ?

Viele Wege führen nach ROM.

>Ein Poti hat nur einen Freiheitgrad, also
>ENTWEDER die Helligkeit ändern ("dimmen")
>ODER die Farbe ändern.

Nö, man kann per Tabelle jeden beliebigen Unsinn von einem linearen, 
eindimensionalen Eingang in einen n-dimensionalen Ausgang 
transformieren. Klar, dabei kann man nicht ohne weiteres den GANZEN 
Bereich EINFACH abdecken.

>> Stellt sich die Frage, wie der Zusammenhang mit dimmen und alle
>> möglichen Farben entstehen zu verstehen ist.

>So bald man einen uC einsetzt, ist das Problem
>kinderleicht zu lösen.

Um verschiedene Farben zu erzeugen, muss man die Primärfarben 
verschieden stark mischen. Das macht man mit Dimmung in z.B. 
Soft-PWM.

> Interessanter wäre eine analoge Lösung mit LM324.

Kaum. Bei den Preisen für einen 8 Pin uC ist die analoge Lösung 
chanchenlos und hoffnungslos unterlegen.

MFG
Falk
Gast #2441361
Lesenswert?

also ich würde das ganz einfach in eine schleife packen c.a. so:

register setzten
tabelle mit farben deffinieren

while (1){
   adc auslesen
   aus adc wert farbe aus tabelle suchen und in 3 variablen (r,g,b) 
schreiben

   for(i=0; i!=11; i++){
      if(r<=i){
         rote led einschalten
      }else{
         rote led ausschalten
      }

      das gleiche noch für blau und grün
      delay wie schnell du den pwm haben möchtest
   }
}


ganz simple ;)
oder hab ich was nicht verstanden???
Gast #2441373
Lesenswert?

> ich habe noch nie einen RGB Fader mit LM und Co. gesehen
> Bei den Preisen für einen 8 Pin uC ist die analoge Lösung
> chanchenlos und hoffnungslos unterlegen.

Bei der weitverbreiteten Dummheit der Deutschen verbunden mit
gnadenloser Lernresistenz werden wir ewig den Chinesen
unterlegen bleiben, denn ein LM324 ist nun mal billiger als
ein uC

 +---------------+------+----+ VCC
 |               |      |    +--|>|--+ LED rot
 R   +----R---+  R      |            |
 |   |        |  |      |    +---R---+
Poti-+--|+\   |  +-----|+\   |
 |      |  >--+  |     |  >--+--|>|--+ LED grün
 |   +--|-/   R  R  +--|-/           |
 |   |        |  |  |        +---R---+
 |   +--------+  +--(--|+\   |
 R   |        |  |  |  |  >--+--|>|--+ LED blau
 |   C        |  R  +--|-/           |
 |   |        |  |  |   |    +---R---+
 +---+--------(--+--(---+----+ GND
              |     |
              +-----+
Gast #2441393
Lesenswert?

Kurzer Exkurs:

Egal, in welchem Farbraum man sich bewegt: Farben sind dreidimensional 
(haben drei unabhängige Koordinaten/Eigenschaften). Man kann nicht durch 
Veränderung eines Parameters zwei der Eigenschaften gleichzeitig 
unabhängig verändern.

HSV ist intuitiv sehr geeigent für ästhetische RGB-Anwendungen, weil man 
Farbe und Helligkeit separat voneinander einstellen kann. Das kann 
jedoch prinzipiell nur mit zwei separaten Eingabemöglichkeiten gelingen.
#2441590
Lesenswert?

Naklar schrieb:
> Farben sind dreidimensional

Aber nur für das Auge. Jede Farbe hat ihre eigene eindimensionale 
Frequenz.

@Mawin

Ich weiß nicht was günstiger ist (Bestückung berücktsichtigt):
- LM324 + 10R + C
- attiny11 + R

Für die RGB-Led reicht ein Widerstand, der µC kann die Leds nacheinander 
ansteuern. Ob man den Abblockkondensator bei so einer kleinen Schaltung 
braucht bezweifle ich ebenfalls.
(Firma: Q3) #2441617
Lesenswert?

Man kann den Weg des Potis auch mit der Wellenlänge assoziieren und dann 
ist es eine Strecke. Der sichbare Bereich geht bekanntlich von ca. 780 
nm (Rot) bis 380 nm (Blau-Violett). Der Weg geht dann von im einfachsten 
Fall von

Rot-Gelb-Grün-Cyan-Blau-Magenta

... dabei sind Cyan, Magenta und Gelb (CMY) jeweils Mischfaben ihrer 
Nachbarn (RGB).

Man lässt z.B. erst Rot bis 100 % zunehmen und dann wieder abfallen, 
wobei gleichzeitig Grün zuzunehmen beginnt. Ist Rot bei Null und Grün 
bei 100% fällt danach Grün wieder ab und Blau nimmt zu ... usw. Man 
braucht also je eine "Überschneidungszone" und einen Bereich, in dem die 
Grundfarbe relativ allein leuchtet.

Benutzt man statt einem Poti einen inkrementalen Geber mit 
Rechts-Links-Erkennung, kann man auch die Metapher vom "Farbkreis" 
fahren, die sich bei Magenta ja schon andeutet, denn das entsteht aus 
Blau und Rot. Nimmt Blau dann wieder ab und Rot zu, ist man einmal 'rum.
Gast #2441803
Lesenswert?

Mach das ganze doch mit einer zeitlichen Komponente:

Poti wert ändert sich ---> programmteil zum einstellen der RGB Werte 
startet.
Dann als erstes den R Wert einstellen, erfolgt 2 Sekunden keine Änderung 
wird der Wert übernommen... dann G Wert und so weiter.
Scheint mir eine sehr einfache lösung zu sein.
Gast #2441807
Lesenswert?

Ach ja, kleiner Nachtrag. So kannst du auch leicht die vollen 24 bit 
Farbtiefe abfragen, da kannst du sogar die letzten 2 bit des 10bit ADC 
abschneiden. Damit wird das ganze noch einfacher und auch weniger 
anfällig gegen Störungen. (Programmteil zum einstellen der RGB werte 
startet unabsichtlich wegen Rauschens) Das kannst du damit noch umgehen 
:)
#2441810
Lesenswert?

@  Eumel (Gast)

>Dann als erstes den R Wert einstellen, erfolgt 2 Sekunden keine Änderung
>wird der Wert übernommen... dann G Wert und so weiter.
>Scheint mir eine sehr einfache lösung zu sein.

Scheint mir eine sehr freakige Lösung zu sein, schlimmer noch als 
Unix-Commandos und VI . . .
Intuitiv ist was anderes.
Gast #2441855
Lesenswert?

Eumel schrieb:
> Na, dann hau mal deine triviale Lösung raus :)

Wurde doch schon gepostet, bevor die ganze verkomplizierung losging:

Einfachstversion: Kleiner Microcontroller, HSV Farbraum, H in 
Abhängikeit vom Poti geht die Farben durch.
Luxusversion: Kleiner Microcontroller, Poti oder (besser) Drehencoder. 
Einen Taster, mit dem man zwischen der Regelung von H, S und V 
durchschalten kann.
Alles in allem nicht mehr als ein Nachmittagsprojekt.
#2442410
Lesenswert?

Hallo,

"Der HSV-Farbraum ist der Farbraum etlicher Farbmodelle, bei denen man 
die Farbe mit Hilfe des Farbtons (englisch hue), der Farbsättigung 
(saturation) und des Hellwerts (bzw. der Dunkelstufe) (value) definiert. 
Ähnliche Definitionen führen zu einem HSL-Farbraum mit der relativen 
Helligkeit (lightness), einem HSB-Farbraum mit der absoluten Helligkeit 
(brightness) und einem HSI-Farbraum mit der Lichtintensität 
(intensity)."

Quelle: http://de.wikipedia.org/wiki/HSV-Farbraum

Keine Ahnung was jetzt korrekt ist, ist HSV jetzt ein Farbraum oder ein 
Farbmodell???

Gruß
Frank
#2442431
Lesenswert?

So wie ich das verstehe, ist ein Farbmodell eine Berechnungsvorschrift 
die etwas realisiert. Die Menge aller möglichen Werte, die so ein Modell 
erzeugen kann, ist der Farbraum (also welche Farben sind mit dem Modell 
überhaupt realisierbar).

Meiner Meinung nach in (unserer) Praxis ein Streit um des Kaisers Bart, 
da in den meisten Fällen ja sowieso keine kalibrierten Ausgabegeräte zur 
Verfügung stehen, die dann genau diese Farbe realisieren und ihrerseits 
auch wieder Beschränkungen im Farbraum der überhaupt darstellbaren 
Farben haben, die den Farbraum weiter einschränken. Wer denkt, Farbe 
sind 3 Werte R/G/B und das ist alles und damit ist jede Farbe 
darstellbar, der hat mit Zitronen gehandelt.
Das alles spielt aber abseits vom grafischen Gewerbe bzw. Lack und 
Farbenherstellung so gut wie keine Rolle. Ob eine RGB-LED mit einem Satz 
R/G/B Werte tatsächlich genau den Farbton trifft, der in irgendwelchen 
Referenzkarten abgedruckt ist, ist a) ziemlich unwahrscheinlich und b) 
für unsere Bastlerzwecke herzlich unerheblich.
Gast #2442495
Lesenswert?

> ist HSV jetzt ein Farbraum oder ein Farbmodell???

Es ist ein Modell, aber nur dumme Leute die nichts
anderes können reiten auf der Wortverwendung rum
während jedem anderen klar war was gemeint war.

Es sind dieselben die im Baumarkt ein Leuchtmittel
haben wollen und vom Verkäufer nur dumm angeguckt werden
aus welchem Irrenhaus sie den denn gerade entlassen haben.
Gast #2631559
Lesenswert?

Hallo,

ich wollte diesen Thread noch einmal aufgreifen, da ich auch über ein 
Poti die Farbe einer RGB LED ändern möchte.
Mein erste Ansatz ist, wie hier auch beschrieben, die Werte im 
HSV-Farbraum zu bestimmen und dann in RGB umzurechnen. Das Poti wird 
über einen 10-Bit ADW eingelesen. Ich wollte nun jeweils 3 Bit davon H, 
S und V zuordnen. Das niederwertigste Bit würde ich dabei nicht 
beachten, da es ja eh die ganze Zeit toogelt.
Mit jeweils 8 Werte für H, S und V kann ich ja 512 Farben generieren, 
also mehr als genug. Haltet ihr den Ansatz für ok?
Ich warte noch auf die Lieferung der LED daher kann ich es noch nicht 
testen.

Grüße Mike
#2631701
Lesenswert?

Mike schrieb:

> Mit jeweils 8 Werte für H, S und V kann ich ja 512 Farben generieren,
> also mehr als genug. Haltet ihr den Ansatz für ok?

Letzten Endes wirst du es ausprobieren müssen.
Wenn ich mir aber so ein Standard-Poti mit einem Drehknopf drauf 
vorstelle mit seinen vielleicht 270° Verdrehweg und mir dann vorstelle, 
dass die "Verdrehung" in 512 Positionen aufgelöst wird wobei jede 
kleinste Verdrehung relevant ist und das Ergebnis massiv verändert, dann 
kann ich mir nicht wirklich vorstellen, dass ich da einen ganz 
bestimmten Farbwert/Helligkeit/Sättigung gezielt suchen möchte, ohne dem 
Programmierer die Hölle an den Hals zu wünschen.

Der wichtigste Wert ist H! Was willst du mit 8 verschiedenen H-Werten? H 
ist der Farbton. Den will ich auf jeden Fall durchdimmen können. Und 
zwar mit einigermassen vernünftiger Auflösung. 8 mögliche Werte wären 
mir da viel zu wenig.
Gast #2631999
Lesenswert?

Das Poti, das ich verwende, hat einen Drehweg von 1800°, also 5 
Umdrehungen.
Ok das mit den 8 Werten erscheint mir nach genauerem Lesen auch etwas 
wenig^^ Ich werde dem H dann wohl ein oder zwei Bit mehr spendieren.
Mir ging es ja eher darum, ob meine Vorgehensweise von Anfang an schon 
zum Scheitern verurteil ist oder ob ich ein brauchbares Ergebnis 
erwarten kann. Naja ich werds wohl einach testen müssen
Gast #2632046
Lesenswert?

Mike schrieb:
> Mit jeweils 8 Werte für H, S und V kann ich ja 512 Farben generieren,

Dir ist aber schon klar, dass du dann eigentlich nur 8 Farben mit 
jeweils 8 verschiedenen Sättigungsgraden und Helligkeiten hast?

Da HSV auch etwas kegelförmig ist, sind die 8 Farben mit Sättigung 0 
jeweils gleich, du hast also jeweils 8 mal:
- rabenschwarz
- schwarz
- tief schwarz
- mausgrau
- zementgrau
- leicht grau
- weiß
- weiß wie frisch gefallener Schnee

In der Praxis werden sich die Farben zwar leicht unterscheiden, aber von 
512 möglichen Farben 64 gleich zu machen kommt mir etwas unsinnig vor. 
Da wärst du mit jeweils 3 Bit für RGB besser beholfen.

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