import machine
import time
# Define the GPIO pins
pir_pin = machine.Pin(34, machine.Pin.IN) # PIR sensor output pin
servo1_pin = machine.Pin(15) # Servo 1 control pin
servo2_pin = machine.Pin(12) # Servo 2 control pin
# Initialize PWM for the servos
servo1 = machine.PWM(servo1_pin, freq=50) # 50Hz frequency for servo 1
servo2 = machine.PWM(servo2_pin, freq=50) # 50Hz frequency for servo 2
def set_servo_angle(servo, angle):
# Convert angle to duty cycle
duty = int((angle / 180) * 102 + 26) # Adjust these values based on your servo
servo.duty(duty)
try:
while True:
if pir_pin.value() == 1: # Motion detected
print("Motion detected!")
set_servo_angle(servo1, 179) # Move servo 1 to 90 degrees
set_servo_angle(servo2, 0) # Move servo 2 to 90 degrees
else:
print("No motion detected.")
set_servo_angle(servo1, 90) # Move servo 1 back to 0 degrees
set_servo_angle(servo2, 90)
time.sleep(0.1) # Check every 100ms
except KeyboardInterrupt:
print("Program stopped")
finally:
servo1.deinit() # Clean up the PWM for servo 1
servo2.deinit() # Clean up the PWM for servo 2