Gerät Hintergrundbeleuchtung dimmen

Gast #5124926
Lesenswert?

Hallo und guten Hunger.

Hab da ein Fahrradtacho welches ich über einen Drehimpulsgeber in 22 
Stufen die Hintergrundbeleuchtung einstellen kann. Nun möchte ich das 
bei entsprechender Beleuchtung sich auch die Hintergrundbeleuchtung 
anpasst.

Quasi:
Heller Tag = hellere Hintergrundbeleuchtung
Dunkler Tag/Nacht = dunklere  Hintergrundbeleuchtung

Folgendes ist bereits erfüllt und arbeitet auch:

1. LDR(M996011A) --> ADC --> AVR 328P --> Lichtintesität ermitteln i.O.

2. AVR mit 2 Pins parallel zum Drehimpulsgeber(ALPS LOW-active) 
geschaltet
   um darüber die Hintergrundbeleuchtung zu beeinflussen         i.O.

3. Test mit abdunkeln und erhellen lässt die Hintergrundbeleuchtung von
   0-21 super anpassen.                                          i.O.
   Software reproduziert die Ergbenisse                          i.O.

4. alle 4s je eine Messung starten (ADC) das ganze 15mal = 60s   i.O.
   nur alle 60s den Durchschnitt von den 15 Werten bilden,       i.O.
   nur alle 60s dies auf die entsprechende Lichtstufe umrechnen, i.O.
   nur alle 60s auf die Stufe dimmen.                            i.O.

Erstes Problem:
Wenn es Abends dunkler wird scheint es so als wenn der M996011A (600nm) 
noch zu empfindlich auf das orange Spektrum reagiert und damit die 
Helligkeit zu hell bleibt.

Bringt eine orange/rote/schwarze Folie Abhilfe um den LDR dezent 
unempfindlicher werden zu lassen ?


Zweites Problem:
Alle 60s(war erstmal nur zum Testen) kann sich die Helligkeit anpassen. 
Nun würde ich es ein wenig "smother" machen. Gerade weil man ja schnelle 
Lichtwechsel hat, hell dunkel usw, ist meine Anpassung mit den 60s zu 
langsam.

Fakt ist, die 60s müssen runter gesetzt werden so das es sich vllt alle 
15s anpassen kann. Hat jmd mal einen Denkanstoß um den Algorythmus zu 
beschleunigen ohne das man eine Überschneidung an einer 
dunkeleren/helleren Stelle hat und es sich aktualisiert aber 1s später 
wieder heller wird.

Controller Atmega 328P in ASM
Moderator (Firma: Titel) Persönliche Seite #5124957
Lesenswert?

chris schrieb:
> Bringt eine orange/rote/schwarze Folie Abhilfe um den LDR dezent
> unempfindlicher werden zu lassen ?
Wenn schon, dann brauchst du eine blaue Folie, damit das störende und 
verfälschende orange Licht nicht durchkommt.

> Hat jmd mal einen Denkanstoß um den Algorythmus zu beschleunigen
Ich würde die Anpassung ständig in der Mainloop machen. Weil ich aber 
dein Programm nicht kenne, weiß ich nicht, was du ändern musst.

> 4. alle 4s je eine Messung starten (ADC) das ganze 15mal = 60s   i.O.
>    nur alle 60s den Durchschnitt von den 15 Werten bilden,       i.O.
>    nur alle 60s dies auf die entsprechende Lichtstufe umrechnen, i.O.
>    nur alle 60s auf die Stufe dimmen.                            i.O.
Wenn du alle 4 Sekunden eine Messung machst, dann kannst du doch einfach 
alle 4 Sekunden eine neue Helligkeit ermitteln (Stichwort: gleitender 
Mittelwert).
#5124961
Lesenswert?

chris schrieb:
> Bringt eine orange/rote/schwarze Folie Abhilfe um den LDR dezent
> unempfindlicher werden zu lassen ?

Einfach mit verschiedenen Folien ausprobieren, dazu..

chris schrieb:
> Fakt ist, die 60s müssen runter gesetzt werden so das es sich vllt alle
> 15s anpassen kann. Hat jmd mal einen Denkanstoß um den Algorythmus zu
> beschleunigen ohne das man eine Überschneidung an einer
> dunkeleren/helleren Stelle hat und es sich aktualisiert aber 1s später
> wieder heller wird.

.. öfter messen, Mittelwert bilden und anpassen. Miss doch einfach 15x 
pro Sekunde und passe jede Sekunde an - zumindest mal zum testen..

Wenn ich mit dem Fahrrad für 5-10 Sekunden durch eine dunkle 
Unterführung fahre, würde ich erwarten, dass es nach < 1 Sekunde hell 
wird.. nicht?
Gast #5124990
Lesenswert?

Lothar M. schrieb:
> Wenn schon, dann brauchst du eine blaue Folie, damit das störende und
> verfälschende orange Licht nicht durchkommt.

Blau ? gut gut Farblehre war nie so meins :D

> Ich würde die Anpassung ständig in der Mainloop machen. Weil ich aber
> dein Programm nicht kenne, weiß ich nicht, was du ändern musst.

Wird auch vom Prinzip gemacht. Alle 60s wird ein Bit mit dem Timer1 
generiert und in der Main abgefragt. So ist das anpassen für mich 
einfacher von verschiedenen Zeiten.

> Wenn du alle 4 Sekunden eine Messung machst, dann kannst du doch einfach
> alle 4 Sekunden eine neue Helligkeit ermitteln (Stichwort: gleitender
> Mittelwert).

mmhh ja das geht natürlich auch. Das muss ich mir nochmal zur gemüte 
führen. Ich hab nur den arithmetischen Mittelwert...

Rainer U. schrieb:
> .. öfter messen, Mittelwert bilden und anpassen. Miss doch einfach 15x
> pro Sekunde und passe jede Sekunde an - zumindest mal zum testen..

Der Gedanke ist dem vom Lothar ähnlich. Das schonmal gut.

> Wenn ich mit dem Fahrrad für 5-10 Sekunden durch eine dunkle
> Unterführung fahre, würde ich erwarten, dass es nach < 1 Sekunde hell
> wird.. nicht?

Genau umgekehrt finde ich besser. Nach der Unterführung wird beides dann 
wieder heller.

Die Infos muss ich erstmal ver/erarbeiten.

Danke für die schnellen Infos
Gast #5125016
Lesenswert?

Gleitender Mittelwert:

Start
x = 15 Messung
y = Werte
z = Summe aus den 15 Werten

z/15 = mein erster Durchschnitt = entpsrechende Helligkeit

nun nächste Messung starten...

x = 15 Messungen
y = ältester Wert durch neuen Wert ersetzen
z = Summe aus den 14 alten Werten + den neuen Messwert addieren

z/15 = gleitender Mittelwert

Also muss die Software nur einen zusätzlichen Ringbuffer bekommen

Werd das mal bei Zeiten ausprobieren.
#5125023
Lesenswert?

chris schrieb:
>> Wenn ich mit dem Fahrrad für 5-10 Sekunden durch eine dunkle
>> Unterführung fahre, würde ich erwarten, dass es nach < 1 Sekunde hell
>> wird.. nicht?
>
> Genau umgekehrt finde ich besser. Nach der Unterführung wird beides dann
> wieder heller.


Ich würde bei der Gelegenheit das Aufdimmen unverzögert geschehen 
lassen, das Abdimmen (dunkler werden) jedoch etwas verzögert.
Einfach, weil die Dunkeladaption des Auges länger dauert.


Benutze den gleitenden Durchschnitt, der bei jeder Messung neu berechnet 
wird.

Vielleicht könntest du eine Hysterese einbauen, d.h. die 
Displayhelligkeit ändert sich erst, wenn wenn zwischen dem aktuellen 
Durchschittswert und dem Durchschnittswert, bei dem die Helligkeit das 
letzte mal angepasst wurde, ein bestimmtes Delta herrscht.

So könnte man kurze Dunkelphasen (Unterführung, Schatten einer 
Straßenlaterne etc.) ausbügeln.

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