from machine import Pin # Importa la clase Pin del módulo machine
import time # Importa el módulo time para utilizar la función sleep
Buzzer = Pin(19, Pin.OUT) # Configura el pin 19 como salida para el buzzer
Pir = Pin(21, Pin.IN) # Configura el pin 21 como entrada para el sensor PIR
led = Pin(18, Pin.OUT) # Configura el pin 18 como salida para el LED
def handle_motion(pin): # Definición de la función handle_motion que se ejecutará cuando se detecte movimiento
"""
Esta función maneja la detección de movimiento por el sensor PIR.
Parámetros:
pin (Pin): El pin que generó la interrupción, en este caso, el pin del sensor PIR.
Retorna:
None
"""
print("¡Movimiento detectado!") # Imprime un mensaje indicando que se ha detectado movimiento
Buzzer.on() # Enciende el buzzer
led.on() # Enciende el LED
time.sleep(2) # Espera 2 segundos
Buzzer.off() # Apaga el buzzer
led.off() # Apaga el LED
# Configura una interrupción para el pin del sensor PIR que llamará a la función handle_motion cuando se detecte movimiento
Pir.irq(trigger=Pin.IRQ_RISING, handler=handle_motion)
while True: # Bucle principal
"""
Este es el bucle principal del programa que espera indefinidamente.
Muestra un mensaje de espera y espera 1 segundo antes de volver a verificar el sensor de movimiento.
Parámetros:
Ninguno
Retorna:
None
"""
print("Esperando...") # Imprime un mensaje indicando que está esperando
time.sleep(1) # Espera 1 segundo antes de volver a verificar el sensor de movimiento