Guten Tag Zusammen.
Da ich in meinem aktuellen Projekt scheinbar ohne Hilfe nicht
weiterkomme wechsle ich hiermit vom passiven Nutzer zum aktiven
Fragesteller und bitte um Rat.
Eins vorweg: ich komme aus der Informatik und habe die Elektrotechnik im
Studium nur angeschnitten. Bitte seid daher geduldig mit mir, was
bestimmt vorkommende fehlerhafte Formulierungen meinerseits angeht.
Zum Thema:
Ich möchte meinen ESP32 basierten Umgebungssensor um einen
"Kunstlichtdetektor" erweitern. Präziser gesagt, möchte ich per
Photodiode die >=100Hz in eine (beliebige) Spannung umwandeln, die ich
dann am analogen Eingang des ESP detektieren kann. Die Spannungshöhe ist
tatsächlich beinahe egal, da ich wirklich nur wissen muss, ob das
künstliche Licht eingeschaltet ist, oder eben nicht.
Was ich habe:
1
VCC
2
+
3
|
4
|
5
\>|/
6
\>| LTR-301 (habe kein geeignetes Symbol im AACircuit gefunden)
7
|>
8
| ___
9
o--|___|----.
10
| 10k |
11
| ===
12
| GND
13
o <- Messpunkt Oszilloskop
Sobald ich das Oszilloskop auf AC stelle bekomme ich eine (mehr oder
weniger) schöne Sinuskurve sobald ich das Licht einschalte. Schalte ich
das Licht aus (oder bedecke den Sensor) verschwindet der Ausschlag.
Was ich brauche:
Statt dem Oszilloskop soll wie oben bereits erwähnt der ESP32 dort
angeschlossen werden. Einfach die Frequenz messen geht leider nicht, da
moderne Vorschaltgeräte in Energiesparlampen weit mehr als die 100Hz
schaffen. Der Sensor sollte theoretisch schnell genug sein, die maximale
Auflösung des ESP32 reicht dann aber evtl nicht mehr aus. Daher die
Idee, das ganze per Operationsverstärker in eine Spannung umzuwandeln,
die ich dann am ESP32 als "High" sehe. Ich möchte halt wirklich nur
wissen, ob künstliches Licht eingeschaltet ist oder eben nicht.
Vielen Dank im Vorfeld für jede Hilfe!
[PS]
Im Beitrag "Lichtsensor und 100Hz Filter" wird von TravelRec
eine ähnliche Lösung angesprochen. Leider nur in der Theorie.
Benjamin K. schrieb:> Sobald ich das Oszilloskop auf AC stelle bekomme ich eine (mehr oder> weniger) schöne Sinuskurve sobald ich das Licht einschalte.
Eigentlich müsstest du 100Hz Halbwellen bekommen. Sieht aber fast aus,
wie ein 'weniger schöne' Sinuskurve.
Der Ansatz ist grundsätzlich nicht ganz falsch. Wie groß ist die
Spannung, die du misst?
Besser wäre es, den Arbeitswiderstand in den Kollektorkreis zu nehmen,
dann sollte die Spannung schon mal größer sein.
Außerdem: Hast du keine Probleme mit Gleichlicht (Tageslicht z.B.) Denn
dann müsste die Schaltung noch Hochpassverhalten haben, um den
Gleichanteil auszufiltern.
Wie schnell muss sie reagieren? Wenn das nur 'schnell' nach menschlichem
Reaktionsvermögen sein muss, etwa so:
1
VCC
2
+
3
|
4
.---------o---o-----
5
| | |
6
.-. | .-.
7
| | --- | |
8
22k | | 1µF --- | | 47k
9
'-' | '-'
10
| | |
11
o---|<----o---o----> ESP
12
>|/ D
13
>|
14
>|>
15
|
16
|
17
|
18
===
19
GND
20
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
VCC sollte der Versorgung des ESP entsprechen.
Die 47k/1µF Kombination sollte das pulsierende Licht glätten, das kann
man aber auch per Software machen. Dann kannst du direkt an den
Kollektor gehen und die beiden und die Diode entfallen.
Eine Gleichlichtsperre habe ich nicht drin ...
Du brauchst einen Hochpass, um Frequenzen unterhalb einer gewissen
Schwelle (z.B. 50Hz) zu unterdrücken. Danach wandelst du das Signal mit
einem Präzisionsgleichrichter in DC und glättest es mit einem Tiefpass.
Ich fürchte aber, dass dein Lösungsansatz am Ziel vorbei geht, denn
Kunstlicht erkennt man nur selten an seiner Frequenz. Jede LED Lampe die
nicht vollkommen meschugge konstruiert ist, flimmert eben nicht.
Noch etwas: Ist Dir bewusst, dass der analoge Eingang des ESP bis zu 20%
falsch misst, wenn die WLAN Schaltkreise aktiv sind?
Der Ansatz ist schon verkehrt.
Ein bessere Variante währe, das alter der Photonen zu messen. Das
braucht nichtmal sehr genau zu sein. weil Kunstlicht aus
"astronomischer" Sicht immer aus relativer Nähe kommt, also weniger als
0.5 Sekunden alt ist. Natürliches Licht konnt von der Sonne und ist auf
Grund der Entfernung mindestens 8 Minuten alt.
Wow, dafür krieg ich den Nobelpreis. :D
. . schrieb im Beitrag
#5595538:
> Wow, dafür krieg ich den Nobelpreis. :D
Die Unterscheidung zwischen Sonnenlicht und Kunstlicht haben Fraunhofer
und Wollaston unabhängig schon 1802 bzw. 1814 gelöst.
Probier mal die Schaltung im Anhang aus.
Mit R1 kannst du rumspielen um die Empfindlichkeit einzustellen.
Als Diode sollte so ziemlich jede Photodiode funktionieren.
Olaf
Olaf schrieb:> Probier mal die Schaltung im Anhang aus.> Mit R1 kannst du rumspielen um die Empfindlichkeit einzustellen.> Als Diode sollte so ziemlich jede Photodiode funktionieren.
Ich gestehe, dass ich mit LTSpice nicht wirklich vertraut bin aber wenn
ich das simuliere bekomme ich dort ein Rechtecksignal in Abhängigkeit
von der "Lichtfrequenz". Das wäre dann etwas am Ziel vorbei, ich brauche
ja konstant "high" bei detektierter Frequenz und konstant "low" sobald
keine Frequenz feststellbar ist.
> Das wäre dann etwas am Ziel vorbei, ich brauche> ja konstant "high" bei detektierter Frequenz und konstant "low" sobald> keine Frequenz feststellbar ist.
Wenn die Schaltung aber ueberhaubt auf eine Aenderung reagieren soll
dann muss sie doch ganz offensichtlich auch eine Frequenz durchlassen
oder? .-)
Jetzt kann es natuerlich sein das du nur Aenderungen im 1-5Hz Bereich
registrieren willst, aber durch mies designte Led-leuchten immer 100Hz
drauf hast. Dann hast du zwei Moeglichkeiten. Entweder du machst die
Schaltung durch geschicktes anbringen eines Kondensators langsamer, oder
du haengst noch ein Monoflop dahinter.
Olaf
Stefanus F. schrieb:> Du brauchst einen Hochpass, um Frequenzen unterhalb einer gewissen> Schwelle (z.B. 50Hz) zu unterdrücken. Danach wandelst du das Signal mit> einem Präzisionsgleichrichter in DC und glättest es mit einem Tiefpass.
Ähnliche Worte hat auch der E-Techniker hier im Haus genuschelt, bevor
er für 3 Tage verschwand. Dabei hat er noch die beigefügte Schaltung auf
ein Papier gekritzelt. In der Simulation passiert ja dann auch ganz toll
was, allerdings bekomme ich auch hier kein klares An/Aus Signal.
> Ich fürchte aber, dass dein Lösungsansatz am Ziel vorbei geht, denn> Kunstlicht erkennt man nur selten an seiner Frequenz. Jede LED Lampe die> nicht vollkommen meschugge konstruiert ist, flimmert eben nicht.
Das ist vernachlässigbar. Im aktuellen Einsatzfeld werden nur
Leuchtstoffröhren und/oder Kompaktleuchtstofflampen eingebaut sein.
> Noch etwas: Ist Dir bewusst, dass der analoge Eingang des ESP bis zu 20%> falsch misst, wenn die WLAN Schaltkreise aktiv sind?
Ist mir tatsächlich neu und so auch noch nicht aufgefallen. Bezieht sich
das auf einen speziellen Eingang? Es sind ja reichlich dynamisch
verwendbare IOs vorhanden und 20% würde immerhin bedeuten, dass jedes
5te Eingangssignal fehlerhaft ist.
Olaf schrieb:> Wenn die Schaltung aber ueberhaubt auf eine Aenderung reagieren soll> dann muss sie doch ganz offensichtlich auch eine Frequenz durchlassen> oder? .-)
hehe, i see what you did there. ;)
In dem Fall würde ich aber behaupten, dass eine Frequenz per Definition
eine periodisch wiederkehrende Abfolge darstellt. Die Photodiode
registriert also die Frequenz (sagen wir mal >50Hz) und in dem Fall soll
ein Ausgang "High" geschaltet werden. Alles unter 50Hz (oder oberhalb
der Dioden-Trägheit) soll "Low" ausgegeben werden.
> registriert also die Frequenz (sagen wir mal >50Hz) und in dem Fall soll> ein Ausgang "High" geschaltet werden. Alles unter 50Hz (oder oberhalb> der Dioden-Trägheit) soll "Low" ausgegeben werden.
Sowas nennt der studierte Fachmann einen Tiefpass. Nur damit du weist
nach was du suchen musst. :)
Leider haben solche Filter auch immer ein gewisses Uebergangsverhalten.
Daher mein Vorschlag mit dem Monoflop. (z.B CD4538)
Olaf
Benjamin K. schrieb:> und/oder Kompaktleuchtstofflampen eingebaut sein
Und wenn ein umweltbewusster Hausmeister bei einem Defekt die durch LED
ersetzt war die ganze Mühe umsonst. Nachhaltig und zukunftsfähig geht
anders.
Georg
Du braucht nen Hochpass mit 100hz und nen integrierer mit 0.5Hz. fertig.
ist jetzt kein Hexenwerk. Schade, dass alle nur irgendwelche komischen
KOmmentare da lassen. Schaltung aufbauen, testen. wenn es dann nix wird,
kann man immernoch über alternativen nachdenken.
ÄXl schrieb:> Du braucht nen Hochpass mit 100hz und nen integrierer mit 0.5Hz.
Das wurde ja auch schon mehrfach empfohlen. Nur kann der TO damit nichts
anfangen. Dann muss er halt lernen oder sich ein anderes Hobby suchen.
Ok.
Die Begriffe Hochpassfilter, Präzisionsgleichrichter und Integrierer
haben mir scheinbar geholfen.
Beigefügt mal die Schaltung, die ich jetzt daraus gebastelt habe. Ich
wäre sehr dankbar, wenn irgendein Profi da mal drüber schauen könnte und
mir sagen kann was ich daran noch verbessern könnte.
Der AC-Eingang (3V Gleichspannungsanteil, Maximalspannung 0.3V)
simuliert die Photodiode bzw. das Signal, dass ich mit dem Oszi an der
realen Photodiode messen kann. Sobald ich am Schalter auf DC 3V3 wechsle
(Tageslicht) hab ich am hinteren Ausgang kein Signal mehr, was genau dem
gewünschten Resultat entspricht. ALLERDINGS scheine ich da mit dem
Hochpassfilter was falsch gemacht. Am ersten Testpunkt wird mir das
Frequenzsignal ohne den Gleichspannungsanteil ausgegeben. Dies geschieht
jedoch auch bei extrem niedrigen Frequenzen von 1Hz. Hab ich da die
Kombi Widerstand/Kondensator einfach falsch dimensioniert???
@ÄXl: Ja, das mit den unkonstruktiven Kommentaren hat mich auch
enttäuscht. Im besonderen, dass meine eigenen Beiträge in denen ich
Rückfragen stelle bzw. auf gesagtes Bezug nehme, von irgendjemandem
"down-voted" werden. Aber so ist das hier wohl.
@Stefanus F.: Du sagtest ja, dass es beim ESP32 eine recht hohe
Fehlerquote bei eingeschalteter WLan Funktionalität auf den analogen
Eingängen gäbe. Könntest du mir da genauere Informationen zu geben? Wo
kann ich diese Werte validieren? Gilt das nur bei speziellen GPIOs (die
GPIOs des ESP32 lassen sich ja dynamisch mit Funktionen beschalten)??
Benjamin K. schrieb:> @Stefanus F.: Du sagtest ja, dass es beim ESP32 eine recht hohe> Fehlerquote bei eingeschalteter WLan Funktionalität auf den analogen> Eingängen gäbe. Könntest du mir da genauere Informationen zu geben?
Laut Datenblatt des ESP8266 sind bis zu 20% Abweichung der Messung vom
realen Wert genannt. Das haben die aber sehr gut im Kleingedruckten
versteckt, und dann auch noch in einem Absatz, wo garantiert niemand
gezielt danach suchen würde.
Was den ESP32 angeht habe ich in Diskussionen gelesen, dass die analogen
Eingänge neben den Stromversorgungs- und Flash Speicher Pins am
stärksten betroffen seien.
Schliess mal zuerst deinen Fototransistor über 4.7K an deine
Betriebsspannung an (Emitter an masse und kollektor über die 4.7k an
Plus)und miss bei normaler Helligkeit die Gleichspannung am Kollektor.
Den 4.7 K korrigierst du so, das die Spanung in etwa der halben
Betriebsspannung liegt.
Je nach Ausmesstyp des Transistors fliessen hier zwischen 500µA uns 2mA.
Nehmen wir 1mA an ca. so sind das bei 3.3V/2 = 1.15V/1E-3 ca. 1.1Kohm
Leider fällt bei diesem kleinen Widerstand die Spannungsänderung bei
kleinen Änderungen Der Stromstärke entsprechend klein aus. Besser wären
10K. oder eine höhere Betriebsspannung, um die Empfindlichkeit zu
erhöhen.
Der AC-Anteil muss also auf jeden Fall noch verstärkt werden...
1
.----------o----o-----o 3.3V
2
| 100nF| |
3
.-.4.7k | |+
4
| |<--. --- === 47µF
5
| | | --- /-\
6
'-' | | |
7
>> | | | |
8
,´ o----' === ===
9
' | GND GND
10
| |
11
| .-.470 Messp1 DC+AC
12
| | | .-----------------o
13
| | | | 1/(2pi x R x C)
14
| '-' | 33nF
15
ca. 1V | | || Messpunkt2 AC
16
' ->> o--o---||----o-------o
17
| || | HP 50Hz
18
| |
19
|/ .-.
20
-| | |
21
|> | |47K
22
| '-'
23
| |
24
| |
25
'------------o-------o GND
26
|
27
===
28
GND
29
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Achso: Du hast garkeinen LTR-301, sondern eine Photodiode? hmm - hier
muss dann der Diodenstrom aber auch in eine Spannung gewandelt werden.
Musst Du halt sehen, wie hoch der Dunkelstrom ist und wie hoch bei
Ausleuchtung. Dass Du auf der Kennlinie bleibst und nich am Anschlag
oben oder unten...