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.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.