Spisu treści:

Odtwarzacz MP3 z Arduino: 6 kroków
Odtwarzacz MP3 z Arduino: 6 kroków

Wideo: Odtwarzacz MP3 z Arduino: 6 kroków

Wideo: Odtwarzacz MP3 z Arduino: 6 kroków
Wideo: /dev/Arduino: #8: Moduł MP3 z układem YX5300 2024, Listopad
Anonim
Image
Image
Arkusz danych
Arkusz danych

W tym zestawie użyliśmy odtwarzacza mp3 z Arduino Uno, wzmacniacza dźwięku mini PAM8403 z regulacją głośności, modułu mp3 DFPlayer Mini oraz pary 3-watowych głośników.

Ten schemat służy nie tylko do odtwarzacza muzyki, ale także do obsługi funkcji głosowych m.in. dla urządzenia szlabanu parkingowego lub robota. Taki montaż pozwoli na umieszczenie nagranego głosu w aparatach. Ten głos będzie naturalny i niesyntetyzowany. Dla większości ludzi są to preferowane funkcje w porównaniu ze standardowymi alternatywami.

Do tego montażu używamy specjalnie Arduino Uno, ale można również podłączyć do ESP8266 lub ESP32. Oczywiście na kołkach wymagana będzie regulacja.

Krok 1: Arkusz danych

Krok 2: Moduł DFPlayer

Moduł odtwarzacza DFP
Moduł odtwarzacza DFP

Moduł DFPlayer wykorzystuje komunikację szeregową RX TX, VCC, GND. Posiada wyjście na dwa głośniki i wejście audio.

Krok 3: Miniwzmacniacz PAM8403

Miniwzmacniacz PAM8403
Miniwzmacniacz PAM8403

Krok 4: Montaż

montaż
montaż

Krok 5: Biblioteki

Biblioteki
Biblioteki

Dodaj następującą bibliotekę „DFRobotDFPlayerMini” do komunikacji z modułem mp3.

Wystarczy przejść do „Szkic >> Dołącz biblioteki >> Zarządzaj bibliotekami…”

Krok 6: Kod źródłowy

Zaczniemy od zdefiniowania bibliotek i stałych, których będziemy używać w naszym kodzie.

Zacznij od stworzenia jednego obiektu, oprogramowania szeregowego i drugiego, czyli myDFPlayer.

Zmienna buf, która jest typu String, będzie służyła do przechowywania danych pochodzących z Arduino Serial, które będą komendami dla modułu MP3. Zmienna "pause" będzie używana do wskazania, czy muzyka jest odtwarzana, czy wstrzymana (pause = true i wskazuje, że jest wstrzymana, w przeciwnym razie jest odtwarzana).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Zainicjuj szeregowe oprogramowanie w numerach 10 i 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX //Obiekt odpowiada na komunikację z modułem MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // zmienność odpowiedzi przez armazenar os polecenia enviados para controlar o gracza String buf; //różne odpowiedzi na armazenar lub stan gracza (0: tocando; 1: pausado) boolean pausa = false; //variável responsável por armazenar o estado da equalização //varia de 0 a 5 int equalizacao = 0; // (0 = normalny, 1 = pop, 2 = rock, 3 = jazz, 4 = klasyczny, 5 = bas)" //różne odpowiedzi na zamówienie lub całkowita liczba utworów muzycznych nie zawiera karty SD. int maxSongs = 0;

Ustawiać

W tym kroku umieściliśmy opcje wydruków, aby wskazać, że montuje obwód, na przykład z ocenami fałszywych warunków.

void setup(){ //Comunicacao serial com lub moduł mySoftwareSerial.begin(9600); //Zainicjuj numer seryjny Arduino Serial.begin(115200); //Zweryfikuj moduł, czy odpowiadasz i //Sprawdź SD w połączeniu z Serial.println(); Serial.println("DFRobot DFPlayer Mini"); Serial.println("Zainicjuj moduł DFPlayer… (3~5 sekund)"); if (! myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Zainicjowano:"); Serial.println("1. Sprawdź jak conexo w DFPlayer Mini"); Serial.println("2. Insira um cartao SD"); podczas (prawda); } Serial.println(); Serial.println("Zainicjowano moduł DFPlayer Mini!"); //Definicoes iniciais myDFPlayer.setTimeOut(500); //Limit czasu szeregowego 500ms myDFPlayer.volume(10); //Tom 10 od 0 do 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("Liczba arquivos bez karty SD: "); Serial.println(maks. Utwory); //Mostra menu poleceń menu_opcoes();

Menu opcji

Cały ten zespół kontrolujesz za pomocą monitora szeregowego. Tak więc za każdym razem schemat będzie drukował menu opcji, które masz, z poleceniami, wskazówkami.

nieważne menu_opcoes(){ Serial.println(); Serial.println("Comandos:"); Serial.print(" [1-"); Serial.print(maks. Utwory); Serial.println("] Para selecionar lub arquivo MP3"); Serial.println(" [s] parar reproducao"); Serial.println("[p] pausa/continua a musica"); Serial.println("[e] seleciona equalizacao"); Serial.println(" [+ lub -] aumenta ou diminui o volume"); Serial.println(); }

Pętla

void loop(){ //Aguarda a entrada de dados pela serial while (Serial.available() > 0) { //recupera os dados de entrada buf = Serial.readStringUntil('\n'); //Reprodukcja (indice da música) if ((buf.toInt() >= 1) && (buf.toInt() <= maxSongs)) { Serial.print("Reprodukcja muzyki: "); Serial.println(buf.toInt()); myDFPlayer.play(buf.toInt()); // dá play na musica menu_opcoes(); } //Pausa/Continua a musica if (buf == "p") { if (pausa) { Serial.println("Kontynuuj muzykę…"); mójDFPlayer.start(); } else { Serial.println("Musica pausada…"); mójDFPlayer.pause(); } pausa = !pausa; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println("Muzyka parada!"); menu_opcoes(); } //Wybierz equalizacao if (buf == "e") { equalizacao++; if (equalizacao == 6) { equalizacao = 0; } myDFPlayer. EQ(equalizacao); Serial.print("Equalizacao: "); Serial.print(equalizacao); Serial.println(" (0 = Normalny, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klasyczny, 5 = Bas)"); menu_opcoes(); } //Powiększenie głośności if (buf == "+") { myDFPlayer.volumeUp(); Serial.print("Głośność rzeczywista:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } //Głośność zmniejszona if (buf == "-") { myDFPlayer.volumeDown(); Serial.print("Głośność rzeczywista:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } //podczas } //pętla

Zalecana: