from machine import Pin, ADC, PWM
from time import sleep
from servo import Servo # Importa la clase Servo desde tu archivo
from sonidos import sonar_buzzer_sirena, sonar_buzzer
# --- Configuración de hardware ---
# Servo en GPIO15
servo_pin = Pin(15)
servo = Servo(servo_pin)
# Potenciómetro en GPIO36 (ADC1_CH0)
pot = ADC(Pin(34))
pot.atten(ADC.ATTN_11DB) # Rango completo: 0-3.3V
#cuánto voltaje máximo puede leer el pin
pot.width(ADC.WIDTH_10BIT) # Resolución 10 bits: 0-1023
"""Configura la resolución del ADC, o sea, cuántos valores diferentes puede devolver
la lectura del potenciómetro."""
# Buzzer en GPIO2
buzzer = PWM(Pin(2), freq=1000, duty=0) # Inicialmente apagado
# --- Función para activar sonido del buzzer ---
def sonar_buzzer(tiempo_ms=1000):
buzzer.duty(800) # 50% de ciclo útil
sleep(tiempo_ms / 5000)
buzzer.duty(0)
# --- Bucle principal ---
while True:
pot_value = pot.read() # Lee el valor del potenciómetro (0 a 1023)
# Mapea el valor del potenciómetro a un ángulo de 0 a 180
angle = int((pot_value / 1023) * 180)
servo.write_angle(angle)
print("Pot Valor--------- ", pot_value)
print("Ángulo:", angle)
# Si el ángulo llega a 180°, sonar
if angle >= 180:
sonar_buzzer()
# sonar_buzzer_sirena(buzzer)
sleep(0.05) # Pequeña pausa para estabilidad