สารบัญ:

วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน

วีดีโอ: วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน

วีดีโอ: วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน
วีดีโอ: A compete guide to mp3 Module using Arduino & ESP32 board | DFPlayer Mini | Arduino Projects 2024, พฤศจิกายน
Anonim
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino

หลายโครงการต้องการการสร้างเสียงเพื่อเพิ่มฟังก์ชันการทำงานบางประเภท ในโครงการเหล่านี้ เราเน้น: การเข้าถึงสำหรับผู้พิการทางสายตา เครื่องเล่นเพลง MP3 และการใช้เสียงโดยหุ่นยนต์ เป็นต้น

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

เสบียง

PCBWay PCB แบบกำหนดเอง;

โมดูล DFPlayer มินิ MP3 - UTSOURCE;

ตัวต้านทาน 10kR - UTSOURCE;

ปุ่มสวิตช์ - UTSOURCE;

เขียงหั่นขนม - UTSOURCE;

Arduino UNO - UTSOURCE;

หมุดส่วนหัว - UTSOURCE;

ขั้นตอนที่ 1: โมดูล MP3 ของ DF Mini Player คืออะไร

โมดูล MP3 ของ DF Mini Player คืออะไร
โมดูล MP3 ของ DF Mini Player คืออะไร
โมดูล MP3 ของ DF Mini Player คืออะไร
โมดูล MP3 ของ DF Mini Player คืออะไร

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

จากสิ่งนี้ โมดูลสามารถควบคุมได้ผ่านโหมดสแตนด์อโลน นั่นคือ ในโหมดนี้จะมีเพียงโมดูล DFMini, แบตเตอรี่สำหรับจ่ายไฟ, ลำโพง, ปุ่มสำหรับควบคุม และการ์ด SD พร้อมเพลง อีกวิธีในการควบคุมคือการใช้ Arduino หรืออุปกรณ์ควบคุมอื่น

ตัวอย่างเช่น Arduino จะส่งคำสั่งผ่านการสื่อสารแบบอนุกรมกับ DFMini Player Module โมดูล DFMini Player แสดงในรูปที่ 1

ในการควบคุมนั้น จำเป็นต้องใช้วงจรพื้นฐานแบบสแตนด์อโลน วงจรนี้แสดงในรูปที่ 2

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

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

ขั้นตอนที่ 2:

ภาพ
ภาพ

ในวิธีการแบบสแตนด์อโลนนี้ เพลงจะต้องบันทึกไว้ในการ์ดหน่วยความจำ ดังแสดงในรูปที่ 3

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

ตอนนี้ ฉันจะอธิบายวิธีควบคุม DFMini Player โดยใช้ Arduino ผ่านการสื่อสารแบบอนุกรม

ขั้นตอนที่ 3: การควบคุม DFMini Player ด้วย Arduino

การควบคุมเครื่องเล่น DFMini ด้วย Arduino
การควบคุมเครื่องเล่น DFMini ด้วย Arduino
การควบคุมเครื่องเล่น DFMini ด้วย Arduino
การควบคุมเครื่องเล่น DFMini ด้วย Arduino

ในขั้นตอนนี้ Arduino จะส่งการควบคุมระดับเสียง การควบคุมช่วง คำสั่งอีควอไลเซอร์ และคุณสมบัติอื่นๆ

Arduino ต้องสื่อสารผ่านซีเรียลกับ DFMini Player และส่งคำสั่งควบคุม

รูปแบบอิเล็กทรอนิกส์ของวงจรควบคุมแสดงในรูปที่ 4

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

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

ขั้นตอนที่ 4:

หลังจากตั้งชื่อไฟล์แล้ว ให้เขียนโค้ดต่อไปนี้บน Arduino ของคุณ

//รอการป้อนข้อมูลผ่าน serialwhile (Serial.available() > 0) { command = Serial.read(); if ((คำสั่ง >= '1') && (คำสั่ง <= '9')) { Serial.print ("การทำซ้ำเพลง"); Serial.println (คำสั่ง); คำสั่ง = คำสั่ง - 48; myDFPlayer.play(คำสั่ง); menu_opcoes(); } // การทำซ้ำ // หยุดถ้า (คำสั่ง == 's') { myDFPlayer.stop (); Serial.println("เพลงหยุด!"); menu_opcoes(); } //Pausa/Continua a musica if (คำสั่ง == 'p') { pausa = !pausa; ถ้า (pausa == 0) { Serial.println ("ดำเนินการต่อ…"); myDFPlayer.start(); } if (pausa == 1) { Serial.println ("เพลงหยุดชั่วคราว!"); myDFPlayer.pause(); } menu_opcoes(); }

//เพิ่มระดับเสียง

if (คำสั่ง == '+') { myDFPlayer.volumeUp (); Serial.print("ปริมาณปัจจุบัน:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (คำสั่ง == '') { myDFPlayer.next(); Serial.println("ถัดไป:"); Serial.print("แทร็กปัจจุบัน:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // ลดระดับเสียงถ้า (คำสั่ง == '-') { myDFPlayer.volumeDown (); Serial.print("ปริมาณปัจจุบัน:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } } โมฆะ menu_opcoes() { Serial.println(); Serial.println(F("============================================ ================================================= ====================================")); Serial.println(F("คำสั่ง:")); Serial.println(F(" [1-3] เพื่อเลือกไฟล์ MP3")); Serial.println(F(" [s] หยุดการทำสำเนา")); Serial.println(F(" [p] หยุดชั่วคราว/เล่นเพลงต่อไป")); Serial.println(F(" [+ หรือ -] เพิ่มหรือลดระดับเสียง")); Serial.println(F(" ไปข้างหน้าหรือข้างหลังแทร็ก")); Serial.println(); Serial.println(F("=========================================== ================================================= ===================================")); }

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

การควบคุมดนตรีประกอบด้วยการส่งข้อมูลจากอนุกรม Arduino IDE ไปยังบอร์ด Arduino ของเรา เริ่มแรก ระบบจะทำการกำหนดค่าในการตั้งค่าและตรวจสอบว่าใส่การ์ด SD ลงในโมดูลหรือไม่

หากไม่ได้ใส่ไว้ ระบบจะแสดงข้อความเตือนผู้ใช้

นอกจากนี้ ระบบจะแสดงข้อความพร้อมตัวเลือกการกำหนดค่าระบบ

การตั้งค่าเป็นโมฆะ () {// 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(F("DFRobot DFPlayer Mini")); Serial.println(F("กำลังเริ่มต้นโมดูล DFPlayer … รอ!")); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println(F("ไม่เริ่มต้น:")); Serial.println(F("1. ตรวจสอบการเชื่อมต่อ DFPlayer Mini")); Serial.println(F("2. ใส่การ์ด SD")); ในขณะที่ (จริง); } Serial.println(); Serial.println(F("โมดูล DFPlayer เริ่มต้น!")); //กำหนด iniciais myDFPlayer.setTimeOut(500); //หมดเวลาอนุกรม 500ms myDFPlayer.volume(5); //เล่มที่ 5 myDFPlayer. EQ(0); //Equalizacao ปกติ menu_opcoes(); }

หากใส่การ์ดหน่วยความจำ กระแสโค้ดจะเข้าสู่ฟังก์ชันวนซ้ำ

void loop(){ //รอการป้อนข้อมูลผ่าน serial while (Serial.available() > 0) { command = Serial.read(); if ((คำสั่ง >= '1') && (คำสั่ง <= '3')) { Serial.print ("การทำซ้ำเพลง"); Serial.println (คำสั่ง); คำสั่ง = คำสั่ง - 48; myDFPlayer.play(คำสั่ง); menu_opcoes(); } // การทำซ้ำ // หยุดถ้า (คำสั่ง == 's') { myDFPlayer.stop (); Serial.println("เพลงหยุด!"); menu_opcoes(); } //Pausa/Continua a musica if (คำสั่ง == 'p') { pausa = !pausa; ถ้า (pausa == 0) { Serial.println ("ดำเนินการต่อ…"); myDFPlayer.start(); } if (pausa == 1) { Serial.println ("เพลงหยุดชั่วคราว!"); myDFPlayer.pause(); } menu_opcoes(); }

//เพิ่มระดับเสียง

if (คำสั่ง == '+') { myDFPlayer.volumeUp (); Serial.print("ปริมาณปัจจุบัน:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (คำสั่ง == '') { myDFPlayer.next(); Serial.println("ถัดไป:"); Serial.print("แทร็กปัจจุบัน:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // ลดระดับเสียงถ้า (คำสั่ง == '-') { myDFPlayer.volumeDown (); Serial.print("ปริมาณปัจจุบัน:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } }

ผู้ใช้สามารถส่งอักขระควบคุมต่อไปนี้:

หมายเลข 1 ถึง 3: เลือกเพลงที่จะเล่น

  • ตัวอักษร s: หยุดเพลง; Letter p: หยุดเพลงชั่วคราว;
  • ส่งเครื่องหมาย +: เพิ่มระดับเสียงเพลง;
  • ส่งสัญญาณ - ลดระดับเสียงเพลง;
  • ส่งสัญญาณ <: เลือกเพลงก่อนหน้า;
  • ส่งสัญญาณ >: เลือกเพลงถัดไป;

จากสัญญาณตัวอักษรและตัวเลขเหล่านี้ Arduino จะได้รับผ่านทางซีเรียลและจะควบคุมเพลงที่จะเล่น

แต่ละเงื่อนไขแสดงไว้ด้านล่างและภายในด้วยคำสั่งที่เกี่ยวข้อง

if ((คำสั่ง >= '1') && (คำสั่ง <= '3')){ Serial.print("การทำซ้ำเพลง"); Serial.println (คำสั่ง); คำสั่ง = คำสั่ง - 48; myDFPlayer.play(คำสั่ง); menu_opcoes(); } // การทำซ้ำ // หยุดถ้า (คำสั่ง == 's') { myDFPlayer.stop (); Serial.println("เพลงหยุด!"); menu_opcoes(); } //Pausa/Continua a musica if (คำสั่ง == 'p') { pausa = !pausa; ถ้า (pausa == 0) { Serial.println ("ดำเนินการต่อ…"); myDFPlayer.start(); } if (pausa == 1) { Serial.println ("เพลงหยุดชั่วคราว!"); myDFPlayer.pause(); } menu_opcoes(); }

//เพิ่มระดับเสียง

if (คำสั่ง == '+') { myDFPlayer.volumeUp (); Serial.print("ปริมาณปัจจุบัน:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } if (คำสั่ง == '') { myDFPlayer.next(); Serial.println("ถัดไป:"); Serial.print("แทร็กปัจจุบัน:"); Serial.println(myDFPlayer.readCurrentFileNumber()+1); menu_opcoes(); } // ลดระดับเสียงถ้า (คำสั่ง == '-') { myDFPlayer.volumeDown (); Serial.print("ปริมาณปัจจุบัน:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } }

ดังนั้น หากคุณใช้ขั้นตอนทั้งหมดที่นำเสนอ คุณจะสามารถเรียนรู้:

  • วงจรการทำงานพื้นฐานของ DFMini Player MP3;
  • การจัดระเบียบและการกำหนดค่าไฟล์เสียงในการ์ดหน่วยความจำ
  • การควบคุมดนตรีด้วย Arduino จากโค้ดนี้ คุณจะสามารถพัฒนาโปรเจ็กต์อื่นๆ ที่ต้องใช้เสียงเป็นฟังก์ชันของระบบได้

รับทราบ

สุดท้ายนี้ ขอขอบคุณสำหรับการอ่านของคุณและการสนับสนุนของ PCBWAY. COM ที่สนับสนุน Silício Lab ในการผลิตบทความนี้ให้กับคุณ

Silícios Lab ขอขอบคุณ UTSOURCE ที่เสนอส่วนประกอบอิเล็กทรอนิกส์เพื่อสร้างโครงการนี้

แนะนำ: