PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Helligkeitssensor Schaltung gesucht mit Auswertung in Bascom



demmy
24.11.2014, 17:33
Hallo zusammen,

wie der Titel schon sagt, suche ich eine möglichst simple Schaltung um einen Helligkeitssensor mittels Bascom auszuwerten.

Nutzen würde ich gerne einen analogen Eingang an meinem µC. Ich habe jetzt schon eine ganze weile im Internet gesucht, aber irgendwie noch nichts wirklich brauchbares finden. Ich möchte aber auch nicht das Rad neu erfinden. Hat jemand sowas vielleicht schon mal aufgebaut?
Prinzipiell wäre es egal ob eine Fotodiode oder ein Fototransistor verwendet wird. Das einzige was ich als Vorgabe habe ist die Interne Referenzspannung von 2,56V nicht zu überschreiten.

Da ich da wirklich momentan noch im Dunklen tapse, wäre es toll, wenn ihr mir etwas helfen könntet. Ich habe verschiedene Schaltungen in Erwägung gezogen, ich weiß aber nicht wie ich die Spannung, die ich dann in Bascom erhalte, in eine richtigen Messwert umrechne, bzw. wie ich prüfen kann ob der Wert stimmt, oder wie der Wert überhaupt zuzuordnen ist.

Ich hoffe Ihr könnt mir helfen?

Viele Grüße

peterfido
24.11.2014, 19:20
Der hier (http://www.exp-tech.de/Sensoren/Seeed-Studio-Grove-Lichtsensor.html) läuft mit 5V. Ich nutze ihn am analogen Eingang. Wenn Du das Signal mit einem Spannungsteiler teilst, kommst Du auf die geforderten 2,5(6) Volt, wenn du ihn mit 5V speist.

demmy
24.11.2014, 20:01
Hi,

also so wäre jetzt aktuell mein Ansatz.

29371

Aber wie kann ich dann die Lux aus meinem ADC berechnen?

demmy
25.11.2014, 19:20
Hu Hu,

hat niemand mehr eine Idee wie ich das berechnen kann?

Viele Grüße

Besserwessi
25.11.2014, 19:31
Für die Umrechnung in Quantitative Werte für die Helligkeit bräuchte man die Empfindlichkeit des Sensor aus dem Datenblatt. Das Umrechnen ist dann das kleinere Problem.
Alternativ könnt man die Empfindlichkeit selber nachmessen - nicht besonders genau, aber LDRs sind sowieso nicht besonders genau und auch die Datenblattwerte sind oft mit großen Toleranzen. Als Vergleichswert könnte etwa die Helligkeit eine Glühbrine dienen.

Die Schaltung kann man noch etwas vereinfachen, indem man den Spannungsteiler gleich als Lastwiderstand auslegt. Also etwa 2 mal 5 K statt 10 K.

demmy
25.11.2014, 19:47
Ok, mal angenommen ich möchte den folgenden LDR verwenden.

http://www.produktinfo.conrad.com/datenblaetter/175000-199999/183563-da-01-de-A1060.pdf

und ich ändere die Schaltung so, das der Lastwiderstand gleich dem Spannungsteiler mit 5K / 5K, wie könnte dann so eine Beispielrechnung aussehen.

Oder würdest du eher zur Verwendung einer Fotodiode tendieren?

Was bedeuten denn die ganzen R5 / R10 / R100 Widerstandswerte?

Besserwessi
25.11.2014, 21:31
R5,R10,R100 usw. sind der Widerstand bei 5,10,100 Lux.

Die Umrechnung widerstand - Spannung ist einfach U = 2,5 V * 10K / (10K+R_sensor).
Aus der Kurve oder der Tabelle setzt man ein paar Werte ein und bekommt so eine Werte Tabelle für Helligkeit - Spannung. Je nach Richtung der Umrechnung die man braucht kann man dann interpolieren, etwa mit einem Polynom, oder stückweise Geraden.

Die Frage ist halt wofür man den Sensor braucht. Halt was die Anforderungen sind an den Messbereich und die Genauigkeit.

Die bessere, aber auch teurere Lösung wäre eine Fotodiode (BPW21) mit passendem Filter, so dass die Empfindlichkeit ans Auge angepasst ist. Dazu braucht man dann eine Verstärkung, ggf. auch noch umschaltbar, wenn der Messbereich groß ist. Die Umschaltung der Empfindlichkeit bräuchte man ggf. auch mit dem LDR, ist da aber ggf. einfacher (2. Widerstand dazu an IO Port).

Peter(TOO)
25.11.2014, 21:35
Hallo,

Was bedeuten denn die ganzen R5 / R10 / R100 Widerstandswerte?

Steht im Text des Datenblatts

R10 = Widerstand bei 10 Lux
R100 = Widerstand bei 100 Lux
R01 = Widerstand 1s mach abschalten einer Lichtquelle mit 10 Lux
R05 = Widerstand 5s mach abschalten einer Lichtquelle mit 10 Lux

LDRs sin halt recht langsam.

Berücksichtigen musst du bei der Rechnerei aber auch noch die Toleranz, die liegt so in der Grössenordnung von +/-10% +/-20%.
Dazu kommt noch eine Temperaturabhängigkeit.

Wenn du genauer messen willst, musst du abgleichen.
Du brauchst entweder ein genaues Lux-Meter oder eine Beleuchtung, welche bekannte Werte liefert.

Manche Smartphones haben ein Lux-Meter eingebaut, muss man halt sehen wie genau die sind.

Was soll es den überhaupt werden?

MfG Peter(TOO)

fredred
26.11.2014, 11:47
Hallo demmy,

es kommt auf Projekt an. LDR sind nicht nur sehr träge auch der Temperaturtrift ist sehr groß.
Ich nutze einfach normale LED’s als Sensor. Die kannst du direkt an einem Analogport anschließen.
Da sehr schnell noch einen kleinen Kondensator parallel für Abgleich. Das ist alles.

Gruß
fredred

demmy
28.11.2014, 19:57
Hallo zusammen,

also ich möchte die Umgebungshelligkeit mit einem Lichtsensor bestimmen. Mhh ich würde schon gerne auf eine Genauigkeit < 5% kommen.
Wie genau wäre denn eine Fotodiode? Ich könnte die Schaltung ja im Prinzip genauso wie oben abgebildet nur mit einer Fotodiode statt eines LDR aufbauen oder?

Viele Grüße

peterfido
28.11.2014, 20:09
Der von mir verlinkte gibt aktuell einen Wert von 2 bei ganz dunkler LED-Effektbeleuchtung aus. (10 Bit) Er sitzt hinter einer Rauchglastür auf dem finsteren Balkon. Empfindlichkeit ist also da. Zumindest bei vollen 5 Volt. Möglich, dass er ab einer bestimmten Helligkeit nur noch die 1023 ausgibt. Da müsste ich mal tagsüber für gucken. Nur, ob ich da dran denke?

Schließlich soll er ja hier nur die Dunkelheit für die Beleuchtung erkennen. Der aktuelle Wert wird mir im Webfrontend angezeigt und so brauchte ich nur den Schwellwert im Programm ändern und neu flashen.

Die Genauigkeit bekommst Du wohl nur mit einer Umrechnungstabelle hin. Denn die Realität bietet mehr Abstufungen als 10 Bit ermöglichen.

29384

WL
29.11.2014, 08:21
Es gibt da auch fertige Sensoren (z.b. I²C > TSL45315).

3....220000Lux
z.b. http://www.watterott.com/de/TSL45315-Breakout

Besserwessi
29.11.2014, 10:16
Photodioden sind schon die genauere Wahl. Vor allem gibt es da welche (BPW21) gleich mit Filter, der die Empfindlichkeit relativ gut an das Auge anpasst. Sonst hat man beim LDR eine geringe Empfindlich bei rot und viel bei Grün. Dagegen hat eine Fotodiode ohne Filter eine hohe Empfindlichkeit bei rot und auch im nahen IR, aber eine geringere bei grün.

Das generelle Problem ist aber, das die Helligkeit über einen großen Bereich variieren kann, von etwa 1 Lx (Kerzenlicht) bis 100000 Lx in der Sonne. Das kann man mit dem 10 Bit ADC im AVR nicht vernünftig mit linearer Skalierung erfassen. Von daher ist das oben genannt IC schon nicht schlecht . Linear geht es für einen kleineren Bereich, etwa 50-1000 Lx

Der Strom einer Photodiode ist meist so klein, dass man ein Verstärkung braucht. Normal nimmt man einen Operationsverstärker als Transimpedanzverstärker.

Klebwax
29.11.2014, 11:50
Das generelle Problem ist aber, das die Helligkeit über einen großen Bereich variieren kann, von etwa 1 Lx (Kerzenlicht) bis 100000 Lx in der Sonne. Das kann man mit dem 10 Bit ADC im AVR nicht vernünftig mit linearer Skalierung erfassen. Von daher ist das oben genannt IC schon nicht schlecht . Linear geht es für einen kleineren Bereich, etwa 50-1000 Lx

Und genau da punktet ein LDR: er hat eine logarithmische Kennlinie. Und wenn man einen passenden Vorwiderstand wählt, braucht man auch keinen Verstärker. Einfacher und billiger gehts wirklich nicht.

MfG Klebwax

fredred
29.11.2014, 12:12
Hallo demmy,

LED's als Sensor.

probier es doch mal. Wirst doch die Bauelemente in deiner Bastelkiste haben. Ist doch auch schell mal zusammen gelötet. Erst mal reicht eine rote LED und 1n für Test..
Mit BASIC auch einfach zu testen. Ich mache es in zeherschritten.
Beispiel:
If Licht < 30 Then „ist es dungel“
If Licht >30 And Licht < 40 Then „bischen Licht“ usw.
Musst natürlich die einzelnen Schritte selber ermitteln(nicht linear)

29385
Ist primitiv aber für meine Anwendung völlig ausreichend.
Idee war, wenn LED Spannung benötigt um zu leuchten, warum nicht umgedreht. Licht erzeugt Spannung.
Da ADC – Eingänge sehr Hochohmig sind, ist keine weitere Beschaltung nötig
Fotodiode.
Solltest beachten Sonnenlicht , Glühbirne oder was auch immer, haben ein anderes Spektrum. Somit benötigst du auch eine passende Fotodiode für deine Anwendung.
Wenn nicht zufrieden, hattest ja keine Kosten gehabt. Dann nimm ein fertiges Modul, wie vorgeschlagen wurde, ist die beste Variante.

Mit freundlichen Grüßen
fredred

Besserwessi
29.11.2014, 12:56
So wirklich logarithmish ist die Kennlinie des LDR nicht: das hat man eher 1/R = 1/R0 + Const. / Helligkeit. Wenn man also eine konstante Spannung anlegt, hat man einen etwa zur Helligkeit proprotionalen Strom und einen gewissen Dunkelstrom dazu, fast so wie bei der Photodiode. Durch die Schaltung als Spannungsteiler bekommt man eine nichtlineare Kennlinie, so dass der Messbereich etwas größer wird - für den vollen Helligkeitsbereich reicht es trotzdem nicht aus, aber wenigstens ist die Erweiterung des Bereichs per Umschaltung mit 1 Widerstand und 1 IO Port sehr einfach.

Eine recht gut logarithmische Kennline bekommt man mit der Spannung an der Photodiode. Da muss man dann aber um etwa den Faktor 4 verstärken um auf 2,5 V zu kommen.

Eine LED wirkt auch nur einfach als eine Photdiode mit eher exotischem Material und damit anderer Empfindlichkeit, erst ab einer Schwelle die der Farbe entspricht.

Bei der Photodiode als Sensor bleibt noch die Möglichkeit den Strom über das Laden einen Kondensators auszuwerten - also etwa dass man die Zeit misst bis der Kondensator eine Spannung erreicht hat oder indem man nach eine Ladezeit die Spannung misst und so über die Zeit die Empfindlichkeit einstellen kann.

fredred
29.11.2014, 14:32
Hallo Besserwessi,


Eine LED wirkt auch nur einfach als eine Photdiode mit eher exotischem Material und damit anderer Empfindlichkeit, erst ab einer Schwelle die der Farbe entspricht.


Dein Hinweis ist völlig korrekt. Aber die Antwort fehlt. Möchte er unbedingt die Helligkeit in 100 lx Schritten auswerten oder nur etwas für „Hausgebrauch“ realisieren.

Gruß
fredred

Klebwax
29.11.2014, 19:41
also ich möchte die Umgebungshelligkeit mit einem Lichtsensor bestimmen. Mhh ich würde schon gerne auf eine Genauigkeit < 5% kommen.

So wirklich logarithmish ist die Kennlinie des LDR nicht: das hat man eher 1/R = 1/R0 + Const. / Helligkeit. Wenn man also eine konstante Spannung anlegt, hat man einen etwa zur Helligkeit proprotionalen Strom und einen gewissen Dunkelstrom dazu, fast so wie bei der Photodiode. Durch die Schaltung als Spannungsteiler bekommt man eine nichtlineare Kennlinie, so dass der Messbereich etwas größer wird - für den vollen Helligkeitsbereich reicht es trotzdem nicht aus, aber wenigstens ist die Erweiterung des Bereichs per Umschaltung mit 1 Widerstand und 1 IO Port sehr einfach.

Eine recht gut logarithmische Kennline bekommt man mit der Spannung an der Photodiode. Da muss man dann aber um etwa den Faktor 4 verstärken um auf 2,5 V zu kommen.

Eine LED wirkt auch nur einfach als eine Photdiode mit eher exotischem Material und damit anderer Empfindlichkeit, erst ab einer Schwelle die der Farbe entspricht.

Bei der Photodiode als Sensor bleibt noch die Möglichkeit den Strom über das Laden einen Kondensators auszuwerten - also etwa dass man die Zeit misst bis der Kondensator eine Spannung erreicht hat oder indem man nach eine Ladezeit die Spannung misst und so über die Zeit die Empfindlichkeit einstellen kann.

Irgendwie kommt mir da der Begriff overengineerd (https://de.wikipedia.org/wiki/Overengineering) in den Sinn.

MfG Klebwax

demmy
30.11.2014, 11:31
Guten morgen zusammen,

also zunächst einmal. es soll / muss keine hochpräzise Messung werden. Nur so genau wie es ohne großen Aufwand möglich ist.

Zu meinem Aufbau, leider ist der Platz auf meiner Platine extrem beengt, deswegen suche ich eine ganz simple Schaltung, mit möglichst wenig Teilen. Ich habe keine Problem damit, den Lichtsensor Softwareseitig abzugleichen, mit einem Offset z.B. , dafür wär aber ein möglichst linearer Verlauf von Vorteil. Wäre da nicht ein LDR die optimalere Wahl?

Leider habe ich keine I2C Pins mehr frei, deswegen muss ich wohl auf eine Analoge Lösung ausweichen.

PICture
30.11.2014, 12:08
Hallo!


Zu meinem Aufbau, leider ist der Platz auf meiner Platine extrem beengt, deswegen suche ich eine ganz simple Schaltung, mit möglichst wenig Teilen. Ich habe keine Problem damit, den Lichtsensor Softwareseitig abzugleichen, mit einem Offset z.B. , dafür wär aber ein möglichst linearer Verlauf von Vorteil. Wäre da nicht ein LDR die optimalere Wahl?

Natürlich ist ein LDR + Widerstand dafür optimal, weil es bei µC per "look-up table" beliebig linealisiert und für Umgebungslicht korriegiert werden kann.

fredred
30.11.2014, 12:47
Hallo demmy,

hatte doch eine simple Lösung beschrieben, wie du dies mit Analog realisieren kannst.
#15
Für einen sauberen linearer Verlauf, benötigst du schon einigen Aufwand.
Möchtest du nur z.B. 20 Lichtverhältnisse abfragen, hat sich meine Lösung gut bewärt.
Natürlich bei längerer Leitung noch ein Transistor als Stromtreiber nachgeschaltet.
Wie beschrieben LDR sind schon gut, wenn nicht so extrem Temperatur abhängig.

Mit freundlichen Grüßen
fredred

WL
30.11.2014, 14:36
Leider habe ich keine I2C Pins mehr frei..................

Dann eben Soft-I²C ! ;)

fredred
30.11.2014, 16:37
Hallo WL,

wie, wenn er auch keine freie Digitalports mehr hat?
Für mich als Bus- Fan sind die I2C Hardwarebins „heilig“, um noch ein paar 8 Digitale, Analoge, EEprom oder Sensoren „anzuflickten“ auch LCD.
Ist nicht nur kostengünstiger, bin auch viel flexibler für Projekterweiterung.
Siehe meine Demosoftware „Bus-Modul-0“. Dort werden einige der erwähnten I2C µC in einer Schleife abgefragt.
Ohne Timing Probleme.

Gruß
fredred

Thomas$
30.11.2014, 17:47
kapitel 3
http://reaktivlicht.de/kochbuch.pdf

demmy
02.12.2014, 17:43
Hi,

zunächst mal vielen Dank für die vielen Ideen und Beiträge.
Ich werde jetzt mal in die Experimentierphase übergehen und mal ausprobieren, welche von euch vorgeschlagene Variante für mich am praktikabelsten ist.

Ich melde mich dann wieder wenn ich Ergebnisse präsentieren kann.

Wenn ihr in der Zwischenzeit noch weitere Ideen habt, als her damit! :)

demmy
27.01.2015, 17:36
Hallo zusammen,

ich muss das Thema nochmal aufgreifen. Ich habe jetzt für die Messung der Helligkeit einen NSL-19M51 verwendet und die Schaltung so aufgebaut:

29680

Für meine Zwecke ist die Schaltung so absolut ausreichend und die Teile hab ich alle da.

Den Spannungsteiler hab ich drin weil ich wie gesagt mit 2,56V Referenzspannung arbeite.

Auf jeden fall grüble ich jetzt schon eine Weile wie ich Spannung wenigstens halbwegs vernünftig einen Luxwert umrechnen kann.
Ich habe irgendwie das Gefühl nur mit den Angaben aus dem Datenblatt komm ich da nicht so recht weiter.

Ich würde es wirklich gerne mal Schritt für Schritt rechnen um es dann auch zu verstehen, also nicht einfach nur per lookuptable irgendwelche Werte ableiten.

Könnt Ihr mir da helfen?