Derzeit versuche ich, mit einer Fotodiode (SFH 203) zu arbeiten, die sehr kleine Lichtmengen erkennen soll. Mit dem Digital eines Arduino kann die Fotodiode den Pin aufgrund des geringen Lichtpegels nicht auf 1 drehen. Wenn ich Licht mit einem analogen Stift messe, erhalte ich einen Wert von 25-30.
Gibt es eine Möglichkeit, den digitalen Wert mit einer kleinen Lichtmenge auf 1 zu bringen?
Soweit ich weiß, arbeiten Fotodioden "rückwärts". Das heißt, sie erzeugen einen Stromfluss von der Kathode zur Anode , so in Ihrem Schaltplan ist wahrscheinlich umgekehrt. Auf diese Weise findet keine Lichterkennung statt, ich denke, es fließt immer Strom durch den Stromkreis.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Das obige Schema ist mein Versuch, das zu minimieren, was für die Digitalisierung der PD-Ausgabe erforderlich ist. Es stützt sich auf die aktuelle Verstärkung (Beta) von rund 100 Transistor. sollte genug sein, um zu verursachen fließt durch den Kollektor-Emitter-Übergang. ist einfach ein Pull-up, der besagt, dass der Ausgang bei Dunkelheit HIGH ist. dann zieht es niedrig-ish, wenn wird ausreichend beleuchtet.
Zur Feinabstimmung der Empfindlichkeitsschwelle können Sie versuchen, sie anzupassen (oder möglicherweise durch ein Potentiometer ersetzen.)
Fühlen Sie sich frei, auf Fehler hinzuweisen, die ich gemacht habe.
Das Datenblatt zeigt die Empfindlichkeit der Fotodiode mit 9,5 uA pro 1000 Lux.
Jetzt weiß ich nicht, was für Sie als "schwaches Licht" gilt, aber versuchen wir 10 Lux als vernünftigen Schaltpegel - an diesem Punkt erzeugt die Fotodiode 95 nA. Nicht sehr viel ... wie ist es im Vergleich zum Dunkelstrom? Nun, das ist mit <10 nA angegeben, sodass 95 nA deutlich über dem Dunkelstrom liegen.
Wir wollen also den Arduino-Eingang auf 1 (dh > 2,5 V) mit einem Strom von 95 nA setzen. Wenn Sie die LED für den Moment vernachlässigen (sie leuchtet sowieso auf keinen Fall auf), können Sie dies einfach tun, indem Sie R1 durch R = 2,5 / 95e-9 = 27 Megaohm oder so ersetzen.
Wenn der Leckstrom des Arduino-Eingangspins viel größer als 10 nA ist, ist dies nicht genau, und wenn er größer als 100 nA ist, funktioniert es möglicherweise überhaupt nicht, oder der Schaltpegel kann etwas stark von 10 Lux abweichen, aber Sie haben es nicht habe das entsprechende Datenblatt gepostet, so dass ich das nicht überprüfen kann.
(und wie John D betont, schließen Sie die Fotodiode richtig herum an!)
Der SFH203 hat laut Datenblatt einen λS max
Empfindlichkeitsbereich von 850-900 nm, was dem nahen Infrarotbereich entspricht . Es ist weniger empfindlich (bis zu 10 % des Maximums) bei sichtbaren Lichtfrequenzen. Es ist eine Empfindlichkeitstabelle enthalten. Wenn Sie also eine blaue LED für Licht verwenden, kann dies den gesamten Empfindlichkeitsverlust erklären. Verwenden Sie eine 875-nm-Near-IR-LED, die viel empfindlicher ist.
Oder wenn Sie bereits eine 875-nm-LED verwenden und diese immer noch nicht empfindlich genug ist, müssen Sie einen Operationsverstärker wie einen dieser verwenden, um die Verstärkung zu erhöhen.
In Ihrer Schaltung würde der 10k-Widerstand den Strom in der (normalen) LED auf einen so kleinen Wert begrenzen, dass er wahrscheinlich nicht einmal Licht emittieren würde. Außerdem erzeugen Fotodioden einen winzigen Rückstrom , wenn sie an Licht emittiert werden, keine Vorwärtsleitfähigkeit. Werfen Sie einen Blick auf diesen Beitrag für eine andere Möglichkeit, die Fotodiode zu implementieren.
Wie im Datenblatt angegeben, kann der SFH 203 nur etwa 10 Mikroampere Strom liefern.
Ihre LED allein zieht mehr Strom als das.
Der Arduino-Eingang sollte mit den 10µA zufrieden sein. Entfernen Sie Ihre LED und R1.
Wenn es immer noch nicht funktioniert, müssen Sie die Fotodiode möglicherweise mit einem Transistor puffern, um den Strom zu erhöhen.
Dzarda
Sathees
Sathees
John D