Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Spielen Sie Musik mit Ihrer Fernbedienung

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Fernbedienung
× 1
IR-Empfänger (generisch)
× 1
Summer
× 1
Adafruit Standard LCD - 16x2 Weiß auf Blau
× 1
Drehpotentiometer (allgemein)
× 1
Widerstand 221 Ohm
× 1

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Hallo Hackster-Community!

Ich bin Simone Adobs und dies ist mein zweites Projekt, das ich auf dieser Seite veröffentlicht habe.

Die Logik dieses Projekts ist sehr einfach:

  • Nimm deine Fernbedienung und wähle die Melodie aus, die du spielen möchtest;
  • Arduino mit dem Summer spielt die Melodie;
  • Auf dem LCD-Bildschirm können Sie die gespielte Musiknote sehen.

Einige Code-Erklärungen:

Dies ist ein Melodiebeispiel, alle Melodien sind so geschrieben:

void melody_example() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Songtitel"); Verzögerung (1000); lcd.clear(); nota_mi(Dauer,Pause); // Musiknote nota_do (Dauer, Pause); // Musiknote lcd.clear (); Verzögerung (100); Reset_AVR(); //Dieser Befehl wird verwendet, um das Arduino zurückzusetzen, ohne eine Taste zu drücken} 

Um den Befehl "Reset_AVR()" zu verwenden, müssen Sie diesen Code oben in die Skizze einfügen:

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

So versteht Arduino, welche Melodie gespielt werden muss:

if (result==12495) { //12495 ist der Code, den meine Fernbedienung sendet, wenn Sie Taste 1 drücken melody_1(); aufrechtzuerhalten. Sonst if (result==6375) {//6375 ist der Code von Taste 2 melody_2(); aufrechtzuerhalten. Sonst if (result==31365) {//31365 ist der Code von Button 3 melody_3(); aufrechtzuerhalten. Sonst if (result==4335) {//4335 ist der Code von Taste 4 melody_4(); } } 
void nota_example(int Dauer, int Pause) { Shut(); // Dieser Befehl ruft eine Funktion auf, die ich unten erklären werde lcd.setCursor (0, 0); lcd.print("Beispiel"); // Den Namen der Musiknote drucken NewTone (11,262, Dauer); ///11->Summer-Pin - 262->Notizcodeverzögerung (Pause); //warte einige Millisekunden}  

Möchtest du die Melodie während der Wiedergabe stoppen?

Kein Problem, dank "shut()" Funktion können Sie die Melodie jederzeit stoppen.

Dies ist die Funktion "shut()":

void Shut() { if (irrecv.decode(&results)) { //Code der gedrückten Schaltfläche empfangen result=results.value, HEX; // Speichern Sie den erhaltenen Code Serial.println (Ergebnis); if (result==-23971) {//-23971 auf meiner Fernbedienung repräsentieren die Schaltfläche zum Herunterfahren Reset_AVR(); // Arduino zurücksetzen}} irrecv.resume (); // Ermöglicht Arduino, einen neuen Code von Remote zu empfangen}  

Ich hoffe, Ihnen wird dieses Projekt gefallen und wenn ja, versuchen Sie, einen Blick auf mein vorheriges Projekt zu werfen.

Schönen Tag..

Simone aus Italien <3

Code

  • Spiel Melodie
Melodie spielenC/C++
Kopieren Sie diesen Code in die Arduino IDE
#include #include #include #include #include #define Reset_AVR() wdt_enable(WDTO_30MS); while(1) {} #define Summer 11 LiquidCrystal lcd(9, 8, 7, 6, 5, 4);int result;int RECV_PIN=2;IRrecv irrecv(RECV_PIN);decode_results Ergebnisse; Void setup () { Serial.begin (9600); lcd.begin(16,2); lcd.setCursor(0,0); lcd.print("-----Wählen-----"); lcd.setCursor(0,1); lcd.print("----Ein Lied!!----"); pinMode (Summer, AUSGANG); irrecv.enableIRIn();} void loop() { if (irrecv.decode(&results)) { result=results.value, HEX; Serial.println (Ergebnis); if (Ergebnis==12495) { ode(); aufrechtzuerhalten. Sonst wenn (Ergebnis==6375) { London(); aufrechtzuerhalten. Sonst if (Ergebnis==31365) {Fell(); aufrechtzuerhalten. Sonst if (Ergebnis==4335) {pirat(); } irrecv.resume(); } Verzögerung (100);} Leeres Fell () { lcd.clear (); lcd.setCursor(0,0); lcd.print("Pelz Elise"); Verzögerung (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(); Verzögerung (100); Reset_AVR();}void london() {lcd.clear(); lcd.setCursor(0,0); lcd.print("London-Brücke"); lcd.setCursor(0,1); lcd.print("Fällt herunter"); Verzögerung (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(); Verzögerung (100); Reset_AVR();}void ode() { lcd.clear(); lcd.setCursor(0,0); lcd.print ("Ode an die Freude"); Verzögerung (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(); Verzögerung (100); Reset_AVR();}void pirate() {lcd.clear(); lcd.setCursor(0,0); lcd.print("Er ist ein Pirat"); Verzögerung (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); Verzögerung (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(); Verzögerung (100); Reset_AVR();}void Shut() { if (irrecv.decode(&results)) { result=results.value, HEX; Serial.println (Ergebnis); if (Ergebnis==-23971) { Reset_AVR(); } } irrecv.resume();}void nota_do (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Tun"); Neuer Ton(11,262, Dauer); // DO Verzögerung (Pause); }void nota_doz (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Do #"); Neuer Ton (11,277, Dauer); // DO Verzögerung (Pause); }void nota_re(int Dauer, int Pause) { geschlossen; lcd.setCursor(0, 0); lcd.print("Re"); Neuer Ton (11,294, Dauer); // RE-Verzögerung (Pause); }void nota_rez(int Dauer, int Pause) { geschlossen; lcd.setCursor(0, 0); lcd.print("Re #"); Neuer Ton(11,311, Dauer); // RE-Verzögerung (Pause); }void nota_mi (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Mi"); NewTone(11,330, Dauer); // MI-Verzögerung (Pause); }void nota_fa (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Fa"); Neuer Ton(11.349, Dauer); // FA-Verzögerung (Pause); }void nota_faz (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Fa#"); NewTone(11.370, Dauer); // FA-Verzögerung (Pause); }void nota_sol (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Sol"); Neuer Ton(11,392, Dauer); // SOL-Verzögerung (Pause); }void nota_solz (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Sol #"); Neuer Ton(11,415, Dauer); // SOL-Verzögerung (Pause); }void nota_la (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("La"); NewTone(11.440,Dauer); // LA Verzögerung (Pause); aufrechtzuerhalten. Void nota_laz (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("La #"); Neuer Ton(11,466, Dauer); // LA Verzögerung (Pause); }void nota_si (int Dauer, int Pause) { Shut(); lcd.setCursor(0, 0); lcd.print("Si"); Neuer Ton(11,494, Dauer); // SI-Verzögerung (Pause); }

Schaltpläne

canzoni_con_tastiera_fQS3978roa.fzz

Herstellungsprozess

  1. Verwenden der IR-Fernbedienung mit Raspberry Pi ohne LIRC
  2. Arduino-Gyroskop-Spiel mit MPU-6050
  3. Discord-Überwachungskamera mit ESP32
  4. Arduino Digital Dice
  5. DIY 37 LED-Roulette-Spiel
  6. Batteriebetriebene TV-Fernbedienung mit 3D-bedrucktem Gehäuse
  7. Kennen Sie die Temperatur Ihres Zuhauses von überall mit der Arduino Cloud!
  8. ATtiny85 Mini Arcade:Schlange
  9. Tragbarer Reichweitendetektor
  10. Steuern Sie Ihre LED mit Cortana