Controle de Reprodução de Música com Controle Remoto: Um Projeto Simples com Arduino
Componentes e Materiais
- 1x Arduino UNO
- 1x Controle remoto IR
- 1x Receptor IR (genérico)
- 1x Buzzer
- 1x Display LCD 16x2 (branco sobre azul)
- 1x Potenciômetro rotativo (genérico)
- 1x Resistor 221 ohm
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
Olá, comunidade Hackster! Sou Simone Adobs e este é meu segundo projeto publicado aqui.
A Lógica do Projeto
A lógica é muito simples:
- Use o controle remoto para selecionar a melodia desejada;
- O Arduino com o buzzer toca a melodia;
- No display LCD, você vê a nota musical sendo reproduzida.
Explicação do Código
As melodias são escritas como funções. Exemplo:
void melody_example() {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Título da Música");
delay(1000);
lcd.clear();
nota_mi(duracao,pausa); // nota musical
nota_do(duracao,pausa); // nota musical
lcd.clear();
delay(100);
Reset_AVR(); // Reinicia o Arduino sem pressionar botão
}
Para usar o comando Reset_AVR(), adicione no topo do sketch:
#include <avr/io.h>
#include <avr/wdt.h>
#define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {}
O Arduino identifica qual melodia tocar através dos códigos IR recebidos:
if (result==12495) { melody_1(); }
else if (result==6375) { melody_2(); }
else if (result==31365) { melody_3(); }
else if (result==4335) { melody_4(); }
Cada nota é uma função que toca a frequência correspondente e mostra o nome no LCD:
void nota_exemplo(int duracao, int pausa) {
shut();
lcd.setCursor(0, 0);
lcd.print("Exemplo ");
NewTone(11,262,duracao); // Pino 11 -> Buzzer, 262 -> código da nota
delay(pausa);
}
Quer parar a melodia enquanto toca? Sem problemas! A função shut() permite interromper a qualquer momento:
void shut() {
if (irrecv.decode(&results)) {
result=results.value, HEX;
Serial.println(result);
if (result==-23971) { // Botão de desligar do meu controle
Reset_AVR();
}
}
irrecv.resume();
}
Espero que gostem! Deem uma olhada no meu projeto anterior também.
Tenham um bom dia!
Simone da Itália <3
Código Completo
O código completo está disponível no projeto original. Inclui as bibliotecas LiquidCrystal.h, IRremote.h, NewTone.h e as funções para quatro melodias: "Für Elise", "London Bridge", "Ode to Joy" e "He's a Pirate".
Esquemático
O diagrama de conexões (arquivo Fritzing) mostra a ligação de todos os componentes.
Processo de manufatura
- Capturar Comandos de Controle Remoto IR no Raspberry Pi sem LIRC: Abordagem Python UART
- Construa um Jogo em Tempo Real com Giroscópio: Arduino Nano + Sensor MPU-6050
- Câmera de Segurança com Detecção de Movimento ESP32-CAM para Discord
- Dados Digital com Arduino: Gere Números Aleatórios 1-6 em LCD 16x2
- Construa Seu Próprio Jogo de Roleta com 37 LEDs e Arduino Nano
- Controle Remoto TV Personalizado com Arduino – Bateria e Gabinete 3D
- Monitore a Temperatura da Sua Casa de Qualquer Lugar com Integração Arduino Cloud
- ATtiny85 Mini Arcade: Snake – Construa um Console Portátil de Jogos OLED
- Detector de Alcance Portátil – Kit DIY Arduino Nano com HC-SR04, Bateria 18650 e Gabinete 3D
- Controle de LED Arduino com Cortana via Bluetooth no Windows 10