from machine import Pin, ADC, PWM
import time
class Servo:
def __init__(self, pin = 13) -> None:
self.servo = PWM(Pin(pin), freq = 50)
def refresh(self, perc):
duty_min=26
duty_max=123
angle = perc *1.8
self.servo.duty(int(duty_min+(angle/180)*(duty_max-duty_min)))
class Fotoresistore:
def __init__(self, pin = 0) -> None:
self.fotoresistore = ADC(Pin(pin))
def readPerc(self):
minVal=0
maxVal=100
return 100-((maxVal-minVal) * self.fotoresistore.read() / 4095)
class LedBuzzer:
def __init__(self, pinLed = 15, pinBuzzer = 2) -> None:
self.led = Pin (pinLed, Pin.OUT)
self.buzzer = PWM(Pin(pinBuzzer, Pin.OUT))
def refresh(self, perc):
if perc<=20:
self.led.on()
self.buzzer.freq(440)
self.buzzer.duty(50)
else:
self.led.off()
self.buzzer.duty(0)
fotoresisotre = Fotoresistore()
ledBuzzer = LedBuzzer()
servo = Servo()
while True:
perc = (int)(fotoresisotre.readPerc())
print(perc)
ledBuzzer.refresh(perc)
servo.refresh(perc)
time.sleep_ms(100)