Dfplayer mini ile mp3 çalma

ersinzah

Üye
Katılım
15 Kas 2018
Mesajlar
5
Puanları
1
Yaş
42
Merhaba, arkadaşlar okulda bir öğrencimin projesi için arduino kod yazmam gerekti fakat benim bilgilerim bu konuda yetersiz kaldı yardım eden olursa sevinirim.
projenin ayrıntıları:
dfplayer mini ile 11 butondan 11 farklı ses dosyası çalınacak 1 nolu butona basılınca 1 nolu mp3 çalacak.
gerilim bölücü yaparak butonlara farklı değerler verdim.
if kullanarak bir buton için denedim ama başarılı olamadım.


#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
int oku = 0;
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
void setup() {
// Init USB serial port for debugging
Serial.begin(9600);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
}
void loop() {
oku = analogRead(A0);
Serial.println(oku);

if (oku > 350) {
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
//Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(15);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.play(7);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
}
 
Bu programda Tuşa basılığı olduğu sürecece, sürekli modüle player.play(7); komutu gider. Oysa bunu 1 kere yapması gerekiyor.

Ayrıca player.play(7); komutu, sd karttaki 7. parçayı oynatır.

ilk olarak butonlardan bağımsız, müzik oynatabiliyor musunuz ona bakın.
Önce şuradaki proje ile mp3 oynatıp ses çıkardığını doğrulayın. Gerisi gelir
https://arduinodestek.com/arduino-ile-dfplayer-mini-kullanimi/
 
Bu programda Tuşa basılığı olduğu sürecece, sürekli modüle player.play(7); komutu gider. Oysa bunu 1 kere yapması gerekiyor.

Ayrıca player.play(7); komutu, sd karttaki 7. parçayı oynatır.

ilk olarak butonlardan bağımsız, müzik oynatabiliyor musunuz ona bakın.
Önce şuradaki proje ile mp3 oynatıp ses çıkardığını doğrulayın. Gerisi gelir
https://arduinodestek.com/arduino-ile-dfplayer-mini-kullanimi/
Bir butonla ses alabiliyorum ama if komutu ile farklı gerilim değerlerinde ses alamıyorum kodu yazarken bir yerde hata yapıyorum sanırım.
 
"gerilim bölücü yaparak butonlara farklı değerler verdim."

şunu yapmak yerine butonları farklı pinlere bağlayıp 11 farklı ses dosyası çalacak kodu yazıp deneyin, buradan paylaşın. Devamını getetiririz
 
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
int buton_1 = 4;
int buton_2 = 5;
int buton_3 = 6;
int buton_4 = 7;
int buton_5 = 8;
void setup() {

pinMode(buton_1, INPUT);
pinMode(buton_2, INPUT);
pinMode(buton_3, INPUT);
pinMode(buton_4, INPUT);
pinMode(buton_5, INPUT);
// Init USB serial port for debugging
Serial.begin(9600);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);
}
void loop() {
if (digitalRead(buton_1) == HIGH) {
// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(30);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.play(1);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
} else if (digitalRead(buton_2) == HIGH) {

// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(30);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.play(2);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
else if (digitalRead(buton_3) == HIGH) {

// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(30);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.play(3);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
} else if (digitalRead(buton_4) == HIGH) {

// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(30);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.play(4);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
} else if (digitalRead(buton_5) == HIGH) {

// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Set volume to maximum (0 to 30).
player.volume(30);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.play(5);
} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
}



yine çalışmadı yardımcı olursanız sevinirim.
 
tek butonla çalışan kodu paylaşır mısınız. Birde o tek butona peşpeşe 2 3 defa basınca ne oluyor? her defasında baştan mı başlıyor müzik?
 
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);

// Create the Player object
DFRobotDFPlayerMini player;

void setup() {
// Init USB serial port for debugging
Serial.begin(9600);
// Init serial port for DFPlayer Mini
softwareSerial.begin(9600);

// Start communication with DFPlayer Mini
if (player.begin(softwareSerial)) {
Serial.println("OK");

// Set volume to maximum (0 to 30).
player.volume(30);
// Play the "0001.mp3" in the "mp3" folder on the SD card
player.playMp3Folder(1);

} else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}

void loop() {
}
Bu kodda buton yokmuş direk çalışıyor.
 
Buton, 4 numara ile gnd arasına bağlanacak. Ayrıca 4 numara ile 5V arasına 4k7 veya daha yüksek değerli pull up direnci bağlanacak. Bu kodu deneyin, butona basınca müziği çalması gerekiyor. Birde sizden ricam, müzik bitmeden tekrar butona basınca ne oluyor test etmenizi istiyorum.

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX

SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
DFRobotDFPlayerMini player;

void setup() {
pinMode(4, INPUT);
Serial.begin(9600);
softwareSerial.begin(9600);
if (player.begin(softwareSerial)) {
Serial.println("OK");
player.volume(30);
}
else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}

void loop() {

if( digitalRead(4)==LOW ){
player.playMp3Folder(1);
}

}
 
Buton, 4 numara ile gnd arasına bağlanacak. Ayrıca 4 numara ile 5V arasına 4k7 veya daha yüksek değerli pull up direnci bağlanacak. Bu kodu deneyin, butona basınca müziği çalması gerekiyor. Birde sizden ricam, müzik bitmeden tekrar butona basınca ne oluyor test etmenizi istiyorum.

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX

SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
DFRobotDFPlayerMini player;

void setup() {
pinMode(4, INPUT);
Serial.begin(9600);
softwareSerial.begin(9600);
if (player.begin(softwareSerial)) {
Serial.println("OK");
player.volume(30);
}
else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}

void loop() {

if( digitalRead(4)==LOW ){
player.playMp3Folder(1);
}

Buton, 4 numara ile gnd arasına bağlanacak. Ayrıca 4 numara ile 5V arasına 4k7 veya daha yüksek değerli pull up direnci bağlanacak. Bu kodu deneyin, butona basınca müziği çalması gerekiyor. Birde sizden ricam, müzik bitmeden tekrar butona basınca ne oluyor test etmenizi istiyorum.

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX

SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
DFRobotDFPlayerMini player;

void setup() {
pinMode(4, INPUT);
Serial.begin(9600);
softwareSerial.begin(9600);
if (player.begin(softwareSerial)) {
Serial.println("OK");
player.volume(30);
}
else {
Serial.println("Connecting to DFPlayer Mini failed!");
}
}

void loop() {

if( digitalRead(4)==LOW ){
player.playMp3Folder(1);
}

}
gönderdiğiniz kodu henüz deneyemedim. denedikten sonra cevap yazarım. ilginize teşekkür ederim.
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
// Use pins 2 and 3 to communicate with DFPlayer Mini
static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX
static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX
SoftwareSerial SR(PIN_MP3_RX, PIN_MP3_TX);
// Create the Player object
DFRobotDFPlayerMini player;
int tus;
int tlr = 5;

void setup() {
//Serial.begin(9600);
SR.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
}
void loop() {
tus = analogRead(A0);
delay(20);
if (tus >= 236 - tlr && tus <= 236 + tlr) {
delay(500);
digitalWrite(A1, 1);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);

if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(1);
}
}
if (tus >= 292 - tlr && tus <= 292 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);

if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(2);
}
}
if (tus >= 340 - tlr && tus <= 340 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(3);
}
}
if (tus >= 390 - tlr && tus <= 390 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(4);
}
}
if (tus >= 432 - tlr && tus <= 432 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(5);
}
}
if (tus >= 488 - tlr && tus <= 488 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(6);
}
}
if (tus >= 688 - tlr && tus <= 688 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(7);
}
}
if (tus >= 787 - tlr && tus <= 787 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 1);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(8);
}
}
if (tus >= 824 - tlr && tus <= 824 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 0);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(9);
}
}
if (tus >= 854 - tlr && tus <= 854 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 0);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(10);
}
}
if (tus >= 871 - tlr && tus <= 871 + tlr) {
delay(500);
digitalWrite(A1, 0);
digitalWrite(A2, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
digitalWrite(11, 0);
digitalWrite(12, 1);
if (player.begin(SR)) {
delay(200);
player.volume(30);
player.play(11);
}
}
}

Arkadaşlar yukarıdaki kodu bir arkadaşımın yardımıyla çalıştırmayı başardım.
Mevcut kod ile 11 ayrı buton ile 11 ayrı mp3 çalıştırılıyor. her mp3 için bir de led ekledim.
Belki aranızda kullanmak isteyen olur.
 

Forum istatistikleri

Konular
129,781
Mesajlar
930,055
Kullanıcılar
452,556
Son üye
ENES..

Yeni konular

Çevrimiçi üyeler

Geri
Üst