import time import board import pwmio from adafruit_motor import servo import microcontroller # Create a PWMOut object on Pin GP12 pwm = pwmio.PWMOut(board.GP12, duty_cycle=2 ** 15, frequency=50) # Create a servo object, my_servo my_servo = servo.Servo(pwm) # Function to map temperature range to servo angle range def map_temperature_to_angle(temperature, min_temp, max_temp, min_angle, max_angle): temperature = max(min(temperature, max_temp), min_temp) # Limit temperature within the given range temperature_range = max_temp - min_temp angle_range = max_angle - min_angle angle = ((temperature - min_temp) / temperature_range) * angle_range + min_angle return int(angle) while True: # Read the onboard temperature in Celsius temperature = microcontroller.cpu.temperature # Map temperature to servo angle angle = map_temperature_to_angle(temperature, 18, 35, 180, 0) # Set the servo angle my_servo.angle = angle # Print temperature and servo angle print("Temperature: {:.2f}°C, Servo Angle: {}".format(temperature, angle)) time.sleep(1) # Pause for 1 second