Fotodiodo casi sin mV en el puerto analógico

Así que compré un fotodiodo , que tengo la intención de conectar al puerto analógico de mi Arduino, para poder medir las diferencias en la luz que capta el fotodiodo.

Me di cuenta de que cuando no conecto a tierra el fotodiodo, obtengo muchos mV que van desde 2600 mV a 5400 mV cuando mido con mi multímetro. Obviamente, sin embargo, no puedo suministrar mis puertos analógicos con 5.4v o posiblemente más, ya que destruiría el Arduino.

Luego traté de conectar a tierra mi ánodo con la salida justo antes de la resistencia de la siguiente manera:

esquemático

simular este circuito : esquema creado con CircuitLab

Desafortunadamente ahora, no me acerco a nada con una resistencia de 10kΩ. incluso con 40 kΩ, la salida no es nada de lo que presumir: al menos esperaría algo en el rango de 1000 mV, pero apenas obtengo 200 mV.

¿Qué está pasando aquí? ¿Estoy haciendo algo mal?

Respuestas (4)

Falta una especificación de precisión.
Como han señalado otros, la corriente de fuga de su pin de entrada Arduino probablemente limita la precisión, especialmente para mediciones con poca luz. La corriente de fuga del fotodiodo es probablemente menor que la de Arduino, pero también afecta la precisión con poca luz. Las corrientes de fuga se ven muy afectadas por la temperatura.

Si está utilizando un convertidor de analógico a digital, aumente la resistencia de detección de corriente a un valor grande para mejorar la sensibilidad, pero tenga en cuenta que las resistencias de gran valor, aunque son bastante estables a la temperatura, hacen que las corrientes de fuga de temperatura variable afecten la precisión. un mayor grado.
Si solo le interesan los cambios en el nivel de luz , entonces, en una primera aproximación, puede calibrar las compensaciones causadas por fugas al tomar una lectura de referencia de luz cero como referencia almacenada y medir los cambios en el nivel de luz desde ese punto. Un cambio en la temperatura puede requerir una nueva lectura de referencia.

Considere también el nivel máximo de luz que prevé. Esto establecerá el valor máximo de la resistencia de detección de corriente... a medida que el voltaje a través de la resistencia se acerca a +5 V, el voltaje del diodo disminuye: el voltaje detectado ya no es proporcional a la intensidad de la luz.

Un requisito para la detección de rango muy amplio (tanto en situaciones de poca luz como de mucha luz) podría sugerir cambiar varios valores de resistencias de detección de corriente. Se puede programar un pin de E/S adicional para un estado lógico bajo, o bien un estado de alta impedancia donde su resistencia adjunta está desconectada. Pero ahora la fuga proviene de dos pines de E/S :

esquemático

simule este circuito : esquema creado con CircuitLab
En este circuito, la alta sensibilidad se logra programando el pin de E/S para que sea de alta impedancia, de modo que R2 (100k) no esté conectado. R1 (10Meg ohm) es la resistencia de detección de corriente activa. Sin embargo, la corriente de fuga del pin de E/S R2 aún afecta la precisión.
Para disminuir la sensibilidad en situaciones de mucha luz, el pin de E/S se establece en lógica activa baja. Ahora tiene 10Meg en paralelo con 100K como resistencia de detección de corriente.

¡Gracias por su respuesta! Cuando dice configurar el pin de E / S en alta impedancia, ¿eso solo significa que configuré la salida de un puerto digital dado para que sea alta?
@JeppeChristensen No, podría configurar ese pin digital en "entrada", eso debería hacerlo en Z alto, desactivando R2. Cuando desee activar R2, lo cambiaría a "salida" y lo configuraría bajo (cero lógico).
¡Oh! ¿Es eso lo que se llama un pin flotante también?
@JeppeChristensen Ese pin de entrada digital verá el voltaje en la resistencia de 10Meg. Hacer esto realmente no es kosher... cuando un voltaje de entrada digital aumenta hasta la mitad de Vcc (alrededor de 2,4 V), el búfer PMOS+NMOS en el interior puede extraer un poco de corriente de "disparo" de Vdd-a-Vss . Esta corriente no fluye a través de R2; solo debe preocuparse por la corriente de fuga , que generalmente es pequeña a temperatura ambiente. La corriente de disparo solo sería una preocupación si su fuente de alimentación es una batería pequeña. Dicho esto, sí: un pin de entrada digital puede considerarse "flotante" (alta Z).
He estado leyendo su comentario una y otra vez, y de alguna manera creo que entiendo lo que está logrando. Sin embargo, mi lógica de novato me dice que cuando queremos aumentar la precisión de la lectura (alta sensibilidad), queremos bajar el pin de E/S, lo que significa que funciona como una especie de resistencia desplegable para atrapar corriente de fuga potencial? Cuando dices que R2 no está conectado, ¿a qué te refieres exactamente?
"No conectado" significa que no fluye corriente a través de él, hacia el pin de entrada digital flotante. Ambos extremos de R2 estarían al mismo voltaje: igual que el extremo superior de R1. Toda la fotocorriente del diodo fluye a través de R1 a tierra (Vss), ninguna fluye a través de R2. Esto le daría una alta sensibilidad. Cuando desea baja sensibilidad, R2 debe convertirse en una resistencia desplegable, cambiando su pin de E/S de "entrada" a "salida", y configurando esa salida en lógica baja. Ahora el 99,9% de la fotocorriente fluye a través de R2, a Vss. El ánodo del fotodiodo ve una carga resistiva de 99.01K en lugar de 10Meg.

Tiene una hoja de datos que hace referencia a dos versiones diferentes con diferentes respuestas, sin embargo, los cálculos del reverso del sobre son...

Su fotodiodo (la hoja de datos hace referencia a dos) tiene un Isc típico de 6.3uA o 13uA a 100Lux. 6.3uA*40K= 252mV, 13uA*40K=520mV.
Así que no hay gran sorpresa allí...

Esto no tiene en cuenta el espectro de su fuente de luz que modificará estos valores (consulte la curva de respuesta espectral).

Si desea voltajes más altos, necesitará algo de amplificación (mucha información sobre "amplificador de fotodiodo") para comenzar.

Gracias por su respuesta. En tu cálculo pones 40K, ¿qué es eso? - Tengo algunos amplificadores operacionales que intentaré probar, con suerte, obtendré algo de eso.
Su resistencia de 40kΩ.
Oh mi error. :-) En lugar de seguir el camino del amplificador operacional, ¿no colocaría una resistencia de 100 megaohmios?
Solo si su puerto analógico tiene una impedancia de entrada mucho mayor que 100 megaohmios. Que no lo hace. La impedancia de entrada aparece en paralelo con su resistencia de detección (10k o 40k). Probablemente sea de aproximadamente 1 megaohmio, por lo que no afecta las lecturas con una resistencia de 40k, pero será el factor limitante para resistencias muy grandes.
Lectura precisa de una fuente con un 100M Ω la impedancia de salida se está convirtiendo en una electrónica bastante sofisticada. Ciertamente no podrá simplemente enchufarlo en un pin Arduino y hacer que funcione. Encuentre un circuito amplificador de fotodiodo adecuado, utilícelo.
Entonces, ¿diría, quédese con los 5kohm y amplifique la señal con un amplificador operacional? - tengo un LM158 que pienso usar: ti.com/lit/ds/symlink/lm158-n.pdf

Como se señaló en otra respuesta, la configuración que tiene se saturará (sin voltaje en el diodo) y causará no linealidad a escala completa.
No describe su aplicación en absoluto (rango de valores de luz), por lo que es difícil adivinar una respuesta.

Por ejemplo, supongamos que va a detectar en el rango de 1-10k Lux (consulte aquí los rangos/escenarios). En el nivel máximo de Lux, esperaría que el S1223 pasara alrededor de 6,3 mA a escala completa. Desea que la escala completa sea de 5 V o 3,3 V, según el Arduino que esté utilizando. Debe poder ajustar su configuración de escala completa (calibración), pero está limitado a la resolución de A/D para el extremo inferior de la escala (alrededor de 6uA/LSB). Aquí también se encuentra con corrientes de fuga para la entrada A/D que pueden dominar una lectura en el extremo inferior.

También debe asegurarse de que haya un voltaje razonable en el fotodiodo para evitar la falta de linealidad, por lo que conducir el diodo desde el mismo suministro que su MCU no funcionará bien.

Suponiendo que está manejando el Arduino desde Vin y no desde el nivel MCU VCC, podría hacer lo siguiente:

esquemático

simular este circuito : esquema creado con CircuitLab

Suponiendo un Arduino de 5 V y un Vin de 9 V o más, lo anterior garantizará que no exceda el voltaje A/D pero que siempre tenga al menos 4 V en el fotodiodo.

Esto es bastante básico.

Su DMM tiene una entrada de 10 MΩ que desvía la corriente baja a un voltaje más alto en lugar de 10 kΩ. Dado que 10 MΩ es 1k más grande que 10 kΩ, también lo es el voltaje pero la misma potencia P = VI.

Según su experimento y el rango dinámico de voltaje deseado, cambie el valor de R1 para obtener la conversión deseada de PD de I a V. (el factor de conversión es simplemente la Ley de Ohm V=IR). Quizás 100k a 1M sea más adecuado.

Panasonic fabrica un "sensor de luz" radial económico de 5 mm que comprime el rango con una escala logarítmica, por lo que >4 décadas de entrada de luz desde casi la oscuridad hasta el sol brillante da una salida de 5 V con un valor R seleccionado para elegir su rango de luz de entrada óptimo .

La sensibilidad, S para el silicio, es de 0,6 A/W en λ=λp con una sensibilidad decreciente desde el IR hacia el azul. Esto es lo mismo que 0,6 uA/uW. La corriente de salida depende del área superficial de ~ 5 x 5 mm como una pequeña fuente de energía fotovoltaica.

Considere 1uA por R1 = 1Mohm * 1uA = 1V de salida. Esto simplemente usa la resistencia de derivación para convertir los fotones en microamperios * R = microvoltios.

Para la protección contra sobrevoltaje, las entradas analógicas generalmente están protegidas contra descargas electrostáticas (ESD) con diodos, pero están limitadas a aproximadamente 5 mA RMS, por lo que bajo la luz solar brillante a 100 klux, puede esperar una corriente de cortocircuito de 13 uA/100 lux * 100 klux = 13 mA.

Para evitar que esto fluya hacia el puerto analógico interno, utilizan un diodo de derivación de protección ESD a Vdd, pero está clasificado para solo 5 mA constantes más o menos.

Puede resolver esto de muchas maneras para evitar que Vin > 5 V por caídas de voltaje del cátodo PD (0,7 V) desde 5 V o agregue una entrada serie R al puerto analógico desde 1 M en derivación hasta 10 k serie.

"Shunt" significa paralelo o derivación.

¿Puedes averiguar mis sugerencias?