from machine import Pin, PWM
import time
class RGBLed:
def __init__(self, red_pin, green_pin, blue_pin):
self.red = PWM(Pin(red_pin), freq=1000)
self.green = PWM(Pin(green_pin), freq=1000)
self.blue = PWM(Pin(blue_pin), freq=1000)
def set_color(self, r, g, b):
self.red.duty(r)
self.green.duty(g)
self.blue.duty(b)
class Buzzer:
def __init__(self, buzzer_pin):
self.buzzer = PWM(Pin(buzzer_pin), freq=1000)
self.volume = 512
self.freq = 1000
def set_volume(self, volume):
self.volume = volume
self.buzzer.duty(volume)
def set_frequency(self, freq):
self.freq = freq
self.buzzer.freq(freq)
def play_sound(self, duration):
self.buzzer.duty(self.volume)
time.sleep(duration)
self.buzzer.duty(0)
button1 = Pin(0, Pin.IN)
button2 = Pin(4, Pin.IN)
button3 = Pin(5, Pin.IN)
rgb_led = RGBLed(14, 12, 13)
buzzer = Buzzer(15)
colors = [(1023, 0, 0), (0, 1023, 0), (0, 0, 1023), (1023, 1023, 0), (0, 1023, 1023), (1023, 0, 1023), (1023, 1023, 1023)]
color_index = 0
def switch_color():
global color_index
color_index = (color_index + 1) % len(colors)
rgb_led.set_color(*colors[color_index])
def adjust_volume():
if buzzer.volume == 1023:
buzzer.set_volume(512)
else:
buzzer.set_volume(1023)
def adjust_frequency():
if buzzer.freq == 1000:
buzzer.set_frequency(2000)
else:
buzzer.set_frequency(1000)
while True:
if button1.value() == 0:
switch_color()
time.sleep(0.3)
if button2.value() == 0:
adjust_volume()
time.sleep(0.3)
if button3.value() == 0:
adjust_frequency()
time.sleep(0.3)
buzzer.play_sound(1)
time.sleep(5)