Orodha ya maudhui:

Kicheza MP3 na Arduino: Hatua 6
Kicheza MP3 na Arduino: Hatua 6

Video: Kicheza MP3 na Arduino: Hatua 6

Video: Kicheza MP3 na Arduino: Hatua 6
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Novemba
Anonim
Image
Image
Karatasi ya data
Karatasi ya data

Katika mkutano huu, tulitumia kicheza mp3 na Arduino Uno, kipaza sauti cha sauti cha PAM8403 na marekebisho ya sauti, moduli ya mp3 DFPlayer Mini, na spika za 3-Watt.

Mpango huu hauhudumii tu kicheza muziki, lakini pia kuruhusu kazi za sauti kwa kifaa cha kuzuia maegesho au roboti, kati ya zingine. Mkutano huu utaruhusu uwekaji wa sauti iliyorekodiwa kwenye vifaa. Sauti hii itakuwa ya asili na haitengenezwi. Kwa watu wengi, hizi ni sifa bora ikilinganishwa na njia mbadala za kawaida.

Kwa mkutano huu, tunatumia Arduino Uno haswa, lakini unaweza pia kuungana na ESP8266 au ESP32. Kwa wazi, marekebisho yatahitajika kwenye pini.

Hatua ya 1: Hati ya data

Hatua ya 2: Moduli ya DFPlayer

Moduli ya DFPlayer
Moduli ya DFPlayer

Moduli ya DFPlayer hutumia mawasiliano ya serial RX TX, VCC, GND. Inayo pato kwa spika mbili na uingizaji wa sauti.

Hatua ya 3: Mini Amplifier PAM8403

Amplifier Mini PAM8403
Amplifier Mini PAM8403

Hatua ya 4: Mkutano

Mkutano
Mkutano

Hatua ya 5: Maktaba

Maktaba
Maktaba

Ongeza maktaba ifuatayo ya "DFRobotDFPlayerMini" kwa mawasiliano na moduli ya mp3.

Fikia tu "Mchoro >> Jumuisha Maktaba >> Dhibiti Maktaba…"

Hatua ya 6: Nambari ya Chanzo

Tutaanza kwa kufafanua maktaba na vichapo tutakavyotumia na nambari yetu.

Anza kwa kuunda kitu kimoja, programu ya serial, na nyingine, ambayo ni myDFPlayer.

Tofauti ya buf, ambayo ni ya aina ya Kamba, itatumika kuhifadhi data inayokuja kutoka kwa Arduino Serial, ambayo itakuwa amri za moduli ya MP3. Tofauti ya "pause" itatumika kuashiria ikiwa muziki unacheza au umesitishwa (pause = kweli, na inaonyesha kuwa umesitishwa, vinginevyo unacheza).

# pamoja na "SoftwareSerial.h" # pamoja na "DFRobotDFPlayerMini.h" // Inicia serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Jibu la kujibu maoni yako kwa MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável respondável por armazenar os comandos enviados for controlar o player String buf; // variável respondável por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = uongo; // variável respondável por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Kawaida, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// variável Respável por armazenar o total de músicas haionyeshi kadi ya SD. Int maxSongs = 0;

Sanidi

Katika hatua hii, tunaweka chaguzi za prints kukupa dalili kwamba inaweka mzunguko, na tathmini ya hali za uwongo, kwa mfano.

kuanzisha batili () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa serial do Arduino Serial.begin (115200); // Verifica se o modulo esta reactionendo e se o // cartao SD to encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicializando modulo DFPlayer… (3 ~ 5 segundos)"); ikiwa (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheki kama koni hufanya DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); wakati (kweli); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Saa za kumaliza 500,000 myDFPlayer.volume (10); // Volume 10 vai de 0 a 30 myDFPlayer. EQ (0); // Equalizacao kawaida // recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (Nyimbo za juu); // Mostra o menu de comandos menyu_opcoes ();

Menyu ya Chaguzi

Unadhibiti mkutano huu wote kupitia mfuatiliaji wa serial. Kwa hivyo kila wakati, mpango huo utakuwa unachapisha Menyu ya Chaguzi unayo, na amri, maagizo.

menu_opcoes batili () {Serial.println (); Serial.println ("Comandos:"); Printa ya serial ("[1-"); Serial.print (Nyimbo za juu); Serial.println ("] Para selecionar o arquivo MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa / continua muziki"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ au -] aumenta ou diminui o kiasi"); Serial.println (); }

Kitanzi

kitanzi batili () {// Aguarda entada de dados pela serial wakati (Serial.available ()> 0) {// recupera os dados de entada buf = Serial.readStringUntil ('\ n'); // Tengeneza tena (índice da música) ikiwa ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // kucheza na menyu menu_opcoes (); } // Pausa / Continua muziki ikiwa (buf == "p") {if (pausa) {Serial.println ("Continua musica…"); kuanza (); } mwingine {Serial.println ("Musica pausada…"); kusitisha myDFPlayer (); } pausa =! pausa; menyu_opcoes (); } // Parada ikiwa (buf == "s") {myDFPlayer.stop (); Serial.println ("Parada ya Musica!"); menyu_opcoes (); } // Seleciona equalizacao ikiwa (buf == "e") {equalizacao ++; ikiwa (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Printa ya serial (equalizacao); Serial.println ("(0 = Kawaida, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass)"); menyu_opcoes (); } // Kiasi cha Aumenta ikiwa (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menyu_opcoes (); } // Kiasi cha Diminui ikiwa (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menyu_opcoes (); }} // wakati} // kitanzi

Ilipendekeza: