Conectar un LDR a los pines GPIO de una Raspberry Pi

Quiero conectar un LDR a los pines GPIO de mi Raspberry Pi, sé que Raspberry Pi no tiene un convertidor de analógico a digital, así que lo que quiero hacer es señalar una señal ALTA (3.3v) en el GPIO cuando hay baja resistencia en el LDR (algo por debajo de 200 ohmios) y una señal BAJA cuando la resistencia del LDR es alta (por encima de 2k por ejemplo). La corriente máxima que puedo extraer con seguridad de los pines GPIO de la Raspberry Pi, según la documentación , es de 50 mA. ¿Cómo calculo la resistencia necesaria? ¿Tendré que agregar también una resistencia pull up/down? No tengo una idea clara de cómo hacerlo de forma segura sin quemar mi procesador.

Me imagino que también tengo que enchufar una resistencia en el circuito para asegurarme de que siempre tenga una resistencia cuando el LDR está en un estado de muy baja resistencia.

Actualización : funcionó bien, construí el circuito y se muestra en esta publicación , gracias por la ayuda.

"La histéresis de entrada GPIO (disparador Schmitt) puede estar activada o desactivada, la velocidad de respuesta de salida puede ser rápida o limitada, y la corriente de fuente y sumidero se puede configurar desde 2 mA hasta 16 mA". El 50mA es el consumo máximo del pin 3V3.

Respuestas (1)

La mejor manera de hacer esto sería usar un transistor como comparador para hacer que la transición sea nítida.
Aquí hay un circuito de ejemplo:

LDR

Utiliza el LDR como la parte superior de un divisor de voltaje. Cuando la resistencia LDR cae, el voltaje en la base del transistor aumenta y lo enciende. El transistor puede ser cualquier NPN de propósito general.
Podemos calcular el valor de la resistencia en función del lugar donde queremos que se produzca el encendido.

Digamos que las resistencias LDR van de 200Ω (oscuro) a 10kΩ (oscuro). Queremos que el transistor se encienda cuando el LDR esté en 5kΩ. La alimentación (V+) es de 3,3V. Un transistor NPN típico se enciende alrededor de 0,7 V, por lo que si lo hacemos:

5000 * (0,7/3,3) = 1060 Ω necesarios para la resistencia base. Podemos elegir una resistencia de 1kΩ ya que está lo suficientemente cerca. Ajuste sus valores para adaptarse a su punto de activación.

Aquí hay una simulación del circuito:

simulación LDR

El eje horizontal es la resistencia LDR, y la línea azul es el voltaje en el punto Vout (usted conecta esto al pin de entrada Rpi; debe configurarse como entrada. Puede agregar una resistencia de 1kΩ entre Vout y el pin Rpi para protegerlo en caso de configurarlo accidentalmente en salida) Podemos ver que el transistor se enciende a alrededor de 5kΩ como se predijo (no será exacto ya que el voltaje del emisor base del transistor variará con la temperatura, etc., pero lo suficientemente cerca para sus propósitos)

Tenga en cuenta que la salida del transistor es baja cuando hay luz y alta cuando está oscuro, puede cambiar el LDR y la resistencia y usar 5,000 * (3.3 / 0.7) = 23.5kΩ para la resistencia si lo desea al revés: esto es en realidad, una mejor configuración ya que consume menos corriente (debido a resistencias más altas), así que si eso es importante, use esta versión.

Acordado. Iba a sugerir un comparador de amplificador operacional, pero luego pensé que era excesivo. La solución simple de usar un transistor como interruptor no se me había ocurrido.
Eso es exactamente lo que necesito, lo haré, gracias por la respuesta, es bastante sorprendente que podamos construir este sigmoide para controlar los niveles lógicos, nunca hubiera imaginado algo como esto, gracias por dedicar su tiempo para escribir esto
@Tarantula: no hay problema, me complace ayudar.