from machine import ADC, Pin
import usb_hid
import time
# Volume keys HID report
VOLUME_UP = 0x80
VOLUME_DOWN = 0x81
MUTE = 0x7F
pot = ADC(26)
switch = Pin(14, Pin.IN, Pin.PULL_DOWN)
last_volume = -1
last_mute = -1
def send_hid(code):
report = bytearray(4)
report[0] = code
usb_hid.report(3, report)
time.sleep(0.05)
usb_hid.report(3, b'\x00\x00\x00\x00')
while True:
# Lê volume
raw = pot.read_u16()
volume = int((raw / 65535) * 100) # 0–100%
if last_volume == -1:
last_volume = volume
# Ajuste de volume
if volume > last_volume + 2:
send_hid(VOLUME_UP)
last_volume = volume
elif volume < last_volume - 2:
send_hid(VOLUME_DOWN)
last_volume = volume
# Chave Mute
mute_state = switch.value()
if mute_state != last_mute:
send_hid(MUTE)
last_mute = mute_state
time.sleep(0.05)