from machine import Pin, PWM, ADC
import time
servo_pin = 2 # GPIO for controlling the servo
sensor_pin = 34 # GPIO for light sensor (ADC)
servo = PWM(Pin(servo_pin), freq=50) # Initialize PWM for servo motor with 50Hz frequency
sensor = ADC(Pin(sensor_pin)) # Initialize ADC for light sensor
def read_light_level():
raw_value = sensor.read()
light_level = (raw_value / 4095) * 100 # Convert ADC value to percentage (0-100)
return light_level
def adjust_servo_angle():
light_level = read_light_level()
duty_cycle = int((light_level / 100) * 102) + 40 # Convert light level to PWM duty cycle (0-180 degrees for SG90 servo)
servo.duty(duty_cycle) # Adjust servo position based on light level
while True:
adjust_servo_angle()
time.sleep(0.1) # Small delay for smooth adjustments