PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PIC mit LDR



avoid
06.04.2009, 17:18
ich habe einen PIC (mit PICAXE firmware) und daran einen LDR.
ich habe damit eine Dämmerungsschaltung für meine Lamellenvorhänge
realisiert und nun will ich mehr.

ich bin gerade dabei mit einem LCD Display und tastern ein steuer-terminal zu erstellen um das automatische öffnen und schließen zu konfigurieren.

-Auf dem Display soll der aktuell gemessene Lux-wert zu lesen sein.
-mit tastern soll die schwelle zwischen tag und nacht einstellbar werden.

jetzt ist als erstes die frage wie ich den messwert vom LDR der an einem eingang des PIC liegt nutze.
sinnvoll wird es sein ihn erst mal als variable ab zu legen.
aber wie bekomme ich dann daraus den Lux wert,
der am ende vom programm mit der voreinstellung verglichen werden soll?

ich hoffe das sich hier der eine oder andere mit PICAXE aus kennt.
p.s. die werden mit Basic programmiert nicht in assambler.

praktisch wäre es, wenn ich die display ausgaben erst mal am PC sehen könnte.
ich teste gerade "serxtd" um über die usb-programmer leitung im terminal daten zu sehen.

Besserwessi
06.04.2009, 18:23
Der LDR ist ein variabler Widerstand. Den kann man auf 2 Methoden Auswerten. Die klassische ist als Spannungssteilet mit einem Vergleichswiderstand an einen AD Eingang.
Die Alternative ist es mit dem LDR ein RC Glied aufzubauen, und die Reaktionszeit zu messen.

PICture
06.04.2009, 19:21
Hallo!

Um die Lichtintensität in Lx zu haben, am einfachsten wäre eine Tabelle (look up table) im EEPROM bzw. Flash abzulegen, die der Variable (gemessene Spannung) entsprechenden Wert in Lx zuweist.

MfG

avoid
07.04.2009, 01:54
d.h. ein LDR funktioniert wie ein wiederstand dessen wert sich bei licht-einfall ändert?
also kann ich z.b. die spannung die er bei voller licht einstrahlung durch läßt, als heller sonnentag (100.000 Lux) in eine variable ablegen?
und mit anderen messwerten genau so verfahren?

ich dachte es gibt ne formel mit der ich spannungen in lux (lichtstärke) umrechnen kann.

wikipedia hilft mir da leider nicht weiter, da ich weder einen abstand zur lichtquelle, raumwinkel noch beleuchtete fläche habe.
mein LDR kuckt aus dem fenster in die sonne.

PICture
07.04.2009, 06:46
Hallo!

@ avoid

Alle deine Fragen kann ich mit ja beantworten.

Es gibt leider keine universelle Formel für alle mögliche Lichtsensoren. Der Abstand zur Lichtquelle ist das einzige was man sehr einfach messen kann. Für Punktquellen, wenn das ganze Licht auf die Messfläche fällt, ist der Raumwinkel unwichtig. Die Lichtempfindliche (aktive) Fläche ist meistens im Datenblatt angegeben. Wenn nicht, muss man so einen Sensor nehmen, für den man ein Datenblatt mit genügend Daten hat.

Um ein genaues Messgerät zu bauen muss man ihn kalibrieren mit einer genaueren Referenz als er selber ist. Dafür könnte man einen kaliebrierten Messgerät bzw. definierte Signalquelle nutzen.

Wenn man keine Werte in konkreten Einheiten braucht, kann man sich selber eine Referenz einnehmen und eigene relative Einheiten definieren.

Die LDRs haben meistens unlinearen Verlauf des Widerstands mit der Änderung der Lichtintensität, aber sie lässt sich mit Änderung des Abstandes von immer gleicher Lichtquelle ermitteln. Und wenn der Verlauf schon bekannt ist, reicht es eine Kalibration mit nur einem Wert.

Wenn die Funktion R = f (I) im Datenblatt angegeben ist, ist es natürlich einfacher und nach der Messung des Widerstands kann man schon entsprechende Lichtintensität (I) ablesen.

MfG

avoid
07.04.2009, 11:58
beim hersteller des LDR hab ich leider kein datenblatt gefunden.
dafür bei reichelt ein par deteils.

Produktbeschreibung:
Lamda Peak: 530nm
Pmax: 90mW
Vmax: 150V
Top.: -20 - +70°C

Widerstand bei E=10 Lux: 70 - 200 kOhm
Widerstand bei 1 sek Dunkelheit: 1,0 MOhm
Widerstand bei 5 sek Dunkelheit: 3,0 MOhm
Ton : 40ms
Toff : 30ms

Hersteller: PERKIN ELMER
Artikel: A 905014 Fotowiderstand

ich glaub damit hab ich zumindest schon mal richtwerte.

Besserwessi
07.04.2009, 17:53
Die nichtlineare Kennlinie ist ein Grund, warum man LDRs nur selten für wirkliche Messungen nimmt. Die Vorteile des LDRs sind das relativ große Signal auch ohne Verstärker und die fehlende Empfindlich keit auf IR-Licht, so dass man näher an der Empfindlichkeit des Auges ist als mit einfachen photodioden. Dafür aber die nichtlineare und temperaturabhängige Kennlinie.

Für eine Messung besser geeignet wäre ein Fotodiode mit einem passenden Filter. Das gibt es auch schon als fertige Kombination z.B. als BPW21 , sogar mit Anpassung an die Empfindlchkeit des Auges.

avoid
07.04.2009, 19:57
für eine profi schaltung hast du sicher recht.
aber wozu soll ich mir eine BPW21 für ca. 9Eur kaufen,
wenn ich schon einige standart LDR für 44Cent das stück zuhause habe.

ich denk mal ich bekomm das schon hin.
mein programm muß ja nicht 100% genau arbeiten.
sondern soll nur zwischen tag/nacht und direckter
sonnen einstrahlung unterscheiden können.
damit die schaltung meine Lamellenvorhänge auf und zu bewegt.

das macht sie ja jetzt schon, aber nur durch einen poti der den schwellwert vorgibt.

-----------zusatz------------
aktuell bekomme ich einen wert zwischen 0(0V) und 255(5V) im PIC.
das ist schon mal ein übersichtlichs raster dem ich einfach lux werte zuweisen kann.

cni
23.07.2009, 19:59
Hallo avoid,

hast Du denn mittlerweile schon ein laufendes Programm, das Dir die lux Werte umrechnet?
Würde mich auch interessieren.
Ich habe auch einen Fotowiederstand am ADC eines AVR und bekomme Werte zwischen 1025 (5 V) und 1 (0 V):
http://www.haeussler.name/blogs/hobby/wp-content/uploads/sun48h-300x227.jpg
Doch wie rechnet man das nun in Lux um?

hm_heli
23.07.2009, 20:31
Doch wie rechnet man das nun in Lux um?

gar nicht!
Ich hoffe, die Cracks geben einem Neuen (Hallo übrigens!) recht.
Ich würde mir ein Luxmeter von einem (Hobby)-Fotografen leihen und sagen wir mal 5 bis 10 verschiedene Helligkeiten mit dem Luxmeter messen und diese Werte zusammen mit den Sensorwerten in eine Tabelle eintragen. Im Programm dann die Tabelle abzufragen ist dann ja "piece of cake".
Good Luck!

avoid
23.07.2009, 21:22
programm hab ich keins gefunden.
doch die tabelle im datenblatt kann für sowas verwurschtet werden.
formel is bei wikipedia

cni
23.07.2009, 21:59
OK, welche Einheit benutz man nun, um die Sonneneinstrahlung zu messen, also welche Messeinheit ist das (Lux, Lumen, mcd)?
Ziel ist, die Sonneneinstrahlung in ein Gewächshaus grob zu messen und auszugeben.

avoid
23.07.2009, 22:51
I: Lichtstärke (Candela)
α: Öffnungswinkel (Grad)
Ω: Raumwinkel (Steradiant)
Φ: Lichtstrom (Lumen)
A: Beleuchtete Fläche (m²)
r: Abstand zur Lichtquelle (m)
E: Beleuchtungsstärke (Lux)


steht alles auf http://de.wikipedia.org/wiki/Lux_(Einheit)
ich hab mir nur bis heute nicht die arbeit gemacht.
sowas zu programmieren.

Candela ist die Lichtstärke direckt an der lichtquelle.
Lux ist die Lichtstärke in einer bestimten entfernung.
z.b. zur sonne ;)

meine Lammellen vorhang steuerung macht folgendes:


readadc 0, b4
if b4 <= 110 then gosub zudrehen
if b4 > 110 and b4 < 140 then gosub warten
if b4 >= 140 and b4 < 220 then gosub aufdrehen


null ist der pin an dem mein LDR steckt.
der wert der vomm ldr gemessen wird (zwischen 0 und 255)
sagt an ob se dunkel oder hell ist.
morgens und abens (in der dämmerung) war der wert immer zwischen
110 und 140 darum hab ich diesen bereich als warten
definiert.
damit die schaltung sicher sagen kann ob es tag oder nacht ist.

mittlerweile habe ich sogar ncoh weitere zwischen schritte
z.b. wenn die zimmer beleuchtung auf den sensor trifft
oder die sonnen direckt ins fenster knallt.
aber mit formel und lux wert is mir das zu schwer.
bin kein theoretiker ^^ darum finde ich mich mit dem bytewert bsi 255 ab.