前提・実現したいこと
aruduino nanoで楽器を作っています。タクトスイッチを何度も押すことで、決められた音を順に出力する楽器を作っています。選曲機能を付けたいのですが、うまくいきません。
下記のようにループの範囲を3つに区切って、それらを選択できるようにしたいです。
音声再生にはDFPlayer Miniを使用しております。
mp3ファイルが計60個あるとして、
Aスイッチを押したら、myDFPlayer.next();で再生されるmp3ファイルが120の範囲になる。40の範囲になる。
Bスイッチを押したら、myDFPlayer.next();で再生されるmp3ファイルが20
Cスイッチを押したら、myDFPlayer.next();で再生されるmp3ファイルが40~60の範囲になる。
よろしくお願い致します。
発生している問題・エラーメッセージ
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // ボタンに繋がるピン #define BUTTON 19 // SoftwareSerialのRX, TXピン #define RX_PIN 10 #define TX_PIN 11 SoftwareSerial mySoftwareSerial(RX_PIN, TX_PIN); // RX, TX DFRobotDFPlayerMini myDFPlayer; int numfile; //楽曲ファイル数 int lastval=0; //ボタンの値保存用 void setup() { pinMode(BUTTON, INPUT); randomSeed(analogRead(0)); // SoftwareSerialとDFPlayerの初期化 mySoftwareSerial.begin(9600); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. while(true); } myDFPlayer.volume(28); // 音量の設定(0~30) numfile = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); //音楽ファイル数取得 } void loop() { lastval = (lastval << 1) | digitalRead(BUTTON); // チャタリング回避 if(lastval == 0x7FFF){ // ボタンが押されたら myDFPlayer.next(); //ランダムにファイルを再生 [1, numfile] } delay(1); }
補足情報(FW/ツールのバージョンなど)
Arduino 1.8.13
回答2件
あなたの回答
tips
プレビュー