Inhoudsopgave:

Hoe de DFMini Player MP3-module te gebruiken met Arduino - Ajarnpa
Hoe de DFMini Player MP3-module te gebruiken met Arduino - Ajarnpa

Video: Hoe de DFMini Player MP3-module te gebruiken met Arduino - Ajarnpa

Video: Hoe de DFMini Player MP3-module te gebruiken met Arduino - Ajarnpa
Video: Как добавить потенциометр на DFPlayer Mini | Нет Ардуино 2024, November
Anonim
Hoe de DFMini Player MP3-module te gebruiken met Arduino
Hoe de DFMini Player MP3-module te gebruiken met Arduino

Verschillende projecten vereisen geluidsweergave om een of andere vorm van functionaliteit toe te voegen. Onder deze projecten belichten we: toegankelijkheid voor slechtzienden, mp3-muziekspelers en het uitvoeren van spraakgeluiden door bijvoorbeeld robots.

In al deze systemen hebben we een MP3-geluidsreproductieapparaat nodig om verbinding te maken met de Arduino. Daarom zullen we in dit artikel de volgende punten leren: Basisbedieningscircuit van de DFMini Player MP3;Organisatie en configuratie van geluidsbestanden op de geheugenkaart;Muzikale besturing met Arduino.

Benodigdheden

PCBWay Aangepaste PCB;

DFPlayer Mini MP3-module - UTSOURCE;

10kR-weerstand - UTSOURCE;

Schakelknop - UTSOURCE;

Breadboard - UTSOURCE;

Arduino UNO - UTSOURCE;

Headerpin - UTSOURCE;

Stap 1: Wat is de DF Mini Player MP3-module?

Wat is de DF Mini Player MP3-module?
Wat is de DF Mini Player MP3-module?
Wat is de DF Mini Player MP3-module?
Wat is de DF Mini Player MP3-module?

De DFMini Player-module is een kleine muziekspeler, goedkoop en met een laag stroomverbruik, die tot doel heeft geluiden weer te geven die op een geheugenkaart zijn opgeslagen.

Op basis hiervan kan de module worden bestuurd via de stand-alone modus, dat wil zeggen, in deze modus is er alleen de DFMini-module, een batterij voor voeding, de luidspreker, knoppen om deze te bedienen en de SD-kaart met de liedjes. Een andere manier om het te besturen is door een Arduino of een ander besturingsapparaat te gebruiken.

De Arduino stuurt bijvoorbeeld opdrachten via seriële communicatie met de DFMini Player Module. De DFMini Player-module wordt getoond in Afbeelding 1.

Om het te besturen, is het belangrijk om het basis stand-alone circuit te gebruiken. Deze schakeling wordt getoond in figuur 2.

De twee knoppen die in het bovenstaande circuit worden getoond, worden gebruikt om de muziektracks te wijzigen en het volume van het geluid te regelen. De knop die is aangesloten op pin IO1 wordt gebruikt om naar de vorige track te gaan en het volume te verlagen. Met een snelle aanraking keert het systeem terug naar het vorige nummer, maar als u de knop langer dan 1 seconde ingedrukt houdt, verlaagt het systeem het volume van het nummer.

De knop die is aangesloten op pin IO2 wordt gebruikt om naar het volgende nummer te gaan en het volume te verhogen. Met een snelle aanraking gaat het systeem naar het volgende nummer, maar als u de knop langer dan 1 seconde ingedrukt houdt, verhoogt het systeem het volume van het nummer.

Stap 2:

Afbeelding
Afbeelding

Bij deze zelfstandige methode moeten de nummers op de geheugenkaart worden opgeslagen, zoals weergegeven in afbeelding 3.

Op deze manier speelt het systeem elke keer dat de knoppen worden ingedrukt, elk nummer in oplopende of aflopende volgorde af. Als we echter Arduino of een ander besturingsapparaat gebruiken, moeten we de manier wijzigen waarop de muziekbestanden op de SD-kaart worden georganiseerd.

Nu zal ik uitleggen hoe je de DFMini Player bestuurt met behulp van de Arduino via seriële communicatie.

Stap 3: De DFMini-speler besturen met Arduino

De DFMini-speler besturen met Arduino
De DFMini-speler besturen met Arduino
De DFMini-speler besturen met Arduino
De DFMini-speler besturen met Arduino

In deze stap worden de volumeregeling, bereikregeling, egalisatiecommando's en andere functies door Arduino verzonden.

De Arduino moet via de serieel communiceren met de DFMini Player en de stuurcommando's verzenden.

Het elektronische schema van het regelcircuit wordt getoond in figuur 4.

Eerst moeten we het circuit in de onderstaande afbeelding monteren. Na het monteren van dit circuit moet u de nummers op uw geheugenkaart toevoegen. In deze stap moeten de nummers worden hernoemd naar bijvoorbeeld 01, 02, 03.

Je kunt de nummers niet met hun naam achterlaten, omdat er een probleem zal zijn wanneer de Arduino het commando verzendt om het specifieke nummer uit te voeren. Daarom moet u configureren zoals hieronder wordt weergegeven.

Stap 4:

Nadat u de bestanden een naam hebt gegeven, schrijft u de volgende code op uw Arduino.

// Wacht op gegevensinvoer via serialwhile (Serial.available () > 0) { command = Serial.read (); if ((commando >= '1') && (commando <= '9')) { Serial.print("Muziekreproductie"); Serial.println(opdracht); commando = commando - 48; mijnDFPlayer.play(opdracht); menu_opcoes(); } // Reproductie // Stop if (opdracht == 's') { myDFPlayer.stop(); Serial.println("Muziek gestopt!"); menu_opcoes(); } //Pausa/Continua a musica if (command == 'p') { pausea = !pausa; if (pauze == 0) { Serial.println ("Doorgaan…"); mijnDFPlayer.start(); } if (pausa == 1) { Serial.println("Muziek gepauzeerd!"); mijnDFPlayer.pauze(); } menu_opcoes(); }

// Verhoogt het volume

if (opdracht == '+') { myDFPlayer.volumeUp(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (opdracht == '') { mijnDFPlayer.next(); Serial.println("volgende:"); Serial.print("Huidig nummer:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // Verlaagt het volume als (commando == '-') { myDFPlayer.volumeDown(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } } void menu_opcoes() { Serial.println(); Serial.println(F("=========================================== ================================================== =====================================")); Serial.println(F("Opdrachten:")); Serial.println(F(" [1-3] Om het MP3-bestand te selecteren")); Serial.println(F(" [s] stopt reproductie")); Serial.println(F(" [p] pauzeren/doorgaan met muziek")); Serial.println(F(" [+ of -] verhoogt of verlaagt het volume")); Serial.println(F(" vooruit of achteruit de track")); Serieel.println(); Serial.println(F("=========================================== ================================================== ====================================")); }

De hierboven gepresenteerde code is vrij eenvoudig en helpt je om het nummer op nummer te selecteren, te stoppen, te pauzeren, het volume te regelen en de nummers door te geven.

De muzikale besturing bestaat uit het verzenden van gegevens van de Arduino IDE-serie naar ons Arduino-bord. In eerste instantie maakt het systeem de configuratie in de setup en controleert het of de SD-kaart in de module is geplaatst.

Als het niet is geplaatst, presenteert het systeem een bericht om de gebruiker te waarschuwen.

Daarnaast geeft het systeem berichten weer met opties voor systeemconfiguratie.

void setup () {// Comunicacao seriële com o modulo mySoftwareSerial.begin (9600); //Inicializa a serial do Arduino Serial.begin(115200); //Verificatie van de modulo esta respondendo e se o //cartao SD foi encontrado Serial.println(); Serial.println(F("DFRobot DFPlayer Mini")); Serial.println(F("Initialiseren van DFPlayer-module… Wacht!")); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println(F("Niet geïnitialiseerd:")); Serial.println(F("1. Controleer de DFPlayer Mini-verbindingen")); Serial.println(F("2. Plaats een SD-kaart")); terwijl (waar); } Serieel.println(); Serial.println (F ("DFPlayer Mini-module geïnitialiseerd!")); //Definieert mijnDFPlayer.setTimeOut(500); //Time-out serieel 500ms myDFPlayer.volume(5); //Volume 5 mijnDFPlayer. EQ (0); //Equalizacao normaal menu_opcoes(); }

Als de geheugenkaart is geplaatst, gaat de codestroom naar de lusfunctie.

void loop () { // Wacht op gegevensinvoer via seriële while (Serial.available () > 0) { command = Serial.read (); if ((commando >= '1') && (commando <= '3')) { Serial.print("Muziekreproductie"); Serial.println(opdracht); commando = commando - 48; mijnDFPlayer.play(opdracht); menu_opcoes(); } // Reproductie // Stop if (opdracht == 's') { myDFPlayer.stop(); Serial.println("Muziek gestopt!"); menu_opcoes(); } //Pausa/Continua a musica if (command == 'p') { pausa = !pausa; if (pauze == 0) { Serial.println ("Doorgaan…"); mijnDFPlayer.start(); } if (pausa == 1) { Serial.println("Muziek gepauzeerd!"); mijnDFPlayer.pauze(); } menu_opcoes(); }

// Verhoogt het volume

if (opdracht == '+') { myDFPlayer.volumeUp(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (opdracht == '') { mijnDFPlayer.next(); Serial.println("volgende:"); Serial.print("Huidig nummer:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // Verlaagt het volume als (commando == '-') { myDFPlayer.volumeDown(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } }

De gebruiker kan de volgende controletekens verzenden:

Nummers 1 tot 3: Selecteer het nummer dat moet worden afgespeeld;

  • Letter s: Stop het nummer;Letter p: Pauzeer het nummer;
  • Stuur het + teken: Verhoog het nummervolume;
  • Stuur het - signaal: verlaag het nummervolume;
  • Stuur het signaal <: Selecteer het vorige nummer;
  • Stuur het signaal >: Selecteer het volgende nummer;

Van deze signalen, letters en cijfers ontvangt de Arduino ze via het serienummer en bestuurt de muziek die moet worden afgespeeld.

Elke voorwaarde wordt hieronder en intern weergegeven, met de bijbehorende opdrachten.

if ((commando >= '1') && (commando <= '3')){ Serial.print("Muziekreproductie"); Serial.println(opdracht); commando = commando - 48; mijnDFPlayer.play(opdracht); menu_opcoes(); } // Reproductie // Stop if (opdracht == 's') { myDFPlayer.stop(); Serial.println("Muziek gestopt!"); menu_opcoes(); } //Pausa/Continua a musica if (command == 'p') { pausea = !pausa; if (pauze == 0) { Serial.println ("Doorgaan…"); mijnDFPlayer.start(); } if (pausa == 1) { Serial.println("Muziek gepauzeerd!"); mijnDFPlayer.pauze(); } menu_opcoes(); }

// Verhoogt het volume

if (opdracht == '+') { myDFPlayer.volumeUp(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (opdracht == '') { mijnDFPlayer.next(); Serial.println("volgende:"); Serial.print("Huidig nummer:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // Verlaagt het volume als (commando == '-') { myDFPlayer.volumeDown(); Serial.print("Huidig volume:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } }

Dus als u alle gepresenteerde stappen heeft toegepast, kunt u het volgende leren:

  • Basisbedieningscircuit van de DFMini Player MP3;
  • Organisatie en configuratie van geluidsbestanden op de geheugenkaart;
  • Muzikale controle met Arduino. Vanuit deze code kun je andere projecten ontwikkelen die geluid als systeemfunctionaliteit moeten gebruiken.

Dankbetuigingen

Om af te sluiten, danken wij u voor uw lezing en de steun van PCBWAY. COM voor het ondersteunen van Silício Lab bij de productie van dit artikel voor u.

Het Silícios Lab bedankt UTSOURCE voor het aanbieden van de elektronische componenten om dit project te bouwen.

Aanbevolen: