สารบัญ:

เครื่องเล่น MP3 พร้อม Arduino: 6 ขั้นตอน
เครื่องเล่น MP3 พร้อม Arduino: 6 ขั้นตอน

วีดีโอ: เครื่องเล่น MP3 พร้อม Arduino: 6 ขั้นตอน

วีดีโอ: เครื่องเล่น MP3 พร้อม Arduino: 6 ขั้นตอน
วีดีโอ: การใช้งาน MXA116 PIR ตรวจจับการเคลื่อนไหว เล่นเสียง MP3 จาก SD CARD 2024, ธันวาคม
Anonim
Image
Image
แผ่นข้อมูล
แผ่นข้อมูล

ในชุดประกอบนี้ เราใช้เครื่องเล่น mp3 กับ Arduino Uno, เครื่องขยายเสียงขนาดเล็ก PAM8403 พร้อมการปรับระดับเสียง, โมดูล mp3 DFPlayer Mini และลำโพง 3-Watt หนึ่งคู่

โครงการนี้ไม่เพียงแต่ให้บริการเครื่องเล่นเพลงเท่านั้น แต่ยังอนุญาตให้ใช้เสียงสำหรับอุปกรณ์กั้นที่จอดรถหรือหุ่นยนต์ เป็นต้น การชุมนุมนี้จะช่วยให้สามารถวางเสียงที่บันทึกไว้ในอุปกรณ์ได้ เสียงนี้จะเป็นธรรมชาติและไม่สังเคราะห์ สำหรับคนส่วนใหญ่ คุณลักษณะเหล่านี้เป็นคุณลักษณะที่ดีกว่าเมื่อเทียบกับทางเลือกมาตรฐาน

สำหรับแอสเซมบลีนี้ เราใช้ Arduino Uno โดยเฉพาะ แต่คุณสามารถเชื่อมต่อกับ ESP8266 หรือ ESP32 ได้ เห็นได้ชัดว่าจะต้องทำการปรับพิน

ขั้นตอนที่ 1: เอกสารข้อมูล

ขั้นตอนที่ 2: โมดูล DFPlayer

โมดูล DFPlayer
โมดูล DFPlayer

โมดูล DFPlayer ใช้การสื่อสารแบบอนุกรม RX TX, VCC, GND มีเอาต์พุตไปยังลำโพงสองตัวและอินพุตเสียง

ขั้นตอนที่ 3: เครื่องขยายเสียงขนาดเล็ก PAM8403

มินิแอมพลิฟายเออร์ PAM8403
มินิแอมพลิฟายเออร์ PAM8403

ขั้นตอนที่ 4: การประกอบ

การประกอบ
การประกอบ

ขั้นตอนที่ 5: ห้องสมุด

ห้องสมุด
ห้องสมุด

เพิ่มไลบรารี "DFRobotDFPlayerMini" ต่อไปนี้สำหรับการสื่อสารกับโมดูล mp3

เพียงเข้าไปที่ "Sketch >> Include Libraries >> Manage Libraries …"

ขั้นตอนที่ 6: รหัสที่มา

เราจะเริ่มต้นด้วยการกำหนดไลบรารีและค่าคงที่ที่เราจะใช้กับโค้ดของเรา

เริ่มต้นด้วยการสร้างหนึ่งอ็อบเจ็กต์ ซอฟต์แวร์ซีเรียล และอื่นๆ ซึ่งก็คือ myDFPlayer

ตัวแปร buf ซึ่งเป็นประเภท String จะทำหน้าที่เก็บข้อมูลที่มาจาก Arduino Serial ซึ่งจะเป็นคำสั่งสำหรับโมดูล MP3 ตัวแปร "pause" จะใช้เพื่อระบุว่าเพลงกำลังเล่นหรือหยุดชั่วคราว (pause = true และระบุว่าถูกหยุดชั่วคราว มิฉะนั้น กำลังเล่นอยู่)

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inicia ซอฟต์แวร์ซีเรียล por nos pinos 10 e 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX // Objeto responsável pela comunicação com o módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; //variável responsável por armazenar os comandos enviados para controlar o ผู้เล่น String buf; //variável responsável por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; //variável responsável por armazenar o estado da equalização //ตัวแปร 0 a 5 int equalizacao = 0; // (0 = ปกติ, 1 = ป๊อป, 2 = ร็อค, 3 = แจ๊ส, 4 = คลาสสิก, 5 = เบส)" //variável responsável por armazenar o เพลงทั้งหมดไม่มีการ์ด SD int maxSongs = 0;

ติดตั้ง

ในขั้นตอนนี้ เราใส่ตัวเลือกของงานพิมพ์เพื่อให้คุณทราบว่ากำลังติดตั้งวงจรอยู่ เช่น การประเมินเงื่อนไขเท็จ

การตั้งค่าเป็นโมฆะ () {// Comunicacao serial com หรือ modulo mySoftwareSerial.begin (9600); //Inicializa เป็นอนุกรมสำหรับ Arduino Serial.begin (115200); //ยืนยัน se o modulo esta ตอบกลับ e se o //cartao SD foi encontrado Serial.println(); Serial.println ("DFRobot DFPlayer มินิ"); Serial.println("Inicializando modulo DFPlayer… (3~5 segundos)"); ถ้า (!myDFPlayer.begin (mySoftwareSerial)) { Serial.println ("Nao inicializado:"); Serial.println("1.ตรวจสอบเหมือน conexoes ทำ DFPlayer Mini"); Serial.println("2. Insira um cartao SD"); ในขณะที่ (จริง); } Serial.println(); Serial.println("Modulo DFPlayer เริ่มต้น!"); //กำหนด iniciais myDFPlayer.setTimeOut(500); //หมดเวลาอนุกรม 500ms myDFPlayer.volume(10); //Volume 10 vai de 0 a 30 myDFPlayer. EQ(0); //Equalizacao ปกติ //recupera o numero de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println(); Serial.print("จำนวนสินค้าไม่มีกล่อง SD: "); Serial.println (maxSongs); //Mostra o เมนูของ comandos menu_opcoes();

เมนูตัวเลือก

คุณควบคุมแอสเซมบลีทั้งหมดนี้ผ่านจอภาพแบบอนุกรม ดังนั้นในแต่ละครั้ง โครงร่างจะพิมพ์เมนูตัวเลือกที่คุณมี พร้อมคำสั่งและทิศทาง

เป็นโมฆะ menu_opcoes(){ Serial.println(); Serial.println("Comandos:"); Serial.print(" [1-"); Serial.print (maxSongs); Serial.println("] สำหรับตัวเลือก o arquivo MP3"); Serial.println(" [s] parar reproducao"); Serial.println(" [p] หยุดชั่วคราว / ต่อเนื่องเป็น musica"); Serial.println(" [e] seleciona equalizacao"); Serial.println(" [+ หรือ -] เพิ่ม ou diminui o ปริมาณ"); Serial.println(); }

ห่วง

วงเป็นโมฆะ () { // Aguarda a entrada de dados pela อนุกรมในขณะที่ (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()); // เล่นและฟังเพลง menu_opcoes(); } //Pausa/Continua a musica if (buf == "p") { if (pausa) { Serial.println("Continua musica…"); myDFPlayer.start(); } อื่น ๆ { Serial.println("Musica pausada…"); myDFPlayer.pause(); } pausa = !pausa; menu_opcoes(); } // Parada if (buf == "s") { myDFPlayer.stop(); Serial.println("ดนตรีพาราดา!"); menu_opcoes(); } //Seleciona equalizacao ถ้า (buf == "e") { equalizacao++; ถ้า (equalizacao == 6) { equalizacao = 0; } myDFPlayer. EQ(อีควอลิซาเคา); Serial.print("Equalizacao: "); Serial.print(อีควอลิซาเคา); Serial.println(" (0 = ปกติ, 1 = ป๊อป, 2 = ร็อค, 3 = แจ๊ส, 4 = คลาสสิก, 5 = เบส)"); menu_opcoes(); } // ปริมาณ Aumenta ถ้า (buf == "+") { myDFPlayer.volumeUp (); Serial.print("Volume atual:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } // ปริมาณ Diminui ถ้า (buf == "-") { myDFPlayer.volumeDown (); Serial.print("Volume atual:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } // ในขณะที่ } // loop

แนะนำ: