El LED se enciende solo cuando detecta poca luz. Tu primera automatización real: un sistema que toma decisiones sin que intervengas — igual que las farolas de la calle.
Reúne estos componentes. El sensor de luz (LDR) es nuevo — tiene una resistencia que varía con la luz. Haz clic para ver su guía.
El sensor de luz va en P0 (lectura analógica) y el LED en P1 (salida digital). La diferencia clave: el sensor usa analogReadPin, no digitalReadPin.
| Componente | Pin shield | Cable recomendado |
|---|---|---|
| Sensor Luz — Señal | P0 (analógico) | Amarillo |
| Sensor Luz — Alimentación | V (3.3V) | Rojo |
| Sensor Luz — Tierra | G (GND) | Negro |
| LED Verde — Señal | P1 | Verde |
| LED Verde — Alimentación | V (3.3V) | Rojo |
| LED Verde — Tierra | G (GND) | Negro |
Lo nuevo aquí es la lectura analógica y el concepto de umbral (threshold). Lee bien los comentarios antes de copiar el código.
// Luz nocturna automática // El LED se enciende cuando la luz ambiente es baja let nivelLuz = 0 let UMBRAL = 400 // Ajusta este valor según tu entorno (0-1023) basic.forever(function () { // Leer el sensor de luz (valor entre 0 y 1023) nivelLuz = pins.analogReadPin(AnalogPin.P0) // Mostrar el valor en pantalla (para calibrar) basic.showNumber(nivelLuz) if (nivelLuz < UMBRAL) { // Poca luz → encender LED pins.digitalWritePin(DigitalPin.P1, 1) basic.showIcon(IconNames.Diamond) } else { // Mucha luz → apagar LED pins.digitalWritePin(DigitalPin.P1, 0) basic.showIcon(IconNames.SmallDiamond) } basic.pause(500) // Actualizar cada 0.5 segundos })
from microbit import * UMBRAL = 400 # Ajusta este valor según tu entorno while True: # Leer el sensor de luz (valor entre 0 y 1023) nivel_luz = pin0.read_analog() # Mostrar el valor en pantalla (para calibrar) display.scroll(str(nivel_luz)) if nivel_luz < UMBRAL: # Poca luz → encender LED pin1.write_digital(1) display.show(Image.DIAMOND) else: # Mucha luz → apagar LED pin1.write_digital(0) display.show(Image.SMALL_DIAMOND) sleep(500)
read_analog() del objeto pin.str(). El scroll desplaza el texto por la pantalla.Con UMBRAL = 400 como punto de partida, verifica estos comportamientos. Si el LED no responde bien, necesitas calibrar el umbral (ver instrucciones arriba).
¡El primer reto es obligatorio para que el proyecto funcione bien! Los demás añaden funcionalidades nuevas.
if (nivelLuz > 800) pins.digitalWritePin(DigitalPin.P2, 1) y su correspondiente apagado cuando el nivel baja.La mayoría de problemas con sensores analógicos tienen que ver con el umbral o con usar la función de lectura equivocada.
basic.pause(1000) en lugar de 500 para que actualice más despacio y sea más estable.Ahora que entiendes las señales analógicas, tienes acceso a un mundo completamente nuevo de sensores y automatizaciones.