Arduino İle DFPlayer Mini Kullanımı
DFPlayer Mini arduino için bir mp3 oynatıcıdır, doğrudan hoparlöre basitleştirilmiş çıkışa sahip küçük ve düşük fiyatlı bir MP3 modülüdür. Modül, bağlı pil, hoparlör ve basma düğmeleri ile bağımsız bir modül olarak kullanılabilir veya bir Arduino UNO veya RX/TX özelliklerine sahip herhangi bir mikroişlemci ile birlikte kullanılabilir.
DFPlayer Mini Özellikleri
- Desteklenen örnekleme oranları (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
- 24 bit DAC çıkışı, 90dB dinamik aralık desteği, 85dB SNR desteği.
- FAT16, FAT32 dosya sistemini tamamen destekler, TF kartının maksimum 32 GB desteği, 32G U disk desteği, 64M bayt NORFLASH.
- Çeşitli kontrol modları vardır; G/Ç kontrol modu, seri mod, AD düğmesi kontrol modu.
- Reklam sesi bekleme işlevi, müzik askıya alınabilir. müzikte reklam bitince çalmaya devam edebilir.
- Klasöre göre sıralanmış ses verileri, 100 klasöre kadar destekler, her klasör 255 şarkıyı kadar tutabilir.
- 30 seviyeli ayarlanabilir ses seviyesi, 6 seviyeli EQ ayarlanabilir.
DFPlayer Mini’nin Kullanıldığı Yerler
- Araba navigasyon sesli yayınlarında.
- Karayolu taşımacılığı müfettişleri, gişe istasyonları sesli uyarıları.
- Tren istasyonu, otobüs güvenlik denetimi sesli uyarıları.
- Elektrik, iletişim, finansal iş salonu sesli komutları.
- Kanala giren ve çıkan araç sesli komutlarında.
- Çok kanallı acil anons veya ekipman çalıştırma kılavuzu olarak.
- Elektrikli turist arabası güvenli sürüş sesli uyarılarında.
- Elektromekanik ekipman arıza alarmlarında.
- Yangın alarmı sesli komutlarında.
DFPlayer Pin Şeması
DFPlayer İle Micro Sd Kattan Mp3 Oynatma
Gerekli Olan Malzemeler
İlk olarak aşağıdaki bağlantı şemamıza göre bağlantılarımızı kuralım.
Eğer bağlatı şemamızı kurduysak artık micro sd kartımıza mp3 dosyalarımızı atabiliriz. Burada ilk olarak micro sd kartımız FAT16 veya FAT32 formatında olması gerekmektedir. Eğer bu formatta değil ise micro sd kartımızı istenilen formatta biçimlendirelim.
Daha sonra atılacak olan müzikleri adlandırmamız lazım. Müziklerimiz “001” şeklinde adlandırmalıyız. Mesela 3 tane mp3 dosyamız var ise bunlar şu şekilde olmalıdır: 001,002,003
Eğer müzik adlandırmalarımızda tamam ise artık kodumuza geçebiliriz.
Arduino İle DFPlayer Miniden MP3 Oynatma Kodu
DFPlayer Miniyi kullanabilmemiz için 2 adet kütüphane gereklidir. SoftwareSerial kütüphanesi arduino ide ile beraber gelmektedir. DFPlayer mini kütüphanesini aşağıdan indirebilirsiniz.
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
static const uint8_t PIN_MP3_TX = 2; // DFPlayer modülünde RX pinine
static const uint8_t PIN_MP3_RX = 3; // DFPlayer modülünde TX pinine
SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);
// Oynatıcı objemizi Player adında oluşturuyoruz.
DFRobotDFPlayerMini player;
void setup() {
// Seri haberleşmeyi başlatıyoruz
Serial.begin(9600);
// DFPlayer mini ile arduino arasındaki haberleşmeyi başlatıyoruz.
softwareSerial.begin(9600);
// Eğer arduino ile dfplayer arasında bağlantı kurulmuş ise OK yazıdırıyoruz
if (player.begin(softwareSerial)) {
Serial.println("OK");
// Ses seviyesini belirliyoruz (0 to 30).
player.volume(25);
// sd karttaki ilk müziği oynatıyoruz.
player.play(1);
} else {
// dfplayer ile bağlantının kurulamadığını yazdırıyoruz.
Serial.println("Connecting to DFPlayer Mini failed!");
}
}
void loop() {
}
Projemizin videosunu aşağıdan izleyebilirsiniz.
Şimdi müziğimizi oynatmayı başardıysak kütüphanemizin bize sağladığı bütün fonksiyonları inceleyebiliriz.
/***************************************************
DFPlayer - A Mini MP3 Player For Arduino
<https://www.dfrobot.com/product-1121.html>
***************************************************
This example shows the all the function of library for DFPlayer.
Created 2016-12-07
By [Angelo qiao](Angelo.qiao@dfrobot.com)
GNU Lesser General Public License.
See <http://www.gnu.org/licenses/> for details.
All above must be included in any redistribution
****************************************************/
/***********Notice and Trouble shooting***************
1.Connection and Diagram can be found here
<https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
2.This code is tested on Arduino Uno, Leonardo, Mega boards.
****************************************************/
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);
void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);
Serial.println();
Serial.println(F("DFRobot DFPlayer Mini Demo"));
Serial.println(F("DFPlayer baslatılıyor ... (3~5 saniye surebilir)"));
if (!myDFPlayer.begin(mySoftwareSerial)) { //Mp3 ile iletişim kurmak için softwareSerial kullanın.
Serial.println(F("baslatilamiyor:"));
Serial.println(F("1. Lutfen baglantiyi tekrar kontrol edin!"));
Serial.println(F("2. Lutfen SD karti takin!"));
while(true);
}
Serial.println(F("DFPlayer Mini online."));
myDFPlayer.setTimeOut(500); //500ms seri iletişim zaman aşımını ayarla
//----Ses seviyesini ayarla----
myDFPlayer.volume(10); //Ses seviyesi değerini ayarlayın (0~30).
myDFPlayer.volumeUp(); //Sesi aç
myDFPlayer.volumeDown(); //Sesi kıs
//----Farklı EQ ayarla----
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
// myDFPlayer.EQ(DFPLAYER_EQ_POP);
// myDFPlayer.EQ(DFPLAYER_EQ_ROCK);
// myDFPlayer.EQ(DFPLAYER_EQ_JAZZ);
// myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC);
// myDFPlayer.EQ(DFPLAYER_EQ_BASS);
//----SD kullandığımız cihazı varsayılan olarak ayarla----
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_U_DISK);
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_AUX);
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_SLEEP);
// myDFPlayer.outputDevice(DFPLAYER_DEVICE_FLASH);
//----Mp3 Kontrol----
// myDFPlayer.sleep(); //uyu
// myDFPlayer.reset(); //Modülü sıfırlayın
// myDFPlayer.enableDAC(); //Çipte DAC'yi Etkinleştir
// myDFPlayer.disableDAC(); //Çipte DAC'yi devre dışı bırak
// myDFPlayer.outputSetting(true, 15); //çıkış ayarı, çıkışı etkinleştirin ve kazancı 15'e ayarlayın
//----Mp3 Oynatma----
myDFPlayer.next(); //Sonraki mp3'ü çal
delay(1000);
myDFPlayer.previous(); //Önceki mp3'ü çal
delay(1000);
myDFPlayer.play(1); //İlk mp3'ü çal
delay(1000);
myDFPlayer.loop(1); //İlk mp3'ü döngüye al
delay(1000);
myDFPlayer.pause(); //mp3'ü duraklat
delay(1000);
myDFPlayer.start(); //mp3'ü duraklamadan başlat
delay(1000);
myDFPlayer.playFolder(15, 4); //SD:/15/004.mp3'te belirli mp3 çal; Klasör Adı(1~99); Dosya Adı(1~255)
delay(1000);
myDFPlayer.enableLoopAll(); //tüm mp3 dosyalarını döngüye sokun.
delay(1000);
myDFPlayer.disableLoopAll(); //tüm mp3 dosyalarını döngüyü durdur.
delay(1000);
myDFPlayer.playMp3Folder(4); //SD:/MP3/0004.mp3'te belirli mp3 çal; Dosya Adı(0~65535)
delay(1000);
myDFPlayer.advertise(3); //SD:/ADVERT/0003.mp3'te belirli mp3'lerin reklamını yapın; Dosya Adı(0~65535)
delay(1000);
myDFPlayer.stopAdvertise(); //reklamı durdur
delay(1000);
myDFPlayer.playLargeFolder(2, 999); //SD:/02/004.mp3'te belirli mp3 çal; Klasör Adı(1~10); Dosya Adı(1~1000)
delay(1000);
myDFPlayer.loopFolder(5); //SD:/05 klasöründeki tüm mp3 dosyalarını döngüye sokun.
delay(1000);
myDFPlayer.randomAll(); //Rastgele tüm mp3 çal.
delay(1000);
myDFPlayer.enableLoop(); //döngüyü etkinleştir.
delay(1000);
myDFPlayer.disableLoop(); //döngüyü devre dışı bırak.
delay(1000);
//----Read imformation----
Serial.println(myDFPlayer.readState()); //mp3 durumunu oku
Serial.println(myDFPlayer.readVolume()); //mevcut hacmi oku
Serial.println(myDFPlayer.readEQ()); //EQ ayarını oku
Serial.println(myDFPlayer.readFileCounts()); //SD karttaki tüm dosya sayılarını oku
Serial.println(myDFPlayer.readCurrentFileNumber()); //geçerli oynatma dosya numarasını oku
Serial.println(myDFPlayer.readFileCountsInFolder(3)); //SD klasöründeki dosya sayılarını oku:/03
}
void loop()
{
static unsigned long timer = millis();
if (millis() - timer > 3000) {
timer = millis();
myDFPlayer.next(); //Her 3 saniyede bir sonraki mp3'ü çal.
}
if (myDFPlayer.available()) {
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Farklı hataları ve durumları işlemek için DFPlayer'dan ayrıntı mesajını yazdırın.
}
}
void printDetail(uint8_t type, int value){
switch (type) {
case TimeOut:
Serial.println(F("Zaman asimi!"));
break;
case WrongStack:
Serial.println(F("Yanlis Yigin!"));
break;
case DFPlayerCardInserted:
Serial.println(F("Kart Takili!"));
break;
case DFPlayerCardRemoved:
Serial.println(F("Kart Kaldirildi!"));
break;
case DFPlayerCardOnline:
Serial.println(F("Kart Cevrimici!"));
break;
case DFPlayerUSBInserted:
Serial.println("USB Takili!");
break;
case DFPlayerUSBRemoved:
Serial.println("USB Kaldirildi!");
break;
case DFPlayerPlayFinished:
Serial.print(F("Sayi:"));
Serial.print(value);
Serial.println(F(" Oynatma bitti!"));
break;
case DFPlayerError:
Serial.print(F("DFPlayerHatasi:"));
switch (value) {
case Busy:
Serial.println(F("Kart bulunamadi"));
break;
case Sleeping:
Serial.println(F("Uyuyor"));
break;
case SerialWrongStack:
Serial.println(F("Yanlıs Yigin"));
break;
case CheckSumNotMatch:
Serial.println(F("Kontrol Toplami Eslesmiyor"));
break;
case FileIndexOut:
Serial.println(F("Dosya Dizini Sinir Disi"));
break;
case FileMismatch:
Serial.println(F("Dosya bulunamadi"));
break;
case Advertise:
Serial.println(F("Reklamda"));
break;
default:
break;
}
break;
default:
break;
}
}
merhabalar paylaşımınız için teşekürler bende bu devreyi ve kodu kullanacam fakat bu devre üzerine manytik kapı alarm swich eklemem lazım yardımcı olurmusunuz.
Merhaba. Manyetik sensörler hall effect pirensibine dayanmaktadır. Aşağıdaki yazımızı okuyarak fikir sahibi olabilirsiniz. Yine anlamazsanız sitemizin discord grubundan sorabilirsiniz.
http://arduinodestek.com/arduino-ile-hall-effect-sensoru-kullanimi/
Merhaba, bu projeyi mblock üzerinden yapmaya çalıştım hata alıyorum sebbei nedir? Destek olur musunuz?
Aşağıdaki önemli olan noktaları tekrar bir gözden geçirin.
-RX ve TX bağlantıları ters bağlanmalı.
-Micro sd kartımız FAT16 veya FAT32 formatında olması gerekmektedir.
-Müziklerimiz “001” şeklinde adlandırmalıyız. Mesela 3 tane mp3 dosyamız var ise bunlar şu şekilde olmalıdır: 001,002,003
Eğer bunları yapıp olmadıysa kütüphane başlatma kodumuzu şu şekilde yapın.
-player.begin(softwareSerial,true,false)
Umarım sorununuz çözülür. Çözülmezse tekrar yazabilirsiniz.