Hallo Ich möchte entweder über einen Fototransistor, Fotodiode oder einen LDR die Umgebungshelligkeit im Raum messen und mittels ADC im AVR auswerten. Dannach stell ich dann meine PWM zur Helligkeitsregelung der Segmentanzeige ein. Soweit so gut. Nur nach meinen ersten Tests mit einem Fototransisor (BPY62) bin ich mit dem Ergebnis überhaupt nicht zufrieden. Hab den Fototransistor mit dem Kollektor auf +5V und dann den Emmitter über einen 10k Widerstand gegen GND. Alles erst mal ganz einfach gehalten. Die resultierende Spannung (mit Messgerät gemessen) beziehe ich über den Widerstand. -> einleuchtend, oder? Leider schwankt die Spannung da sehr heftig und ich denk mal, dass da das auswerten mittels ADC sehr schwierig werden wird. Hat jemand einen Tipp für korrekte Hardware in Sachen Fotowiderstand/Fototransistor/Fotodiode??? Was ist der bessere Weg? Danke schon mal Steffen
> Leider schwankt die Spannung da sehr heftig und ich > denk mal, dass da das auswerten mittels ADC sehr > schwierig werden wird. Wenn Du vor dem Fotowiderstand Messungen durchführst, ändert sich der Meßwert natürlich stark - Du solltest im Programm über eine bestimmte Zeit mitteln und "Ausreisser" ausfiltern. Otto
Ja, das hab ich mir auch schon fast gedacht. Ich suche ja auch nur nach einer relativ (relativ = Ref.Spannung + OPV ist Obergrenze) Schaltung zur Ermittlung der Umgebungshelligkeit. Und da fand ijch den Fototransistor nicht so optimal. Außerdem reagiert er extrem auf eine IR-Fernbedienung. Und das ist ganz schlecht! Oder sollt ich doch einfach nur einen LDR nehmen?
>Außerdem reagiert er extrem auf eine IR-Fernbedienung.
Wie schon geschrieben, du solltest über einige (zehn) Sekunden mitteln.
Da fällt die Fernbedienung raus.
Das filtern kann zB schonmal über einen großen Kondensator parallel zum
Fototransistor/LDR geschehen...
Falls die Hardware schon steht würd ich einen einfachen IIR Algorithmus zum Filtern der Messwerte benutzen! Faktor k ist anzupassen (Achtung auf Bereichsüberläufe!) [c] /* yn = yn1+(xn-yn1)*k */ /* Filter coefficient k = 0.015625 */ yn = yn1 + (( ( xn * 64 ) - yn1 ) / 64); yn1 = yn; [\c]
Okay und Danke für die Hilfe. Das werd ich morgen gleich mal ausprobieren.
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.