สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: โมดูล MP3 ของ DF Mini Player คืออะไร
- ขั้นตอนที่ 2:
- ขั้นตอนที่ 3: การควบคุม DFMini Player ด้วย Arduino
- ขั้นตอนที่ 4:
วีดีโอ: วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
หลายโครงการต้องการการสร้างเสียงเพื่อเพิ่มฟังก์ชันการทำงานบางประเภท ในโครงการเหล่านี้ เราเน้น: การเข้าถึงสำหรับผู้พิการทางสายตา เครื่องเล่นเพลง 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 คืออะไร
โมดูล 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
ในขั้นตอนนี้ 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 ที่เสนอส่วนประกอบอิเล็กทรอนิกส์เพื่อสร้างโครงการนี้
แนะนำ:
วิธีการสร้างเครื่องเล่น MP3 ด้วย LCD โดยใช้ Arduino และ DFPlayer Mini MP3 Player Module: 6 ขั้นตอน
วิธีการสร้างเครื่องเล่น MP3 ด้วย LCD โดยใช้ Arduino และ DFPlayer Mini MP3 Player Module: วันนี้เราจะสร้างเครื่องเล่น MP3 พร้อม LCD โดยใช้ Arduino และ DFPlayer mini MP3 Player Module โครงการสามารถอ่านไฟล์ MP3 ในการ์ด SD และสามารถหยุดชั่วคราว และเล่นเหมือนเครื่องเมื่อ 10 ปีที่แล้ว และยังมีเพลงก่อนหน้าและเพลงถัดไปที่สนุก
วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน
วิธีใช้โมดูล RFID-RC522 กับ Arduino: ในคำแนะนำนี้ ฉันจะอธิบายหลักการทำงานพื้นฐานของโมดูล RFID ควบคู่ไปกับแท็กและชิป ฉันจะให้ตัวอย่างสั้นๆ ของโครงการที่ฉันสร้างโดยใช้โมดูล RFID ที่มีไฟ LED RGB ตามปกติกับ Ins ของฉัน
[Docker Pi Series] วิธีใช้โมดูล IoT Node (A) บน Raspberry Pi: 18 ขั้นตอน
[Docker Pi Series] วิธีใช้โมดูล IoT Node (A) บน Raspberry Pi: โมดูล IoT Node (A) คืออะไร IoT Node (A) เป็นหนึ่งในโมดูล Docker Pi series IOT Node(A) = GPS/BDS + GSM + Lora.I2C ควบคุม Lora ส่งและรับข้อมูลโดยตรง ควบคุมโมดูล GSM/GPS/BDS ผ่าน SC16IS752 เมนบอร์ดต้องการเพียง I2C suppo
วิธีใช้โมดูล GY511 กับ Arduino [สร้างเข็มทิศดิจิตอล]: 11 ขั้นตอน
วิธีใช้โมดูล GY511 กับ Arduino [สร้างเข็มทิศดิจิตอล]: ภาพรวมในโครงการอิเล็กทรอนิกส์บางโครงการ เราจำเป็นต้องทราบตำแหน่งทางภูมิศาสตร์เมื่อใดก็ได้ และดำเนินการเฉพาะตามนั้น ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้โมดูลเข็มทิศ LSM303DLHC GY-511 กับ Arduino เพื่อสร้างเข็มทิศดิจิตอล
วิธีใช้โมดูล RGB Led: 4 ขั้นตอน
วิธีการใช้โมดูลไฟ LED RGB: คำอธิบาย:มีตัวต้านทานในตัวเพื่อป้องกันไม่ให้ไฟ LED ไหม้ สามารถใช้กับไมโครคอนโทรลเลอร์ต่างๆ ใช้งานได้สูง แรงดันไฟฟ้าทำงาน: 3.3V / 5Vสามารถเชื่อมต่อกับ Arduino ได้โดยตรง โดยไม่ต้องใช้สายจัมเปอร์