Você já pensou em ter um controle físico para ajustar o volume, pausar ou mutar sua música ou vídeo favorito, tudo isso com um simples giro ou clique? Neste tutorial prático, vamos mostrar como criar um controle de mídia USB usando o Arduino Leonardo ou Pro Micro, com um design simples e funcional.
Esse projeto é ideal para quem está começando com HID (Human Interface Device) no Arduino, e quer entender como seu microcontrolador pode se comunicar diretamente com o computador para enviar comandos de mídia, como se fosse um teclado ou controle remoto.

Materiais Necessários
Para montar o seu controle, você vai precisar de:
- 1x Arduino Leonardo (ou Pro Micro)
- 1x Potenciômetro linear de 10k (modelo B10K)
- 2x Botões push-button
- 1x Protoboard
- Jumpers (fios de conexão)
- 1x Cabo USB para conectar ao computador
Montagem – Diagrama de Ligações
Monte os componentes conforme a tabela abaixo. A protoboard vai te ajudar a organizar as conexões com facilidade:
Componente | Pino no Arduino | Conexão |
Potenciômetro | A0 | Pino central → A0Pinos laterais → 5V e GND |
Botão Play/Pause | D2 | Um terminal → D2Outro terminal → GND |
Botão Mute | D3 | Um terminal → D2Outro terminal → GND |
Dica: Se preferir não usar INPUT_PULLUP no código, adicione resistores de pull-down (10kΩ) nos botões.
Código Completo
Abaixo está o código que fará tudo funcionar. Ele usa a biblioteca HID-Project, que permite enviar comandos HID como se o Arduino fosse um teclado ou controle multimídia.
#include <HID-Project.h>
const int potVolume = A0;
const int btnPlay = 2;
const int btnMute = 3;
int lastVolume = -1;
bool lastPlayState = HIGH;
bool lastMuteState = HIGH;
void setup() {
Consumer.begin();
pinMode(btnPlay, INPUT_PULLUP);
pinMode(btnMute, INPUT_PULLUP);
}
void loop() {
int currentVolume = analogRead(potVolume);
if (abs(currentVolume – lastVolume) > 5) {
if (currentVolume > lastVolume) {
Consumer.write(MEDIA_VOL_UP);
} else {
Consumer.write(MEDIA_VOL_DOWN);
}
lastVolume = currentVolume;
delay(30);
}
if (digitalRead(btnPlay) == LOW && lastPlayState == HIGH) {
Consumer.write(MEDIA_PLAY_PAUSE);
delay(200);
while(digitalRead(btnPlay) == LOW);
}
lastPlayState = digitalRead(btnPlay);
if (digitalRead(btnMute) == LOW && lastMuteState == HIGH) {
Consumer.write(MEDIA_VOL_MUTE);
delay(200);
while(digitalRead(btnMute) == LOW);
}
lastMuteState = digitalRead(btnMute);
delay(10);
}
Como Funciona?
- Potenciômetro (A0): conforme você gira, ele altera o valor lido. Se o valor mudar significativamente, o código envia um comando de aumento ou redução de volume.
- Botão Play/Pause (D2): ao pressionar, o Arduino envia o comando MEDIA_PLAY_PAUSE.
- Botão Mute (D3): um clique envia o comando MEDIA_VOL_MUTE, ativando ou desativando o som.
Personalizações e Expansões
Esse projeto é totalmente modular, e você pode melhorar ainda mais:
- Adicionar novos botões: para avançar/faixa anterior usando os comandos MEDIA_NEXT e MEDIA_PREV em pinos livres como D4, D5.
- Scroll com outro potenciômetro:
cpp
CopiarEditar
if (scrollValue > lastScrollValue) {
AbsoluteMouse.move(0, 0, -1); // Scroll para baixo
} else {
AbsoluteMouse.move(0, 0, 1); // Scroll para cima
}
- LED de feedback: conecte um LED ao pino D13 para indicar visualmente quando o Mute está ativo.

Conclusão
Agora você tem um controle físico de mídia funcional e estiloso! Um ótimo projeto para aplicar conceitos de eletrônica, leitura analógica e comunicação HID com o computador. Ele é simples de montar, fácil de programar e muito útil no dia a dia.
Dica extra: Encaixe tudo dentro de uma caixa plástica ou impressa em 3D e utilize knobs estilosos para dar um acabamento profissional.
Ficou com vontade de expandir o projeto? Que tal adicionar controles de brilho, zoom, ou até integração com softwares específicos? Solte a criatividade e comente o que você gostaria de fazer a seguir!
Veja nosso projeto pronto em nosso Instagram
Saiba mais sobre a parceria Saravati e Sara Educação
Este “Guia de Montagem” é uma colaboração especial entre a Saravati e a Sara Educação, criado pelo Professor Felipe Rosa. Nosso objetivo é enriquecer a comunidade de entusiastas da eletrônica, IoT e automação com recursos educacionais de alta qualidade. Através dessa parceria, buscamos inspirar e capacitar criadores em seus projetos, disponibilizando esses guias em nosso blog e nas redes sociais.