リモコンで音楽を再生する
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
アプリとオンラインサービス
> |
|
このプロジェクトについて
こんにちはハックスターコミュニティ!
私はSimoneAdobsです。これは、このサイトでリリースした2番目のプロジェクトです。
このプロジェクトのロジックは非常に単純です:
- リモコンを持って、再生したいメロディーを選択します;
- ブザー付きのArduinoがメロディーを再生します;
- LCD画面で、演奏された音符を確認できます。
コードの説明:
これはメロディーの例です。すべてのメロディーは次のように書かれています:
void melody_example(){lcd.clear(); lcd.setCursor(0,0); lcd.print( "曲名"); delay(1000); lcd.clear(); nota_mi(duration、pause); //音符nota_do(duration、pause); //音符lcd.clear(); delay(100); Reset_AVR(); //このコマンドは、ボタンを押さずにArduinoをリセットするために使用されます}
「Reset_AVR()」コマンドを使用するには、次のコードをスケッチの先頭に配置する必要があります。
#include #include #define Reset_AVR()wdt_enable(WDTO_30MS); while(1){}
これは、Arduinoがどのメロディーを演奏する必要があるかを理解する方法です:
if(result ==12495){// 12495は、ボタン1を押したときにリモートが送信するコードですmelody_1(); } else if(result ==6375){// 6375はボタン2のコードmelody_2(); } else if(result ==31365){// 31365はボタン3のコードですmelody_3(); } else if(result ==4335){// 4335はボタン4のコードですmelody_4(); }}
void nota_example(int duration、int pause){shut(); //このコマンドは、説明する関数を呼び出しますlcd.setCursor(0、0); lcd.print( "例"); //音符名を出力しますNewTone(11,262、duration); // 11->ブザーピン-262->ノートコード遅延(一時停止); //数ミリ秒待つ}
演奏中にメロディーを停止しますか?
「shut()」関数のおかげで、いつでもメロディーを止めることができます。
これは「shut()」関数です:
void shut(){if(irrecv.decode(&results)){//押されたボタンのコードを受け取るresult =results.value、HEX; //受け取ったコードを保存しますSerial.println(result); if(result ==-23971){//-私のリモートの23971はシャットダウンボタンReset_AVR();を表します// Arduinoをリセットします}} irrecv.resume(); // Arduinoがリモートから新しいコードを受信できるようにします}
このプロジェクトを気に入っていただければ幸いです。気に入った場合は、以前のプロジェクトをご覧ください。
良い一日を。
イタリアのシモーネ<3
コード
- メロディーを再生
メロディーを再生 C / C ++
このコードをArduinoIDEにコピーします#include#include #include #include #include #define Reset_AVR()wdt_enable(WDTO_30MS); while(1){}#defineブザー11LiquidCrystal 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( "-----選択-----"); lcd.setCursor(0,1); lcd.print( "---- A Song !! ----"); pinMode(ブザー、出力); irrecv.enableIRIn();} void loop(){if(irrecv.decode(&results)){result =results.value、HEX; Serial.println(結果); if(result ==12495){ode(); } else if(result ==6375){london(); } else if(result ==31365){fur(); } else if(result ==4335){pirate(); } irrecv.resume(); } delay(100);} void fur(){lcd.clear(); lcd.setCursor(0,0); lcd.print( "エリーゼのために"); delay(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(); delay(100); Reset_AVR();} void london(){lcd.clear(); lcd.setCursor(0,0); lcd.print( "ロンドンブリッジ"); lcd.setCursor(0,1); lcd.print( "落ちています"); delay(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(); delay(100); Reset_AVR();} void ode(){lcd.clear(); lcd.setCursor(0,0); lcd.print( "Ode to Joy"); delay(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(); delay(100); Reset_AVR();} void pirate(){lcd.clear(); lcd.setCursor(0,0); lcd.print( "彼こそが海賊"); delay(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); delay(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(); delay(100); Reset_AVR();} void shut(){if(irrecv.decode(&results)){result =results.value、HEX; Serial.println(結果); if(result ==-23971){Reset_AVR(); }} irrecv.resume();} void nota_do(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Do"); NewTone(11,262、duration); // DO delay(pause); } void nota_doz(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Do#"); NewTone(11,277、duration); // DO delay(pause); } void nota_re(int duration、int pause){shut; lcd.setCursor(0、0); lcd.print( "Re"); NewTone(11,294、duration); // RE delay(pause); } void nota_rez(int duration、int pause){shut; lcd.setCursor(0、0); lcd.print( "Re#"); NewTone(11,311、duration); // RE delay(pause); } void nota_mi(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Mi"); NewTone(11,330、duration); // MI delay(pause); } void nota_fa(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Fa"); NewTone(11,349、duration); // FA delay(pause); } void nota_faz(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Fa#"); NewTone(11,370、duration); // FA delay(pause); } void nota_sol(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Sol"); NewTone(11,392、duration); // SOL delay(pause); } void nota_solz(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Sol#"); NewTone(11,415、duration); // SOL delay(pause); } void nota_la(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "La"); NewTone(11,440、duration); // LA delay(pause); } void nota_laz(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "La#"); NewTone(11,466、duration); // LA delay(pause); } void nota_si(int duration、int pause){shut(); lcd.setCursor(0、0); lcd.print( "Si"); NewTone(11,494、duration); // SI delay(pause); }
回路図
canzoni_con_tastiera_fQS3978roa.fzz 製造プロセス