
Chismes del Lince 49: sensor de luz led y pi pico
El Lince de la Noche estaba en lo alto de una peña de Sierra Bermeja, con sus tres faros encendidos y una libreta llena de tachones.
—Mis faros hablan, pero no se enteran de nada —refunfuñó—. Necesito que sepan cuánta luz hay. Si anochece, si sale la luna, si un dron pasa con las luces encendidas…
—¿Y cómo piensas hacerlo? —preguntó la Gata Montesa, que ya conocía esa cara.
—Un sensor de luz, claro. Lo pido por correo, tarda diez días, lo cableo, lo calibro…
—O puedes usar lo que ya tienes puesto.
—¿El qué?
La Gata señaló con la pata los tres LEDs de la protoboard: uno rojo, uno verde y uno blanco.
—Un LED es un diodo, Lince. Cuando le llega luz, genera una pizca de electricidad. Tus luces también pueden ver.
—¿Mis faros son sensores? —El Lince se quedó mirando los LEDs con desconfianza—. ¿Desde cuándo?
—Desde siempre. Solo había que girarlos.
Introducción
En este chisme convertimos tres LEDs en un sensor de luz led. Sin comprar nada: con una Raspberry Pi Pico W, un LED rojo, uno verde, uno blanco y un programa corto, la placa mide cuánta luz les llega.
El montaje es casi el de los faros. La única diferencia es que cada LED se gira 180°. Con ese cambio, un LED deja de ser una luz y pasa a ser un ojo.
Por qué un sensor de luz led
En los chismes anteriores con la Pico, la placa solo daba salidas: tirar un dado, encender faros, tocar notas. Este es el primero en el que la Pico mira, y lo hace con material que ya estaba en la mesa.
Además, es una buena forma de aprender que un mismo componente puede cumplir dos funciones. Un LED emite luz si le damos corriente, y genera una pequeña corriente si le damos luz. Es un diodo, y los diodos funcionan en los dos sentidos.
A dónde queremos llegar
Ya medimos la luz con los sensores del móvil en el chisme 1, Los sentidos del Lince, y la usamos para encontrar la mejor sombra en el Cazador de sol. También controlamos luces desde el móvil en el semáforo Bluetooth del chisme 27.
Aquí juntamos las dos ideas en una placa: las luces del Lince ya pueden ver además de avisar. Es el primer paso para que sus faros reaccionen a la luz de Sierra Bermeja, y a la luz de los drones.
Cómo funciona un sensor de luz led
Un LED solo deja pasar la corriente en un sentido: de la pata larga a la corta. Por eso se llama diodo. Cuando lo usamos de faro, la corriente entra por la larga y el LED se enciende.
Pero un diodo también hace lo contrario. Si le llega luz, su interior genera una pequeña corriente, muy débil, en sentido inverso. Con una linterna cerca, esa corriente es mayor. En la oscuridad, casi no hay.
Esa corriente es demasiado pequeña para medirla directamente con la Pico. Así que usamos un truco: medimos cuánto tarda en escaparse una carga. Es como un cubo con un agujerito. Cuanta más luz, más grande es el agujero y más rápido se vacía.
- La Pico pone el pin a 1 y carga el LED con la polaridad al revés. Así no se enciende: solo guarda una carga diminuta.
- Suelta el pin, que pasa a ser una entrada. Ahora no empuja nada: lo único que descarga el LED es la luz que recibe.
- Cuenta los milisegundos hasta que el pin lee un 0.
El resultado es un número en milisegundos: poco tiempo significa mucha luz, y mucho tiempo significa poca.
Qué colores ve cada LED
Un LED no ve todos los colores igual. En general, ve la luz de su propio color y la de colores con más energía. Un LED rojo responde al rojo, al verde y al azul. Un LED verde responde al verde y al azul, pero casi nada al rojo.
El LED blanco es en realidad un LED azul con un recubrimiento amarillento. Por eso ve sobre todo la parte azul de la luz.
Con tres LEDs de colores distintos tenemos, por tanto, tres ojos con gustos diferentes. Más adelante usaremos esa diferencia para adivinar de qué color es una luz.
Qué necesitamos
- Una Raspberry Pi Pico W con MicroPython, preparada como en el chisme del dado
- Thonny en el ordenador
- 3 LEDs: uno rojo, uno verde y uno blanco
- 3 resistencias de 220 Ω
- Una protoboard y unos cables
- La linterna de un móvil, para dar luz a los LEDs
Construcción
Es el montaje de los faros con cada LED girado 180°. Si ya lo tenías hecho, saca cada LED y vuelve a ponerlo con las patas al revés.
Cada LED va así: el pin de la Pico va a una resistencia de 220 Ω, la resistencia va a la pata corta del LED, y la pata larga va a GND.
| LED | Pin de la Pico | Nombre del pin |
|---|---|---|
| Rojo | 4 | GP2 |
| Verde | 5 | GP3 |
| Blanco | 6 | GP4 |
| Pata larga de los tres | 3 u 8 | GND |
Antes de seguir, comprueba que el orden es rojo, verde y blanco. El programa los llama así en la pantalla.
El programa de la Pico W
En Thonny, con la Pico conectada, abre un archivo nuevo y pega este programa. Para esta prueba basta con ejecutarlo: no hace falta guardarlo en la Pico.
Todo el programa es lo importante: tiene solo una función y un bucle.
# Chisme 49 (prueba) - El LED que ve
# Raspberry Pi Pico W + MicroPython
# Usa cada LED como un sensor de luz: lo "carga" con la Pico y mide cuánto tarda en
# descargarse. Cuanta más luz le da, MÁS RÁPIDO se descarga.
#
# CONEXIONES: las mismas de los faros, pero con cada LED GIRADO 180 grados:
# GP2 -> resistencia 220 ohmios -> pata CORTA del LED rojo (pata LARGA a GND)
# GP3 -> resistencia 220 ohmios -> pata CORTA del LED verde (pata LARGA a GND)
# GP4 -> resistencia 220 ohmios -> pata CORTA del LED blanco (pata LARGA a GND)
#
# En Thonny: Ver > Trazador (Plotter) para ver las tres curvas.
from machine import Pin
import time
PINES = [2, 3, 4] # rojo, verde, blanco
TOPE_US = 300_000 # si tarda más de 0,3 s lo damos por "oscuridad"
def medir(num):
p = Pin(num, Pin.OUT)
p.value(1) # 1) cargamos el LED con la polaridad al revés
time.sleep_us(200)
p = Pin(num, Pin.IN) # 2) soltamos el pin: ahora solo la luz descarga el LED
t0 = time.ticks_us()
while p.value(): # 3) contamos hasta que el pin "ve" un 0
if time.ticks_diff(time.ticks_us(), t0) > TOPE_US:
break
return time.ticks_diff(time.ticks_us(), t0)
while True:
r, v, b = [medir(n) / 1000 for n in PINES] # pasamos de microsegundos a milisegundos
print("rojo:%.1f, verde:%.1f, blanco:%.1f" % (r, v, b))
time.sleep_ms(100)
La función medir hace los tres pasos de la sección anterior, uno por cada comentario numerado. El bucle final la llama para cada LED y escribe los tres tiempos en pantalla.
El formato rojo:12.3, verde:5.0, blanco:300.0 no es casual. Es el que entiende el Trazador de Thonny para dibujar una curva por cada nombre.
Lee y predice
- Si tapas los tres LEDs, ¿qué número esperas en la pantalla? Pista: mira el valor de
TOPE_US. - ¿Para qué sirve el tope? ¿Qué pasaría si no existiera y no hubiera nada de luz?
- Si cambias
TOPE_USa2_000_000, ¿cómo cambia la pantalla en una habitación con poca luz? ¿Y lo que tarda cada ronda? - ¿Por qué hay una pausa de 200 microsegundos tras poner el pin a 1?
Respuestas: sin luz saldrá el tope, 300, porque el programa deja de esperar a los 0,3 s. Sin tope, la Pico podría esperar mucho tiempo. Con un tope mayor se distinguen mejor las luces débiles, pero cada medida puede tardar hasta 2 segundos. La pausa da tiempo a que el LED se cargue del todo.
Cambio guiado: cambia el orden de PINES = [2, 3, 4] por [4, 3, 2] y mira qué etiqueta no coincide con el LED.
Cómo probar el sensor de luz led
- Comprueba que los tres LEDs están girados: resistencia a la pata corta, pata larga a GND.
- Ejecuta el programa y abre Ver > Trazador. Verás tres curvas, una por LED.
- Mira los números en una habitación con luz normal. Después tapa los LEDs con la mano.
- Quita la mano y acerca la linterna del móvil, encendida, a un solo LED. Prueba con el rojo, con el verde y con el blanco.
- Prueba también con la pantalla del móvil en blanco, pegada a los LEDs.
Con poca luz, los tres LEDs marcaron el tope de 300 en nuestra prueba. Con luz fuerte encima, los valores deben bajar. El sensor funciona, pero de forma tosca: ya veremos por qué.
Qué estamos midiendo realmente
La Pico, con este sensor de luz led, no mide luz directamente. Mide cuánto tarda en descargarse un LED, en milisegundos. La luz solo es una de las causas de ese tiempo. Es una medida indirecta: un indicador de la luz, no los lux de un luxómetro.
Por eso no hay calibración. Dos LEDs del mismo color pueden dar tiempos distintos con la misma luz, porque no son idénticos. Y un LED rojo, uno verde y uno blanco no son comparables entre sí sin más: cada uno ve una parte distinta de la luz.
El tope de 300 ms también cuenta. Un valor de 300 no significa «tardó 300», sino «tardó 300 o más». Es un dato cortado, y si lo promediáramos con los demás, el resultado no sería fiable.
Hay más fuentes de error. El ángulo y la distancia de la linterna cambian el resultado. La luz de una bombilla o un fluorescente puede parpadear. Y la temperatura y la humedad afectan a lo que se escapa del LED por su cuenta.
Para que la medida valiera de verdad habría que calibrarla: medir a la vez con el sensor de luz del móvil, como en el chisme 1, y dibujar una curva que traduzca milisegundos a lux. Repetir cada medida y calcular la media también ayuda.
La lección es la de siempre: medir no significa medir bien. Lo que sí funciona es comparar: «aquí hay más luz que allí».
Nada sale del dispositivo: la Pico solo escribe números en Thonny. No hay cámaras, ni servidores, ni cuentas.

Para el aula
El sensor de luz led es un buen primer instrumento: funciona, se equivoca y hay que pensar para usarlo bien. Algunas actividades:
- La variable. ¿Qué variable mide realmente la Pico? ¿En qué unidad? ¿Por qué no son lux?
- Mismo LED, distinta luz. Toma diez medidas con la luz del aula, diez con la linterna y diez tapado. Calcula la media de cada grupo y mira cuánto se dispersan los números.
- Hipotésis de colores. Antes de medir, escribe qué LED crees que responderá más a una pantalla roja, a una verde y a una azul. Luego compruébalo con la pantalla del móvil.
- La distancia. Pon la linterna a 1, 5, 10 y 20 cm de un LED y mide cada vez. Dibuja la gráfica: ¿la luz y el tiempo siguen una recta?
- Tres LEDs, una luz. ¿Dan lo mismo los tres con la misma linterna? ¿Por qué no?
- El dato cortado. Cuando sale 300, ¿qué sabemos y qué no sabemos? ¿Cómo lo tratarías al hacer la media?
- Dos instrumentos. Mide el mismo sitio con el sensor de luz del móvil y con el LED. ¿Se parecen? ¿Cuál te fías más y por qué?
Retos
- Haz que funcione. Gira los LEDs, ejecuta el programa y consigue que cambien los números al acercar una linterna.
- Modifica algo. Cambia
TOPE_USy observa qué pasa con la oscuridad y con el tiempo de cada ronda. - Añade un sensor. Si tienes otro LED de otro color, añádelo en GP5 y mira qué luz detecta mejor.
- Guarda los datos. Haz que el programa escriba los números separados por comas, cópialos de Thonny a una hoja de cálculo y guárdalos.
- Representa los datos. Dibuja en la hoja la gráfica del tiempo frente a la distancia de la linterna.
- Automatiza. Haz que se encienda el LED de la propia placa,
Pin("LED"), cuando el LED rojo marque oscuridad. - Haz que otro dispositivo participe. Envía los tres valores al móvil por Bluetooth, como en el dado, y dibuja las curvas en una página.
- Pequeña investigación. Calibra el LED con el sensor de luz del móvil: apunta 20 pares de datos, busca una curva que los una y calcula su error. Concluye si este LED sirve de luxómetro.
Qué hemos aprendido del sensor de luz led
Hemos aprendido que un LED es un diodo y que por eso puede ser un sensor de luz led y también una luz. Sirve de dos maneras: da luz si le damos corriente y genera una pequeña corriente si le damos luz. Un solo componente, dos funciones.
También hemos aprendido a medir algo muy pequeño con un truco: cargarlo y contar cuánto tarda en escaparse la carga. Y que cada color de LED ve unos colores de luz mejor que otros.
La parte de ciencia es que esta medida es indirecta, no está calibrada y tiene un tope que corta los datos. Sirve para comparar, no para dar un valor exacto. Es otra prueba de que medir no significa medir bien.
El Lince ya tiene tres faros que ven. Falta enseñarles a contarlo por Bluetooth, pero ese es otro chisme.
Para seguir investigando
- Chisme 4: Cazador de sol, para medir la luz con el sensor del móvil
- Chisme 27: semáforo Bluetooth con Heltec, para mandar órdenes de luz desde el móvil
- Fotodiodo en Wikipedia, el componente hecho para detectar luz, primo de nuestro LED
- Diodo emisor de luz en Wikipedia, para saber cómo es un LED por dentro
- Documentación de MicroPython: la clase Pin, para ver todo lo que se puede hacer con un pin de la Pico
Etiqueta:AIDARAC, diodo, fotodiodo, led, micropython, montesteam, Raspberry Pi Pico W, Sensor de luz, sensor de luz led, Thonny



