Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Reproducir música con su control remoto

Componentes y suministros

Arduino UNO
× 1
Control remoto
× 1
Receptor de infrarrojos (genérico)
× 1
Buzzer
× 1
LCD estándar Adafruit - 16x2 blanco sobre azul
× 1
Potenciómetro giratorio (genérico)
× 1
Resistencia 221 ohm
× 1

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

¡Hola comunidad de piratas informáticos!

Soy Simone Adobs y este es mi segundo proyecto que publico en este sitio.

La lógica de este proyecto es muy simple:

  • Tome su control remoto y seleccione la melodía que desea tocar;
  • Arduino con el Buzzer reproducirá la melodía;
  • En la pantalla LCD puede ver la nota musical tocada.

Alguna explicación del código:

Este es un ejemplo de melodía, todas las melodías están escritas de esta manera:

  void melody_example () {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Título de la canción"); retraso (1000); lcd.clear (); nota_mi (duración, pausa); // nota musical nota_do (duración, pausa); // nota musical lcd.clear (); retraso (100); Reset_AVR (); // Este comando se usa para reiniciar el Arduino sin presionar ningún botón}  

Para usar el comando "Reset_AVR ()" debe poner este código en la parte superior del boceto:

  #include  #include  #define Reset_AVR () wdt_enable (WDTO_30MS); while (1) {}  

Así es como Arduino entiende qué melodía se debe tocar:

  if (result ==12495) {// 12495 es el código que envía mi Remote cuando presiona el botón 1 melody_1 (); } else if (resultado ==6375) {// 6375 es el código del botón 2 melody_2 (); } else if (result ==31365) {// 31365 es el código del botón 3 melody_3 (); } else if (resultado ==4335) {// 4335 es el código del botón 4 melody_4 (); }}  
  void nota_example (int duración, int pausa) {cerrar (); // Este comando llama a una función que explicaré lcd.setCursor (0, 0); lcd.print ("Ejemplo"); // Imprime el nombre de la nota musical NewTone (11,262, duración); // 11-> Buzzer Pin - 262-> código de nota retardo (pausa); // espera unos milisegundos}  

¿Quieres detener la melodía mientras se reproduce?

No hay problema, gracias a la función "shut ()" puedes detener la melodía cada vez que quieras.

Esta es la función "shut ()":

  void shut () {if (irrecv.decode (&results)) {// Recibe el código del botón presionado result =results.value, HEX; // Guarde el código recibido Serial.println (resultado); if (result ==- 23971) {// - 23971 en mi control remoto representa el botón de apagado Reset_AVR (); // Restablecer Arduino}} irrecv.resume (); // Permite a Arduino recibir un nuevo código de Remote}  

Espero que le guste este proyecto y, si es así, intente echarle un vistazo a mi proyecto anterior.

Que tengas un buen día ...

Simone de Italia <3

Código

  • Reproducir melodía
Reproducir melodía C / C ++
Copie este código en Arduino IDE
 #include  #include  #include  #include  #include  #define Reset_AVR () wdt_enable (WDTO_30MS); while (1) {} #define buzzer 11 LiquidCrystal lcd (9, 8, 7, 6, 5, 4); int resultado; int RECV_PIN =2; IRrecv irrecv (RECV_PIN); decode_results resultados; configuración vacía () {Serial.begin (9600); lcd. comienzo (16,2); lcd.setCursor (0,0); lcd.print ("----- Elija -----"); lcd.setCursor (0,1); lcd.print ("---- ¡¡Una canción !! ----"); pinMode (zumbador, SALIDA); irrecv.enableIRIn ();} void loop () {if (irrecv.decode (&results)) {result =results.value, HEX; Serial.println (resultado); si (resultado ==12495) {oda (); } más si (resultado ==6375) {londres (); } más si (resultado ==31365) {piel (); } más si (resultado ==4335) {pirata (); } irrecv.resume (); } delay (100);} void fur () {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Fur Elise"); retraso (1000); lcd.clear (); nota_mi (150.200); nota_rez (150.200); nota_mi (150.200); nota_rez (150.200); nota_mi (150.200); nota_si (150.200); nota_rez (150.200); nota_do (150.200); nota_la (450,300); nota_do (150.200); nota_mi (150.200); nota_la (150.200); nota_si (450,300); nota_mi (150.200); nota_solz (150.200); nota_si (150.200); nota_do (450,300); nota_mi (150.200); nota_mi (150.200); nota_rez (150.200); nota_mi (150.200); nota_rez (150.200); nota_mi (150.200); nota_si (150.200); nota_rez (150.200); nota_do (150.200); nota_la (450,300); nota_do (150.200); nota_mi (150.200); nota_la (150.200); nota_sol (450,300); nota_mi (150.200); nota_do (150.200); nota_si (150.200); nota_la (600,800); nota_mi (150.200); nota_rez (150.200); nota_mi (150.200); nota_rez (150.200); nota_mi (150.200); nota_si (150.200); nota_rez (150.200); nota_do (150.200); nota_la (450,300); nota_do (150.200); nota_mi (150.200); nota_la (150.200); nota_si (450,300); nota_mi (150.200); nota_solz (150.200); nota_si (150.200); nota_do (450,300); lcd.clear (); retraso (100); Reset_AVR ();} void london () {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Puente de Londres"); lcd.setCursor (0,1); lcd.print ("Se está cayendo"); retraso (1000); lcd.clear (); nota_sol (450,600); nota_la (150.200); nota_sol (300,400); nota_fa (300,400); nota_mi (300,400); nota_fa (300,400); nota_sol (600,800); nota_re (300,400); nota_mi (300,400); nota_fa (600,800); nota_mi (300,400); nota_fa (300,400); nota_sol (600,800); nota_sol (450,600); nota_la (150.200); nota_sol (300,400); nota_fa (300,400); nota_mi (300,400); nota_fa (300,400); nota_sol (600,800); nota_re (600.800); nota_sol (600,800); nota_mi (300,400); nota_do (450,600); lcd.clear (); retraso (100); Reset_AVR ();} void ode () {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Oda a la alegría"); retraso (1000); lcd.clear (); nota_mi (300,400); nota_mi (300,400); nota_fa (300,400); nota_sol (300,400); nota_sol (300,400); nota_fa (300,400); nota_mi (300,400); nota_re (300,400); nota_do (300,400); nota_do (300,400); nota_re (300,400); nota_mi (300,400); nota_mi (450,600); nota_re (150.200); nota_re (600.800); nota_mi (300,400); nota_mi (300,400); nota_fa (300,400); nota_sol (300,400); nota_sol (300,400); nota_fa (300,400); nota_mi (300,400); nota_re (300,400); nota_do (300,400); nota_do (300,400); nota_re (300,400); nota_mi (300,400); nota_re (450,600); nota_do (150.200); nota_do (600,800); nota_re (300,400); nota_re (300,400); nota_mi (300,400); nota_do (300,400); nota_re (300,400); nota_mi (150.200); nota_fa (150.200); nota_mi (300,400); nota_do (300,400); nota_re (300,400); nota_mi (150.200); nota_fa (150.200); nota_mi (300,400); nota_re (300,400); nota_do (300,400); nota_re (300,400); nota_sol (600,800); nota_mi (300,400); nota_mi (300,400); nota_fa (300,400); nota_sol (300,400); nota_sol (300,400); nota_fa (300,400); nota_mi (300,400); nota_re (300,400); nota_do (300,400); nota_do (300,400); nota_re (300,400); nota_mi (300,400); nota_re (450,600); nota_do (150.200); nota_do (600,800); lcd.clear (); retraso (100); Reset_AVR ();} void pirate () {lcd.clear (); lcd.setCursor (0,0); lcd.print ("Es un pirata"); retraso (1000); lcd.clear (); nota_mi (150.200); nota_sol (150.200); nota_la (300,400); nota_la (300,400); nota_la (150.200); nota_si (150.200); nota_do (300,400); nota_do (300,400); nota_do (150.200); nota_re (150.200); nota_si (300 400); nota_si (300 400); nota_la (150.200); nota_sol (150.200); nota_sol (150.200); nota_la (450,600); nota_mi (150.200); nota_sol (150.200); nota_la (300,400); nota_la (300,400); nota_la (150.200); nota_si (150.200); nota_do (300,400); nota_do (300,400); nota_do (150.200); nota_re (150.200); nota_si (300 400); nota_si (300 400); nota_la (150.200); nota_sol (150.200); nota_la (300,400); retraso (400); nota_mi (150.200); nota_sol (150.200); nota_la (300,400); nota_la (300,400); nota_la (150.200); nota_do (150.200); nota_re (300,400); nota_re (300,400); nota_re (150.200); nota_mi (150.200); nota_fa (300,400); nota_fa (300,400); nota_mi (150.200); nota_re (150.200); nota_mi (150.200); nota_la (450,600); nota_la (150.200); nota_si (150.200); nota_do (300,400); nota_do (300,400); nota_re (300,400); nota_mi (150.200); nota_la (450,600); nota_la (150.200); nota_do (150.200); nota_si (300 400); nota_si (300 400); nota_do (150.200); nota_la (150.200); nota_si (900,1200); nota_si (300 400); nota_si (300 400); nota_do (150.200); nota_la (150.200); nota_si (900,1200); nota_si (300 400); nota_si (300 400); nota_la (150.200); nota_sol (150.200); nota_la (600,800); lcd.clear (); retraso (100); Reset_AVR ();} void shut () {if (irrecv.decode (&results)) {result =results.value, HEX; Serial.println (resultado); si (resultado ==- 23971) {Reset_AVR (); }} irrecv.resume ();} void nota_do (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Hacer"); NewTone (11,262, duración); // HACER retraso (pausa); } void nota_doz (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Hacer #"); NewTone (11,277, duración); // HACER retraso (pausa); } void nota_re (int duración, int pausa) {cerrar; lcd.setCursor (0, 0); lcd.print ("Re"); NewTone (11,294, duración); // RE retardo (pausa); } void nota_rez (int duración, int pausa) {cerrar; lcd.setCursor (0, 0); lcd.print ("Re #"); NewTone (11,311, duración); // RE retardo (pausa); } void nota_mi (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Mi"); NewTone (11,330, duración); // Retardo MI (pausa); } void nota_fa (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Fa"); NewTone (11,349, duración); // FA retardo (pausa); } void nota_faz (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Fa #"); NewTone (11,370, duración); // FA retardo (pausa); } void nota_sol (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Sol"); NewTone (11,392, duración); // Retardo SOL (pausa); } void nota_solz (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Sol #"); NewTone (11,415, duración); // Retardo SOL (pausa); } void nota_la (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("La"); NewTone (11440, duración); // LA demora (pausa); } void nota_laz (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("La #"); NewTone (11,466, duración); // LA demora (pausa); } void nota_si (int duración, int pausa) {cerrar (); lcd.setCursor (0, 0); lcd.print ("Si"); NewTone (11,494, duración); // Retardo SI (pausa); } 

Esquemas

canzoni_con_tastiera_fQS3978roa.fzz

Proceso de manufactura

  1. Uso del control remoto por infrarrojos con Raspberry Pi sin LIRC
  2. Juego de giroscopio Arduino con MPU-6050
  3. Cámara de seguridad Discord con ESP32
  4. Dados digitales Arduino
  5. Juego de ruleta DIY 37 LED
  6. Control remoto de TV a batería con carcasa impresa en 3D
  7. ¡Conoce la temperatura de tu hogar desde cualquier lugar con Arduino Cloud!
  8. ATtiny85 Mini Arcade:Serpiente
  9. Detector de alcance portátil
  10. Controla tu LED con Cortana
  11. Bot de agarre de control remoto