工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

リモコンで音楽を再生する

コンポーネントと消耗品

>
Arduino UNO
× 1
リモートコントロール
× 1
IRレシーバー(汎用)
× 1
ブザー
× 1
Adafruit標準LCD-16x2白地に青
× 1
ロータリーポテンショメータ(汎用)
× 1
抵抗221オーム
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

こんにちはハックスターコミュニティ!

私は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

製造プロセス

  1. LIRCなしでRaspberryPiでIRRemoteを使用する
  2. MPU-6050を搭載したArduinoジャイロスコープゲーム
  3. ESP32を搭載したDiscordセキュリティカメラ
  4. Arduino Digital Dice
  5. DIY 37LEDルーレットゲーム
  6. 3Dプリントされたケース付きの電池式テレビリモコン
  7. Arduinoクラウドでどこからでもあなたの家の温度を知る!
  8. ATtiny85ミニアーケード:スネーク
  9. ポータブルレンジ検出器
  10. CortanaでLEDを制御する
  11. リモコングリッパーボット