Cómo conectar una Fotoresistencia (LDR) a Raspberry pi

En este pequeño tutorial veremos cómo conectar una fotoresistencia a una tarjeta Raspberry Pi, también encontrarás un código de programación para tus primeras pruebas.

La fotoresistencia o LDR es un componente cuya resistencia disminuye al hacer incidir luz sobre ella y aumenta en ausencia de luz, esta propiedad la hace ideal para implementar sensores de iluminación ambiental. Una manera sencilla y popular de construir dichos sensores consiste en armar un divisor de voltaje/tensión con la fotoresistencia conectada en serie a una resistencia de valor fijo. La señal del sensor es entonces el voltaje en el punto de unión de la resistencia y la fotoresistencia. El ejercicio sera construir uno de estos.

Si el divisor de tensión se alimenta con 3.3V el voltaje de la señal podrá tomar valores entre 0V y 3.3V, de igual manera es importante señalar que el comportamiento del sensor, es decir, si el voltaje aumenta al aumentar la luz y viceversa o si el voltaje disminuye al aumentar la luz y viceversa dependerá de cómo alimentemos el divisor de tensión.

  • Si conectamos GND al pin de la resistencia de valor fijo y 3.3V al pin de la fotoresistencia, el voltaje aumentará al aumentar la intensidad del a luz y disminuirá en ausencia de luz.
  • Si conectamos 3.3V al pin de la resistencia de valor fijo y GND al pin de la fotoresistencia, el voltaje disminuirá al aumentar la intensidad de la luz y aumentará en ausencia de luz.

De esta manera el divisor de voltaje es un componente analógico de entrada, es decir, su funcionamiento consiste en entregar la información correspondiente a la iluminación del ambiente por medio del voltaje en su pin de señal. Ningún modelo de Raspberry Pi cuenta con la capacidad de leer una señal analógica de voltaje, debido a esto, utilizaremos un ADC externo (convertidor de señal analógica a digital).

El circuito integrado MCP3008 nos servirá como puente entre nuestro divisor de voltaje/tensión y nuestra Raspberry Pi. De esta manera el circuito integrado realizara la lectura analógica convirtiendo la información a digital para después mandarla a la Raspberry Pi por medio de un protocolo serial digital llamado SPI.

Componentes necesarios

  • Fotoresistencia (LDR)
  • Resistor de 10kohms
  • MCP3008
  • Raspberry Pi
  • Protoboard chica
  • Cables de conexión H-M y M-M

Diagrama de conexiones

Raspberry Pi – MCP3008 – Resistor 10kohms – Fotorresistencia

Pasos previos a ejecutar el código

1.- Instalar paquetes de Python3

En este código hacemos uso del paquete de Python3 «gpiozero». Para instalarlo ejecuta el siguiente comando en la terminal:

[email protected]:~$ sudo pip3 install gpiozero

2.- Habilitar comunicación SPI en la Raspberry Pi

Para que podamos ejecutar un programa que reciba información por SPI en nuestra Raspberry Pi, debemos habilitar el hardware correspondiente en dicha tarjeta. Esto lo podemos hacer de manera sencilla con ayuda de la herramienta de configuración raspi-config, si no has utilizado esta herramienta antes da click aquí para ver el paso a paso. Una vez que termines regresa para ejecutar el código.

Código de Python3

Copiamos el siguiente código a un script de Python y lo ejecutamos con Python3 para observar el valor entregado por el sensor cada 0.5 segundos aproximadamente.


#Para instalar gpiozero:
#[email protected]:~$ sudo pip3 install gpiozero

from gpiozero import MCP3008
from time import sleep

fotoresistencia = MCP3008(channel=0)

while True:
    print(fotoresistencia.value)
    sleep(0.5)