Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Speel muziek af met je afstandsbediening

Componenten en benodigdheden

Arduino UNO
× 1
Afstandsbediening
× 1
IR-ontvanger (algemeen)
× 1
Zoemer
× 1
Adafruit Standaard LCD - 16x2 Wit op Blauw
× 1
Draaipotentiometer (generiek)
× 1
Weerstand 221 ohm
× 1

Apps en online services

Arduino IDE

Over dit project

Hallo Hackster-gemeenschap!

Ik ben Simone Adobs en dit is mijn tweede project dat ik op deze site heb uitgebracht.

De logica van dit project is heel eenvoudig:

  • Pak je afstandsbediening en selecteer de melodie die je wilt spelen;
  • Arduino met de zoemer speelt de melodie;
  • Op het LCD-scherm kun je de gespeelde muzieknoot zien.

Wat uitleg over de code:

Dit is een voorbeeld van een melodie, alle melodieën zijn op deze manier geschreven:

void melody_example() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Songtitel"); vertraging (1000); lcd.wissen(); nota_mi(duur,pauze); // muzieknoot nota_do (duur, pauze); //muzieknoot lcd.clear(); vertraging (100); Reset_AVR(); //Deze opdracht wordt gebruikt om de Arduino te resetten zonder op een knop te drukken} 

Om de opdracht "Reset_AVR()" te gebruiken, moet u deze code bovenaan de schets plaatsen:

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

Zo begrijpt Arduino welke melodie gespeeld moet worden:

if (result==12495) { //12495 is de code die mijn Remote verzendt wanneer je op knop 1 drukt melody_1(); } else if (result==6375) { //6375 is de code van knop 2 melody_2(); } else if (result==31365) { //31365 is de code van knop 3 melody_3(); } else if (result==4335) { //4335 is de code van knop 4 melody_4(); } } 
void nota_example(int duur, int pauze) { shut(); // Deze opdracht roept een functie aan die ik zal uitleggen lcd.setCursor (0, 0); lcd.print("Voorbeeld"); // Druk de muzieknootnaam af NewTone (11,262, duur); //11->Buzzer Pin - 262->noteer codevertraging (pauze); //wacht enkele milliseconden}  

Wilt u de melodie stoppen wanneer deze wordt afgespeeld?

Geen probleem, dankzij de "shut()"-functie kun je de melodie stoppen wanneer je maar wilt.

Dit is "shut()" Functie:

void shut() { if (irrecv.decode(&results)) { //Ontvang de code van de ingedrukte knop result=results.value, HEX; // Bewaar de ontvangen code Serial.println (resultaat); if (result==-23971) {//-23971 op mijn afstandsbediening vertegenwoordigen de afsluitknop Reset_AVR(); //Reset Arduino } } onrev.resume(); //Hiermee kan Arduino een nieuwe code ontvangen van Remote}  

Ik hoop dat je dit project leuk vindt en als dat zo is, kijk dan eens naar mijn vorige project.

Een fijne dag verder..

Simone uit Italië <3

Code

  • Speel melodie af
Speel MelodyC/C++
Kopieer deze code in 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 resultaten; void setup() { Serial.begin(9600); lcd.begin(16,2); lcd.setCursor(0,0); lcd.print("-----Kies-----"); lcd.setCursor(0,1); lcd.print("----Een nummer!!----"); pinMode (zoemer, UITGANG); irrecv.enableIRIn();} void loop() {if (irrecv.decode(&results)) { result=results.value, HEX; Serial.println(resultaat); if (resultaat==12495) { ode(); } else if (result==6375) { londen(); } else if (result==31365) { fur(); } else if (result==4335) { pirate(); } onrev.resume(); } vertraging(100);} void fur() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Fur Elise"); vertraging (1000); lcd.wissen(); 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.wissen(); vertraging (100); Reset_AVR();}void london() { lcd.clear(); lcd.setCursor(0,0); lcd.print("London Bridge"); lcd.setCursor(0,1); lcd.print("Valt naar beneden"); vertraging (1000); lcd.wissen(); 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.wissen(); vertraging (100); Reset_AVR();}void ode() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Ode aan de Vreugde"); vertraging (1000); lcd.wissen(); 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.wissen(); vertraging (100); Reset_AVR();}void pirate() { lcd.clear(); lcd.setCursor(0,0); lcd.print("Hij is een piraat"); vertraging (1000); lcd.wissen(); 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); vertraging (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.wissen(); vertraging (100); Reset_AVR();}void shut() { if (irrecv.decode(&results)) { result=results.value, HEX; Serial.println(resultaat); if (resultaat==-23971) { Reset_AVR(); } } irrecv.resume();}void nota_do(int duration, int pause) { shut(); lcd.setCursor(0, 0); lcd.print("Doe "); NewTone (11,262, duur); // DO vertraging (pauze); }void nota_doz(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Doe # "); NewTone(11,277,duur); // DO vertraging (pauze); }void nota_re(int duur, int pauze) { gesloten; lcd.setCursor(0, 0); lcd.print("Re "); NewTone(11,294,duur); //RE vertraging (pauze); }void nota_rez(int duur, int pauze) { gesloten; lcd.setCursor(0, 0); lcd.print("Re # "); NewTone(11,311,duur); //RE vertraging (pauze); }void nota_mi(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Mi "); NewTone(11.330,duur); //MI vertraging (pauze); }void nota_fa(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Fa "); NewTone(11,349,duur); //FA vertraging (pauze); }void nota_faz(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Fa # "); NewTone(11.370,duur); //FA vertraging (pauze); }void nota_sol(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Sol"); NewTone (11,392, duur); //SOL vertraging (pauze); }void nota_solz(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Sol # "); NewTone(11,415,duur); //SOL vertraging (pauze); }void nota_la(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("La "); NewTone(11.440,duur); // LA vertraging (pauze); } void nota_laz(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("La # "); NewTone(11,466,duur); // LA vertraging (pauze); }void nota_si(int duur, int pauze) { shut(); lcd.setCursor(0, 0); lcd.print("Si "); NewTone(11,494,duur); //SI vertraging (pauze); }

Schema's

canzoni_con_tastiera_fQS3978roa.fzz

Productieproces

  1. IR-afstandsbediening gebruiken met Raspberry Pi zonder LIRC
  2. Arduino-gyroscoopspel met MPU-6050
  3. Discord Beveiligingscamera met een ESP32
  4. Arduino digitale dobbelstenen
  5. DIY 37 LED Roulette Game
  6. Tv-afstandsbediening op batterijen met 3D-geprint hoesje
  7. Ken de temperatuur van uw huis overal met Arduino Cloud!
  8. ATtiny85 Mini Arcade:Snake
  9. Draagbare afstandsdetector
  10. Bedien uw led met Cortana
  11. Grijperbot met afstandsbediening