Daftar Isi:

Pemutar MP3 Dengan Arduino: 6 Langkah
Pemutar MP3 Dengan Arduino: 6 Langkah

Video: Pemutar MP3 Dengan Arduino: 6 Langkah

Video: Pemutar MP3 Dengan Arduino: 6 Langkah
Video: BELAJAR 40 PEMROGRAMAN ARDUINO - Play Music Menggunakan DF Player Mini 2024, November
Anonim
Image
Image
Lembaran data
Lembaran data

Dalam perakitan ini, kami menggunakan pemutar mp3 dengan Arduino Uno, penguat suara mini PAM8403 dengan penyesuaian volume, modul mp3 DFPlayer Mini, dan sepasang speaker 3-Watt.

Skema ini berfungsi tidak hanya untuk pemutar musik, tetapi juga untuk memungkinkan fungsi suara untuk perangkat penghalang parkir atau robot, antara lain. Perakitan ini akan memungkinkan penempatan suara yang direkam dalam peralatan. Suara ini akan alami dan tidak disintesis. Bagi kebanyakan orang, ini adalah fitur yang lebih disukai dibandingkan dengan alternatif standar.

Untuk perakitan ini, kami secara khusus menggunakan Arduino Uno, tetapi Anda juga dapat terhubung ke ESP8266 atau ESP32. Jelas, penyesuaian akan diperlukan pada pin.

Langkah 1: Lembar Data

Langkah 2: Modul DFPlayer

Modul DFPlayer
Modul DFPlayer

Modul DFPlayer menggunakan komunikasi serial RX TX, VCC, GND. Ini memiliki output ke dua speaker dan input audio.

Langkah 3: Penguat Mini PAM8403

Penguat Mini PAM8403
Penguat Mini PAM8403

Langkah 4: Perakitan

perakitan
perakitan

Langkah 5: Perpustakaan

Perpustakaan
Perpustakaan

Tambahkan perpustakaan "DFRobotDFPlayerMini" berikut untuk komunikasi dengan modul mp3.

Cukup akses "Sketsa >> Sertakan Perpustakaan >> Kelola Perpustakaan …"

Langkah 6: Kode Sumber

Kita akan mulai dengan mendefinisikan library dan konstanta yang akan kita gunakan dengan kode kita.

Mulailah dengan membuat satu objek, perangkat lunak serial, dan lainnya, yaitu myDFPlayer.

Variabel buf yang bertipe String akan berfungsi untuk menyimpan data yang berasal dari Serial Arduino yang akan menjadi perintah-perintah untuk modul MP3. Variabel "jeda" akan digunakan untuk menunjukkan apakah musik sedang diputar atau dijeda (jeda = benar, dan menunjukkan bahwa itu dijeda, jika tidak sedang diputar).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX //Objeto respons untuk berkomunikasi dengan módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; //variável responsável por armazenar os comandos enviados para controlar o player String buf; //variável responsável untuk armazenar atau estado do player (0: tocando; 1: pauseado) boolean pausa = false; //variável responsável por armazenar dan estado da equalização //varia de 0 a 5 int equalizacao = 0; // (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klasik, 5 = Bass)" //variável responsável por armazenar o total de músicas tidak menyajikan kartu SD. int maxSongs = 0;

Mempersiapkan

Pada langkah ini, kami menempatkan opsi cetakan untuk memberi Anda indikasi bahwa itu sedang memasang sirkuit, dengan evaluasi kondisi salah, misalnya.

void setup(){ //Komunikasi serial com o modulo mySoftwareSerial.begin(9600); //Inisialisasi serial yang dilakukan Arduino Serial.begin(115200); //Verifikasi se o modulo esta respondendo e se o //cartao SD foi encontrado Serial.println(); Serial.println("DFRobot DFPlayer Mini"); Serial.println("Inicializando modulo DFPlayer… (3~5 detik)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1. Periksa seperti yang dilakukan kerucut DFPlayer Mini"); Serial.println("2. Insira um cartao SD"); sementara (benar); } Serial.println(); Serial.println("Modulo DFPlayer Mini inicializado!"); //Definisi ini adalah myDFPlayer.setTimeOut(500); // Batas waktu serial 500 ms myDFPlayer.volume(10); //Volume 10 dari 0 hingga 30 myDFPlayer. EQ(0); //Equalizacao normal //recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); Serial.println(); Serial.print("Nomor de arquivos no cartao SD: "); Serial.println(maxSongs); //Sebagian besar menu dari perintah menu_opcoes();

Menu Pilihan

Anda mengontrol seluruh perakitan ini melalui monitor serial. Jadi setiap kali, skema akan mencetak Menu Opsi yang Anda miliki, dengan perintah, arah.

void menu_opcoes(){ Serial.println(); Serial.println("Komando:"); Serial.print("[1-"); Serial.print(maxSongs); Serial.println("] Untuk pilihan MP3"); Serial.println("[s] parar reproducao"); Serial.println("[p] jeda/lanjutkan musik"); Serial.println("[e] seleciona equalizacao"); Serial.println("[+ atau -] aumenta ou mengecilkan volume"); Serial.println(); }

Lingkaran

void loop(){ //Menjaga entrada de dados pela serial while (Serial.available() > 0) { //recupera os dados de entrada buf = Serial.readStringUntil('\n'); //Reproducao (índice da música) if ((buf.toInt() >= 1) && (buf.toInt() <= maxSongs)) { Serial.print("Reproduzindo musica: "); Serial.println(buf.toInt()); myDFPlayer.play(buf.toInt()); // untuk memainkan musik menu_opcoes(); } //Jeda/Lanjutkan a musica if (buf == "p") { if (pausa) { Serial.println("Continua musica…"); myDFPlayer.start(); } else { Serial.println("Musik jedaada…"); myDFPlayer.pause(); } jeda = ! jeda; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println("Musik Parada!"); menu_opcoes(); } //Seleciona equalizacao if (buf == "e") { equalizacao++; if (equalizacao == 6) { equalizacao = 0; } myDFPlayer. EQ(equalizacao); Serial.print("Equalizacao: "); Serial.print(equalizacao); Serial.println(" (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klasik, 5 = Bass)"); menu_opcoes(); } //Aumenta volume if (buf == "+") { myDFPlayer.volumeUp(); Serial.print("Volume sebenarnya:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } //Mengurangi volume if (buf == "-") { myDFPlayer.volumeDown(); Serial.print("Volume sebenarnya:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } //sementara } //loop

Direkomendasikan: