สารบัญ:

น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer: 8 ขั้นตอน
น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer: 8 ขั้นตอน

วีดีโอ: น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer: 8 ขั้นตอน

วีดีโอ: น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer: 8 ขั้นตอน
วีดีโอ: Dancing Fountain DIY - How to Make Dancing Water Fountain (Indoor) 2024, กรกฎาคม
Anonim
น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer
น้ำพุเต้นรำ: Arduino พร้อม MSGEQ7 Spectrum Analyzer

การรับสัญญาณเสียงและแปลงเป็นปฏิกิริยาทางสายตาหรือทางกลไกนั้นน่าสนใจมาก ในโครงการนี้ เราจะใช้ Arduino Mega เพื่อเชื่อมต่อกับเครื่องวิเคราะห์สเปกตรัม MSGEQ7 ที่รับสัญญาณเสียงอินพุตและกรองผ่านแถบความถี่เพื่อแบ่งออกเป็น 7 แถบความถี่หลัก จากนั้น Arduino จะวิเคราะห์สัญญาณอะนาล็อกของแต่ละย่านความถี่และสร้างการกระทำ

ขั้นตอนที่ 1: วัตถุประสงค์ของโครงการ

โครงการนี้จะกล่าวถึง 3 โหมดการทำงาน:

  1. ไฟ LED เชื่อมต่อกับพินดิจิตอล PWM เพื่อตอบสนองต่อคลื่นความถี่
  2. LED เชื่อมต่อกับพินดิจิตอลเพื่อตอบสนองต่อคลื่นความถี่
  3. ปั๊มเชื่อมต่อกับ 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

โหมดการทำงาน: 1- ไฟ LED เป็นเอาต์พุตดิจิตอล PWM
โหมดการทำงาน: 1- ไฟ LED เป็นเอาต์พุตดิจิตอล PWM

ตามซอร์สโค้ด เราสามารถเชื่อมต่อ LED เอาต์พุตกับพิน 4 ถึง 10

const int LED_pins[7] ={4, 5, 6, 7, 8, 9, 10};

จากนั้นเราจะสังเกตเห็นว่าไฟ LED เต้นตามความแรงของคลื่นความถี่แต่ละแถบ

ขั้นตอนที่ 5: โหมดการทำงาน: 2- LEDs เป็นเอาต์พุตดิจิตอล

Image
Image
โหมดการทำงาน: 3- ปั๊มเป็นเอาต์พุตดิจิตอล
โหมดการทำงาน: 3- ปั๊มเป็นเอาต์พุตดิจิตอล

เราสามารถเชื่อมต่อ LED เอาต์พุตกับพินดิจิตอลใดๆ

const int LED_pins[7] ={40, 42, 44, 46, 48, 50, 52};

จากนั้นเราจะสังเกตได้ว่าไฟ LED จะกะพริบตามความแรงของคลื่นความถี่แต่ละแถบ

ขั้นตอนที่ 6: โหมดการทำงาน: 3- ปั๊มเป็นเอาต์พุตดิจิตอล

โหมดการทำงาน: 3- ปั๊มเป็นเอาต์พุตดิจิตอล
โหมดการทำงาน: 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

แนะนำ: