สารบัญ:
- ขั้นตอนที่ 1: วัตถุประสงค์ของโครงการ
- ขั้นตอนที่ 2: ทฤษฎี
- ขั้นตอนที่ 3: ขั้นตอน
- ขั้นตอนที่ 4: โหมดการทำงาน: 1- ไฟ LED เป็นเอาต์พุตดิจิตอล PWM
- ขั้นตอนที่ 5: โหมดการทำงาน: 2- LEDs เป็นเอาต์พุตดิจิตอล
- ขั้นตอนที่ 6: โหมดการทำงาน: 3- ปั๊มเป็นเอาต์พุตดิจิตอล
- ขั้นตอนที่ 7: ผู้ติดต่อ
วีดีโอ: น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
การรับสัญญาณเสียงและแปลงเป็นปฏิกิริยาทางสายตาหรือทางกลไกนั้นน่าสนใจมาก ในโครงการนี้ เราจะใช้ Arduino Mega เพื่อเชื่อมต่อกับเครื่องวิเคราะห์สเปกตรัม MSGEQ7 ที่รับสัญญาณเสียงอินพุตและกรองผ่านแถบความถี่เพื่อแบ่งออกเป็น 7 แถบความถี่หลัก จากนั้น Arduino จะวิเคราะห์สัญญาณอะนาล็อกของแต่ละย่านความถี่และสร้างการกระทำ
ขั้นตอนที่ 1: วัตถุประสงค์ของโครงการ
โครงการนี้จะกล่าวถึง 3 โหมดการทำงาน:
- ไฟ LED เชื่อมต่อกับพินดิจิตอล PWM เพื่อตอบสนองต่อคลื่นความถี่
- LED เชื่อมต่อกับพินดิจิตอลเพื่อตอบสนองต่อคลื่นความถี่
- ปั๊มเชื่อมต่อกับ Arduino Mega ผ่านไดรเวอร์มอเตอร์และตอบสนองต่อคลื่นความถี่
ขั้นตอนที่ 2: ทฤษฎี
ถ้าเราพูดถึง MSGEQ7 Spectrum Analyzer IC เราสามารถพูดได้ว่ามีตัวกรองความถี่ 7 แบนด์ภายในที่แบ่งสัญญาณเสียงอินพุตออกเป็น 7 แบนด์หลัก: 63 Hz, 160 Hz, 400 Hz, 1 kHz, 2.5 kHz, 6.25 kHz และ 16 กิโลเฮิรตซ์
เอาต์พุตของตัวกรองแต่ละตัวถูกเลือกให้เป็นเอาต์พุตของ IC โดยใช้มัลติเพล็กเซอร์ มัลติเพล็กเซอร์นั้นมีตัวเลือกบรรทัดควบคุมโดยตัวนับไบนารีภายใน ดังนั้นเราจึงสามารถพูดได้ว่าตัวนับควรนับตั้งแต่ 0 ถึง 6 (000 ถึง 110 ในเลขฐานสอง) เพื่อให้หนึ่งแบนด์ผ่านในแต่ละครั้ง นั่นทำให้ชัดเจนว่ารหัสของ Arduino ควรจะสามารถรีเซ็ตตัวนับได้เมื่อถึงจำนวน 7
ถ้าเราดูที่แผนภาพวงจรของ MSGEQ7 เราจะเห็นว่าเราใช้เครื่องรับสัญญาณความถี่ RC เพื่อควบคุมนาฬิกาภายในของออสซิลเลเตอร์ จากนั้นเราใช้การกรององค์ประกอบ RC ที่พอร์ตสัญญาณเสียงอินพุต
ขั้นตอนที่ 3: ขั้นตอน
ตามหน้าแหล่งที่มา (https://www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html) เราจะเห็นว่าซอร์สโค้ดเกี่ยวข้องกับเอาต์พุตเป็นสัญญาณ PWM ที่ซ้ำกัน เราสามารถเปลี่ยนโค้ดบางบรรทัดเพื่อให้เหมาะกับเป้าหมายของเรา
เราสามารถสังเกตได้ว่าถ้าเรามีแจ็คสเตอริโอ เราสามารถเพิ่มตัวต้านทานอินพุตและตัวเก็บประจุเป็นสองเท่าไปยังช่องสัญญาณที่สอง เราจ่ายไฟให้กับ MSGEQ7 จาก Arduino VCC (5 โวลต์) และ GND เราจะเชื่อมต่อ MSGEQ7 กับบอร์ด Arduino ฉันชอบที่จะใช้ Arduino Mega เพราะมีพิน PWM ที่เหมาะกับโครงการ เอาต์พุตของ MSGEQ7 IC เชื่อมต่อกับพินอะนาล็อก A0, STROBE เชื่อมต่อกับพิน 2 ของ Arduino Mega และ RESET เชื่อมต่อกับพิน 3
ขั้นตอนที่ 4: โหมดการทำงาน: 1- ไฟ LED เป็นเอาต์พุตดิจิตอล PWM
ตามซอร์สโค้ด เราสามารถเชื่อมต่อ LED เอาต์พุตกับพิน 4 ถึง 10
const int LED_pins[7] ={4, 5, 6, 7, 8, 9, 10};
จากนั้นเราจะสังเกตเห็นว่าไฟ LED เต้นตามความแรงของคลื่นความถี่แต่ละแถบ
ขั้นตอนที่ 5: โหมดการทำงาน: 2- LEDs เป็นเอาต์พุตดิจิตอล
เราสามารถเชื่อมต่อ LED เอาต์พุตกับพินดิจิตอลใดๆ
const int LED_pins[7] ={40, 42, 44, 46, 48, 50, 52};
จากนั้นเราจะสังเกตได้ว่าไฟ LED จะกะพริบตามความแรงของคลื่นความถี่แต่ละแถบ
ขั้นตอนที่ 6: โหมดการทำงาน: 3- ปั๊มเป็นเอาต์พุตดิจิตอล
ในโหมดสุดท้ายนี้ เราจะเชื่อมต่อโมดูลไดรเวอร์มอเตอร์ L298N กับเอาต์พุตของ Arduino ซึ่งช่วยให้เราควบคุมการทำงานของปั๊มตามเอาต์พุตของเครื่องวิเคราะห์สเปกตรัม MSGEQ7
ดังที่ทราบ ไดรเวอร์มอเตอร์ช่วยให้เราควบคุมการทำงานของมอเตอร์หรือปั๊มที่เชื่อมต่อตามสัญญาณที่สร้างขึ้นจาก Arduino โดยไม่จมกระแสใดๆ จาก Arduino แทนที่จะให้พลังงานกับมอเตอร์โดยตรงจากแหล่งพลังงานที่เชื่อมต่อ
หากเราเรียกใช้โค้ดเป็นแหล่งข้อมูลดิบ ปั๊มอาจทำงานไม่ถูกต้อง นั่นเป็นเพราะสัญญาณ PWM ต่ำและจะไม่เหมาะสำหรับคนขับมอเตอร์ที่จะรันมอเตอร์หรือปั๊มและจ่ายกระแสไฟที่เหมาะสม นั่นคือเหตุผลที่ฉันแนะนำให้เพิ่มค่า PWM โดยการคูณการอ่านแบบอะนาล็อกจาก A0 ด้วยตัวคูณที่มากกว่า 1.3 ซึ่งช่วยให้การทำแผนที่มีความเหมาะสมกับตัวขับมอเตอร์ ฉันแนะนำ 1.4 ถึง 1.6 นอกจากนี้เรายังสามารถทำการแมป PWM ใหม่เป็น 50 ถึง 255 เพื่อให้แน่ใจว่าค่า PWM จะเหมาะสม
เราสามารถเชื่อมต่อ LED เข้ากับเอาต์พุตสำหรับไดรเวอร์มอเตอร์ได้ แต่ไฟ LED จะไม่กะพริบในลักษณะที่มองเห็นได้ชัดเจนเหมือนเมื่อก่อน เนื่องจากค่า PWM เพิ่มขึ้น ดังนั้นฉันจึงแนะนำให้เชื่อมต่อกับหมุดดิจิทัล 40 ถึง 52
ขั้นตอนที่ 7: ผู้ติดต่อ
ดีใจมากที่ได้ยินการตอบกลับจากคุณ โปรดอย่าลังเลที่จะเข้าร่วมช่องของฉันบน:
ยูทูบ:
Instagram: @simplydigital010
Twitter: @simply01Digital
แนะนำ:
วิธีทำ DIY 32 Band LED Audio Music Spectrum Analyzer โดยใช้ Arduino Nano ที่บ้าน #arduinoproject: 8 ขั้นตอน
วิธีทำ DIY 32 Band LED Audio Music Spectrum Analyzer โดยใช้ Arduino Nano ที่บ้าน #arduinoproject: วันนี้เราจะสร้างเครื่องวิเคราะห์สเปกตรัมเพลงเสียง LED 32 แบนด์ที่บ้านโดยใช้ Arduino มันสามารถแสดงสเปกตรัมความถี่และเล่นเพลงได้ในเวลาเดียวกันหมายเหตุ max7219LED ต้องต่อที่หน้าตัวต้านทาน 100k ไม่เช่นนั้นเสียงของสปี
IR Remote Analyzer / Receiver พร้อม Arduino: 3 ขั้นตอน
IR Remote Analyzer / Receiver พร้อม Arduino: เครื่องวิเคราะห์นี้ได้รับโปรโตคอล IR 40 แบบพร้อมกันและแสดงที่อยู่และรหัสของสัญญาณที่ได้รับ โดยใช้ไลบรารี Arduino IRMP ซึ่งรวมถึงแอปพลิเคชันนี้เป็นตัวอย่างและแอปพลิเคชันที่เป็นประโยชน์อื่น ๆ ถ้าคุณ ต้องการที่จะ
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: 3 ขั้นตอน
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: เป็นโปรเจ็กต์เครื่องรับย่านความถี่ทั้งหมด ใช้ห้องสมุด Arduino Si4734 ห้องสมุดนี้มีตัวอย่างมากกว่า 20 ตัวอย่าง คุณสามารถฟัง FM ด้วย RDS สถานี AM (MW) ในพื้นที่ SW และสถานีวิทยุสมัครเล่น (SSB) เอกสารทั้งหมดที่นี่
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: 5 ขั้นตอน
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: Micropython เป็นการเพิ่มประสิทธิภาพของ python และมีขนาดเล็กของ python ซึ่งหมายถึงการสร้างสำหรับอุปกรณ์ฝังตัวซึ่งมีข้อจำกัดด้านหน่วยความจำและใช้พลังงานต่ำ Micropython สามารถใช้ได้กับคอนโทรลเลอร์หลายตระกูล ซึ่งรวมถึง ESP8266, ESP32, Ardui
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & โดยทั่วไปแล้ว PWM จะใช้เพื่อสร้างเอาต์พุตแอนะล็อกจาก MCU ใดๆ และเอาต์พุตแอนะล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก