İçindekiler:

Arduino ile MP3 Çalar: 6 Adım
Arduino ile MP3 Çalar: 6 Adım

Video: Arduino ile MP3 Çalar: 6 Adım

Video: Arduino ile MP3 Çalar: 6 Adım
Video: Arduino Start #6. Модуль MP3 и ARDUINO 2024, Kasım
Anonim
Image
Image
Veri Sayfası
Veri Sayfası

Bu montajda Arduino Uno'lu mp3 player, ses ayarlı mini PAM8403 ses yükseltici, mp3 modülü DFPlayer Mini ve bir çift 3-Watt hoparlör kullandık.

Bu şema sadece müzik çalar için değil, aynı zamanda diğerlerinin yanı sıra bir park bariyeri cihazı veya bir robot için ses işlevlerine izin vermek için de hizmet eder. Bu tertibat, kaydedilmiş bir sesin aparatlara yerleştirilmesine izin verecektir. Bu ses doğal olacak ve sentezlenmeyecek. Çoğu insan için bunlar standart alternatiflere kıyasla tercih edilen özelliklerdir.

Bu montaj için özellikle Arduino Uno kullanıyoruz, ancak ESP8266 veya ESP32'ye de bağlanabilirsiniz. Açıkçası, pimlerde bir ayar gerekli olacaktır.

1. Adım: Veri Sayfası

2. Adım: DFPlayer Modülü

DFPlayer Modülü
DFPlayer Modülü

DFPlayer modülü, seri iletişim RX TX, VCC, GND'yi kullanır. İki hoparlör çıkışı ve ses girişi vardır.

Adım 3: Mini Amplifikatör PAM8403

Mini Amplifikatör PAM8403
Mini Amplifikatör PAM8403

Adım 4: Montaj

toplantı
toplantı

Adım 5: Kitaplıklar

Kütüphaneler
Kütüphaneler

Mp3 modülü ile iletişim için aşağıdaki "DFRobotDFPlayerMini" kütüphanesini ekleyin.

Basitçe "Çizim >> Kitaplıkları Dahil Et >> Kitaplıkları Yönet …" seçeneğine erişin.

Adım 6: Kaynak Kodu

Kodumuzla birlikte kullanacağımız kütüphaneleri ve sabitleri tanımlayarak başlayacağız.

Bir nesne, seri yazılım ve myDFPlayer olan başka bir nesne oluşturarak başlayın.

String türündeki buf değişkeni, MP3 modülü için komutlar olacak olan Arduino Serial'den gelen verileri depolamaya hizmet edecektir. "Duraklat" değişkeni, müziğin çaldığını veya duraklatıldığını belirtmek için kullanılacaktır (pause = true ve duraklatıldığını, aksi takdirde çalmakta olduğunu belirtir).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inicia bir seri por yazılım nos pinos 10 e 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX //İletişim için yanıt verme MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; //oynatıcı için değişken yanıtlar ve armazenar işletim sistemleri için enviados para kontrolörleri String buf; //oyuncu için değişken yanıtlar (0: tocando; 1: duraklama) boolean duraklama = yanlış; //değişken yanıtlar por armazenar o estado da equalização //değişken de 0 a 5 int equalizacao = 0; // (0 = Normal, 1 = Pop, 2 = Rock, 3 = Caz, 4 = Klasik, 5 = Bas)" //değişken yanıtlar por armenar veya toplam de müzikler SD kart sunmaz. int maxSongs = 0;

Kurmak

Bu adımda, örneğin yanlış koşulların değerlendirilmesi ile devreyi kurduğuna dair göstergeler vermek için baskı seçeneklerini koyduk.

void setup(){ //Comunicacao seri iletişim modulo mySoftwareSerial.begin(9600); //Arduino Serial.begin(115200); //Verifica se o modulo esta yanıtlayan e se o //cartao SD foi encontrado Serial.println(); Serial.println("DFRobot DFPlayer Mini"); Serial.println("Inicializando modulo DFPlayer… (3~5 segundos)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1. Konekso'ların DFPlayer Mini yaptığı gibi kontrol edin"); Serial.println("2. Insira um cartao SD"); while (doğru); } Serial.println(); Serial.println("Modulo DFPlayer Mini inicializado!"); //Tanımlar başlangıç myDFPlayer.setTimeOut(500); // Zaman aşımı seri 500ms myDFPlayer.volume(10); //Volume 10 vai de 0 a 30 myDFPlayer. EQ(0); //Equalizacao normal //Recupera o numero de Músicas encontradas SD yok. maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); Seri.println(); Serial.print("Arquivos de Arquivos no cartao SD: "); Serial.println(maxSongs); //En çok menü de comandolar menu_opcoes();

Seçenekler Menüsü

Bu montajın tamamını seri monitör aracılığıyla kontrol edersiniz. Bu nedenle, her seferinde şema, sahip olduğunuz Seçenekler Menüsünü komutlarla, talimatlarla yazdıracaktır.

void menu_opcoes(){ Serial.println(); Serial.println("Komandolar:"); Seri.print(" [1-"); Serial.print(maxSongs); Serial.println("] Parasal seçim veya arquivo MP3"); Serial.println(" [s] parar reproducao"); Serial.println(" [p] duraklama/müzik devam ediyor"); Serial.println(" [e] seleciona equalizacao"); Serial.println(" [+ veya -] hacim artışı veya azalması"); Seri.println(); }

Döngü

void loop(){ //Seri diziyi koruma altına alın (Serial.available() > 0) { //Entrada kurtarma buf = Serial.readStringUntil('\n'); //Reproducao (müzik dizininde) if ((buf.toInt() >= 1) && (buf.toInt() <= maxSongs)) { Serial.print("Reproduzindo musica: "); Serial.println(buf.toInt()); myDFPlayer.play(buf.toInt()); // müzik çalma menu_opcoes(); } //Pausa/Continua a musica if (buf == "p") { if (pausa) { Serial.println("Continua musica…"); myDFPlayer.start(); } else { Serial.println("Musica pausada…"); myDFPlayer.pause(); } duraklama = !pausa; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println("Müzik parada!"); menu_opcoes(); } //Seleciona equalizacao if (buf == "e") { equalizacao++; if (equalizacao == 6) { equalizacao = 0; } myDFPlayer. EQ(eşitleme); Serial.print("Equalizacao: "); Serial.print(eşitleme); Serial.println(" (0 = Normal, 1 = Pop, 2 = Rock, 3 = Caz, 4 = Klasik, 5 = Bas)"); menu_opcoes(); } //Aumenta hacmi if (buf == "+") { myDFPlayer.volumeUp(); Serial.print("Hacim güncel:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } //Diminui hacmi if (buf == "-") { myDFPlayer.volumeDown(); Serial.print("Hacim güncel:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } //döngü sırasında

Önerilen: