import time
from machine import Pin, PWM
# --- Servo and LED setup ---
servo = PWM(Pin(17))
servo.freq(60)
servo1 = PWM(Pin(16))
servo1.freq(60)
ledr = Pin(27, Pin.OUT)
ledg = Pin(22, Pin.OUT)
ledy = Pin(26, Pin.OUT)
buzzer = PWM(Pin(28))
buzzer.freq(600)
vol = 2000
# --- Servo angle function ---
def servo_angle(angle):
duty = int((angle / 180 * 2 + 0.5) / 20 * 65535)
servo.duty_u16(duty)
def servo1_angle(angle):
duty = int((angle / 180 * 2 + 0.5) / 20 * 65535)
servo1.duty_u16(duty)
# --- Start in locked position ---
servo_angle(114)
servo1_angle(114)
saved_code=int(input("enter code: "))
print('code saved!')
for i in range (0,3):
print(".")
time.sleep(0.3)
print('..')
time.sleep(0.3)
print('...')
time.sleep(0.3)
entered_code=int(input("enter code: "))
# --- Step 3: Check code ---
if entered_code == saved_code:
print("Correct code! Unlocking...")
ledr.off()
buzzer.duty_u16(0)
servo_angle(220)
servo1_angle(10)
ledg.on()
time.sleep(8)
ledg.off()
else:
print("Wrong code! Triggering alarm...")
for i in range(10):
ledr.on()
buzzer.duty_u16(vol)
servo_angle(115)
servo1_angle(115)
time.sleep(0.5)
ledr.off()
buzzer.duty_u16(0)
time.sleep(0.5)
# --- Reset gate to locked position ---
servo_angle(114)
servo1_angle(114)
print("System reset.")