Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Jouer de la musique avec votre télécommande

Composants et fournitures

Arduino UNO
× 1
Télécommande
× 1
Récepteur IR (générique)
× 1
Sonnerie
× 1
Adafruit Standard LCD - 16x2 Blanc sur Bleu
× 1
Potentiomètre rotatif (générique)
× 1
Résistance 221 ohm
× 1

Applications et services en ligne

Arduino IDE

À propos de ce projet

Bonjour la communauté Hackster !

Je suis Simone Adobs et c'est mon deuxième projet que je publie sur ce site.

La logique de ce projet est très simple :

  • Prenez votre télécommande et sélectionnez la mélodie que vous souhaitez jouer ;
  • Arduino avec le buzzer jouera la mélodie ;
  • Sur l'écran LCD, vous pouvez voir la note musicale jouée.

Quelques explications de code :

Ceci est un exemple de mélodie, toutes les mélodies sont écrites de cette manière :

void melody_example() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Titre de la chanson"); retard(1000); lcd.clear(); nota_mi(durée,pause); //note de musique nota_do(duration,pause); //note de musique lcd.clear(); retard (100); Reset_AVR(); //Cette commande est utilisée pour réinitialiser l'Arduino sans appuyer sur aucun bouton} 

Pour utiliser la commande "Reset_AVR()", vous devez mettre ce code en haut du croquis :

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

Voici comment Arduino comprend quelle mélodie doit être jouée :

if (result==12495) { //12495 est le code que ma télécommande envoie lorsque vous appuyez sur le bouton 1 melody_1(); } else if (result==6375) { //6375 est le code du bouton 2 melody_2(); } else if (result==31365) { //31365 est le code du bouton 3 melody_3(); } else if (result==4335) { //4335 est le code du bouton 4 melody_4(); } } 
void nota_example(int duration, int pause) { close(); //Cette commande appelle une fonction que je vais expliquer vers le bas lcd.setCursor(0, 0); lcd.print("Exemple "); //Imprime le nom de la note musicale NewTone(11,262,duration); //11->Buzzer Pin - 262->Retard de code de note (pause); //attendre quelques millisecondes}  

Voulez-vous arrêter la mélodie lorsqu'elle joue ?

Pas de problème, grâce à la fonction "shut()" vous pouvez arrêter la mélodie à tout moment.

C'est la fonction "fermer()" :

void shutdown() { if (irrecv.decode(&results)) { //Recevoir le code du bouton appuyé result=results.value, HEX; //Enregistrer le code reçu Serial.println(result); if (result==-23971) { //-23971 sur ma télécommande représente le bouton d'arrêt Reset_AVR(); //Réinitialiser Arduino } } irrecv.resume(); //Permet à Arduino de recevoir un nouveau code de Remote}  

J'espère que vous aimerez ce projet et si c'est le cas, essayez de jeter un œil à mon projet précédent.

Bonne journée..

Simone d'Italie <3

Code

  • Jouer la mélodie
Jouer MélodieC/C++
Copiez ce code dans 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 result;int RECV_PIN=2;IRrecv irrecv(RECV_PIN);decode_results results; void setup() { Serial.begin(9600); lcd.begin (16,2); lcd.setCursor(0,0); lcd.print("-----Choisissez-----"); lcd.setCursor(0,1) ; lcd.print("----Une chanson!!----"); pinMode(buzzer, SORTIE); irrecv.enableIRIn();} void loop() { if (irrecv.decode(&results)) { result=results.value, HEX; Serial.println(résultat); if (résultat==12495) { ode(); } else if (résultat==6375) { london(); } else if (résultat==31365) { fur(); } else if (résultat==4335) { pirate(); } irrecv.resume(); } delay(100);} void fur() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Fourrure Elise"); retard(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(); retard (100); Reset_AVR();}void london() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Pont de Londres"); lcd.setCursor(0,1) ; lcd.print("Est en train de tomber"); retard(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(); retard (100); Reset_AVR();}void ode() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Hymne à la joie"); retard(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(); retard (100); Reset_AVR();}void pirate() { lcd.clear(); lcd.setCursor(0,0); lcd.print("C'est un pirate"); retard(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); retard (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(); retard (100); Reset_AVR();}void shutdown() { if (irrecv.decode(&results)) { result=results.value, HEX; Serial.println(résultat); if (résultat==-23971) { Reset_AVR(); } } irrecv.resume();}void nota_do(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Faire "); NewTone (11 262, durée); //DO delay(pause); }void nota_doz(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Faire # "); NewTone (11 277, durée); //DO delay(pause); }void nota_re(int durée, int pause) { fermé; lcd.setCursor(0, 0); lcd.print("Re "); NewTone (11 294, durée); //RE retard (pause); }void nota_rez(int durée, int pause) { fermé ; lcd.setCursor(0, 0); lcd.print("Re # "); NewTone (11 311, durée); //RE retard (pause); }void nota_mi(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Mi "); NewTone (11 330, durée); //MI retard (pause); }void nota_fa(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Fa "); NewTone (11 349, durée); //FA retard (pause); }void nota_faz(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Fa # "); NewTone (11 370, durée); //FA retard (pause); }void nota_sol(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Sol "); NewTone (11 392, durée); //Délai SOL (pause); }void nota_solz(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Sol # "); NewTone (11 415, durée); //Délai SOL (pause); }void nota_la(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("La "); NewTone (11 440, durée); //LA retard (pause); } void nota_laz(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("La # "); NewTone (11 466, durée); //LA retard (pause); }void nota_si(int durée, int pause) { fermé(); lcd.setCursor(0, 0); lcd.print("Si "); NewTone (11 494, durée); //Délai SI(pause); }

Schémas

canzoni_con_tastiera_fQS3978roa.fzz

Processus de fabrication

  1. Utilisation de la télécommande infrarouge avec Raspberry Pi sans LIRC
  2. Jeu de gyroscope Arduino avec MPU-6050
  3. Caméra de sécurité Discord avec ESP32
  4. Dés numériques Arduino
  5. Jeu de roulette DIY 37 LED
  6. Télécommande TV alimentée par batterie avec boîtier imprimé en 3D
  7. Connaître la température de votre maison depuis n'importe où avec Arduino Cloud !
  8. Mini arcade ATtiny85 :Serpent
  9. Détecteur de portée portable