#Buatlah rangkaian seperti gambar pada percobaan 4,
#jika nilai pada potensiometer diperkecil maka servo bergerak berlawanan jarum jam
#dan jika jika sudut servo <0 ° dan >180 ° buzzer berbunyi
from machine import Pin, PWM, ADC
from time import sleep
import utime
potensiometer = ADC(26)
motor_servo = PWM(Pin(16))
pengeras_suara = PWM(Pin(14))
motor_servo.freq(50)
pengeras_suara.freq(1000)
def konversi_rentang(nilai, min_masuk, max_masuk, min_keluar, max_keluar):
return int((nilai - min_masuk) * (max_keluar - min_keluar) / (max_masuk - min_masuk) + min_keluar)
sudut_servo = 0
while True:
nilai_pot = potensiometer.read_u16()
if nilai_pot > 35000:
sudut_servo += 1
if sudut_servo < 0:
sudut_servo = 0
elif nilai_pot < 30000:
pass
duty_cycle = konversi_rentang(sudut_servo, 0, 180, 1638, 8192)
motor_servo.duty_u16(duty_cycle)
if 0 < sudut_servo < 180:
pengeras_suara.duty_u16(1000)
else:
pengeras_suara.duty_u16(0)
print(f"Nilai Pot: {nilai_pot}, Sudut: {sudut_servo}")
sleep(0.05)