Forum: Mikrocontroller und Digitale Elektronik Kunstlichtdetektor per Photodiode an ESP32


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Benjamin K. (krizdev)


Bewertung
0 lesenswert
nicht lesenswert
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.

von HildeK (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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 ...

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
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?

: Bearbeitet durch User
von . . (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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

von Wolfgang (Gast)


Bewertung
1 lesenswert
nicht lesenswert
.                                                . 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.

von Olaf (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

von Benjamin K. (krizdev)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> 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

von Benjamin K. (krizdev)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
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.

von Benjamin K. (krizdev)


Bewertung
-1 lesenswert
nicht lesenswert
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.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> 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

von georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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

von ÄXl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Stefan ⛄ F. (stefanus)


Bewertung
1 lesenswert
nicht lesenswert
Ä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.

von Benjamin K. (krizdev)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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)??

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
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.

: Bearbeitet durch User
von ÄXl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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)

von ÄXl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
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...

von ÄXl (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
mit zwei Transistoren den Kunstlichtanteil verstärken ;)

von ÄXl (Gast)


Bewertung
0 lesenswert
nicht lesenswert
...schien ja sooo wichtig nicht gewesen zu sein...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.