← Volver a proyectos
PROYECTO #04 Medio ⏱ 45 min

Barrera
Automática

El láser apunta al sensor de luz. Cuando algo interrumpe el haz, la micro:bit lo detecta y reacciona al instante. Tu primer sistema de detección preciso con dos componentes trabajando juntos.

Láser Sensor de Luz micro:bit 🔌 2 pines 📚 Digital + Analógico
Láser Sensor de Luz
2
Componentes
45'
Tiempo
P0+P1
Pines

Materiales necesarios

Reúne estos componentes antes de empezar. Haz clic en "Ver guía" para saber más sobre cada uno.

Módulo Láser
Módulo Láser
Emisor de haz láser de 3V
Pin P0
×1 Ver guía del Láser → 🛒 Comprar
Sensor de Luz
Sensor de Luz
Detecta la intensidad del haz
Pin P1
×1 Ver guía del Sensor → 🛒 Comprar
micro:bit
micro:bit V2
Controlador principal
×1 🛒 Comprar
Cables Dupont
Cables Dupont
3 cables por componente
S, V, G × 2
×6 🛒 Comprar
Shield expansión Shield Keyestudio Shield Driver
Shield de expansión
Cualquier shield compatible
Base de conexión
×1 🛒 Comprar
▶ Video tutorial

Míralo en acción

Barrera automática con láser y micro:bit

Conexión de los componentes

Conecta el láser en P0 y el sensor de luz en P1. Ambos siguen el mismo esquema de 3 pines (S, V, G).

Componente Pin shield Cable recomendado
Láser — Señal P0 Amarillo (S)
Láser — Alimentación V (3.3V) Rojo (V)
Láser — Tierra G (GND) Negro (G)
Sensor Luz — Señal P1 Amarillo (S)
Sensor Luz — Alimentación V (3.3V) Rojo (V)
Sensor Luz — Tierra G (GND) Negro (G)
1
Conecta el módulo láser al bloque P0 de tu shield: S→S, V→V, G→G. El láser quedará encendido desde el inicio del programa.
2
Conecta el sensor de luz al bloque P1 con el mismo esquema. Colócalo enfrente del láser, a unos 10–30 cm de distancia, apuntando directamente al haz.
3
Alinea el láser con el sensor hasta que el sensor reciba el haz. El valor analógico que leerás en P1 debería ser alto cuando el haz llega, y bajo cuando se interrumpe.
💡 Truco: Pon los dos módulos sobre la mesa apuntándose. Cuando metes la mano entre ellos, el sensor lo detecta. Empieza con poca distancia (10 cm) para asegurarte de que el haz llega bien.

Programación

Encendemos el láser y leemos el sensor de luz. Si el valor baja por debajo de un umbral, algo ha cruzado la barrera.

MakeCode JavaScript
// Barrera Automatica con Laser y Sensor de Luz
// Laser en P0 | Sensor de Luz en P1

basic.forever(function () {
    // Laser siempre encendido
    pins.digitalWritePin(DigitalPin.P0, 1)

    // Leer el valor del sensor de luz (0 - 1023)
    let luz = pins.analogReadPin(AnalogPin.P1)

    // Si el haz se interrumpe, el valor baja
    if (luz < 200) {
        // Alguien ha cruzado la barrera
        basic.showIcon(IconNames.Angry)
        music.playTone(880, 300)
    } else {
        // Haz intacto — sistema activo
        basic.showIcon(IconNames.Yes)
    }

    basic.pause(100)
})
🔴
pins.digitalWritePin(DigitalPin.P0, 1) — Mantiene el láser encendido de forma continua. Escribimos 1 al principio del bucle para asegurarnos de que siempre está activo.
📡
pins.analogReadPin(AnalogPin.P1) — Lee el nivel de luz que llega al sensor. El valor va de 0 (oscuridad total) a 1023 (luz máxima). Cuando el haz del láser llega al sensor, el valor es alto.
⚠️
if (luz < 200) — Si el valor cae por debajo de 200, significa que algo ha interrumpido el haz. Ajusta este número según tu montaje: si hay mucha luz ambiente, sube el umbral.
⏱️
basic.pause(100) — Pausa de 100 ms entre lecturas. Es suficiente para detectar interrupciones rápidas sin saturar el procesador.
MicroPython
from microbit import *

# Barrera Automatica con Laser y Sensor de Luz
# Laser en P0 | Sensor de Luz en P1

while True:
    # Laser siempre encendido
    pin0.write_digital(1)

    # Leer el valor del sensor (0 - 1023)
    luz = pin1.read_analog()

    # Si el haz se interrumpe, el valor baja
    if luz < 200:
        display.show(Image.ANGRY)
        music.pitch(880, 300)
    else:
        display.show(Image.YES)

    sleep(100)
🔴
pin0.write_digital(1) — Mantiene el láser encendido. En Python el pin 0 corresponde al P0 de la shield.
📡
pin1.read_analog() — Lee el nivel analógico del sensor de luz en P1. Devuelve un valor entre 0 y 1023.
⚠️
if luz < 200: — Umbral de detección. Si el sensor recibe menos luz de la esperada, es que algo ha cruzado el haz. Ajusta el valor según las condiciones de luz de tu aula.

Problemas frecuentes

Si algo no funciona, busca aquí tu problema. La mayoría tienen una solución sencilla.

"El sensor siempre detecta interrupción aunque el haz llegue"
El umbral de 200 puede ser demasiado alto para tu entorno. Sube el umbral a 100 o 50 y prueba de nuevo. También puede ser que el haz no llegue bien al sensor: alinéalos mejor o acércalos.
"El sensor nunca detecta nada aunque meta la mano"
El umbral puede ser demasiado bajo. Baja el umbral a 400 o 500. También comprueba que el sensor de luz está conectado al pin P1 y no al P0, y que el láser está realmente encendido.
"El láser no se enciende"
Comprueba que el módulo láser está conectado al pin P0 con el cable de señal en S, no en V ni G. El láser es muy tenue — míralo en una habitación a oscuras o apunta a una superficie blanca para verificar que funciona.
"Hay falsas detecciones por la luz del aula"
La luz ambiente afecta al sensor. Para calibrarlo: lee el valor con el haz llegando (por ejemplo 700) y sin el haz (por ejemplo 150). Pon el umbral a mitad, en este caso 400-500. Así el sistema se adapta a tu entorno.