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
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).
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?
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
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.
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.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.