2022年9月22日木曜日

タッチセンサー+Arduino Uno+Dfplayer  シリアル通信で動かしみた


タッチセンサ 音楽プレーヤを作ってみました。

使い方:
①Mp3ファイルの準備
01~05のフォルダにそれぞれ、001.mp3~003.mp3の曲を入れておく
98のフォルダには、001.mp3に「音を小さくしました」、002.mp3に「音を大きくしました」という音声をいれておく。
99のフォルダには、001.mp3に「1番目のフォルダに切り替えました」のような音声を入れておく。これを5番まで作成。
②ボタンを押すと、フォルダが切り替わる。タッチセンサ3つに、3曲割り当てられる。
タッチセンサを押さないと、フォルダ切り替えはできないようにしてある。
③ボタンを押しながら、左側のタッチセンサに触ると、音量を下げられる。右側のタッチセンサに触ると、音量を上げられる。

arduinoのスケッチ

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
//void printDetail(uint8_t type, int value);
  const int SENSOR4 = 4;
  const int SENSOR5 = 5;
  const int SENSOR6 = 6;
  const int DIN_PIN = 7;
  int foldernumber=1;
  bool cflg=false;
void setup()
{  
  pinMode( DIN_PIN, INPUT_PULLUP );
  pinMode(SENSOR4, INPUT);
    pinMode(SENSOR5, INPUT);
      pinMode(SENSOR6, INPUT);
  delay(1000);
  mySoftwareSerial.begin(9600);
   if (!myDFPlayer.begin(mySoftwareSerial)) { 
    while(true);
 }
  myDFPlayer.setTimeOut(500); 
  myDFPlayer.volume(15); 
  myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
   myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
}

void loop()
{
  if (digitalRead(SENSOR4)==HIGH) {
   myDFPlayer.playFolder(foldernumber,1 );  
    cflg=false;
  } 
  if (digitalRead(SENSOR5)==HIGH) {
   myDFPlayer.playFolder(foldernumber,2 );  
    cflg=false;
  } 
  if (digitalRead(SENSOR6)==HIGH) {
   myDFPlayer.playFolder(foldernumber,3 );  
    cflg=false;
  } 
   delay(1);

  if(digitalRead(DIN_PIN)==LOW ){
   if (digitalRead(SENSOR4)==HIGH) {  
      myDFPlayer.volumeUp(); 
      myDFPlayer.playFolder(98,2 );  //ageru saisei
      cflg=false;
   }else if(digitalRead(SENSOR6)==HIGH){
      myDFPlayer.volumeDown(); //Volume down
      myDFPlayer.playFolder(98,1 );  //sageru saisei 
      cflg=false;
   }else if(!cflg){        
     foldernumber=rand() % 5 + 1;
     myDFPlayer.playFolder(99,foldernumber ); //foldernumber onsei saisei
     cflg=true;
   }
  }

}

0 件のコメント:

コメントを投稿