สารบัญ:

เครื่องวัด VU แบบอนาล็อกที่เปิดใช้งาน Bluetooth: 6 ขั้นตอน
เครื่องวัด VU แบบอนาล็อกที่เปิดใช้งาน Bluetooth: 6 ขั้นตอน

วีดีโอ: เครื่องวัด VU แบบอนาล็อกที่เปิดใช้งาน Bluetooth: 6 ขั้นตอน

วีดีโอ: เครื่องวัด VU แบบอนาล็อกที่เปิดใช้งาน Bluetooth: 6 ขั้นตอน
วีดีโอ: วิธีใช้งาน มัลติมิเตอร์เข็ม ,แบบอนาล็อก ไม่ยากอย่างที่คิด บอกละเอียดสุดๆ (Sanwa YX-361TR MULTIMETER) 2024, พฤศจิกายน
Anonim
เครื่องวัด VU แบบอะนาล็อกที่เปิดใช้งาน Bluetooth
เครื่องวัด VU แบบอะนาล็อกที่เปิดใช้งาน Bluetooth

นี่เป็นโครงการของฉันสำหรับชั้นเรียนในมหาวิทยาลัยแห่งหนึ่งของฉันที่ชื่อ SMP ในขณะที่เราใช้บอร์ดพัฒนา STM32F103RB ฉันจึงใช้โปรเจ็กต์นี้โดยเริ่มจากมิเตอร์ VU แบบธรรมดา จากนั้นฉันได้เพิ่มคุณสมบัติพิเศษบางอย่าง เช่น การรองรับ Bluetooth เพื่อถ่ายทอดค่าจาก ADC ไปยังแอพ Android เพื่อสร้างแผนภูมิ dB อย่างง่าย

ขั้นตอนที่ 1: ส่วนประกอบที่ใช้

  • บอร์ดพัฒนา STM32F103RB
  • HC-05 zs040 โมดูลบลูทูธ
  • แผงมิเตอร์ VU แบบอะนาล็อก (ลิงก์)
  • ไมโครโฟนอิเล็กเตรต
  • LM324N ควอดออปแอมป์
  • ทรานซิสเตอร์ TIP120 จำนวน 2 ตัว
  • 3 1N4148 ไดโอด
  • ตัวเก็บประจุและตัวต้านทานต่างๆ

แม้ว่าคุณจะสามารถขับวงจรนี้ออกจากราง 5V ของบอร์ดได้ แต่ฉันก็ยังใช้แหล่งจ่ายไฟ 5V ภายนอกด้วย

ขั้นตอนที่ 2: ผู้ติดตามซองจดหมาย

ผู้ติดตามซองจดหมาย
ผู้ติดตามซองจดหมาย
ผู้ติดตามซองจดหมาย
ผู้ติดตามซองจดหมาย

ส่วนหลักของการออกแบบนี้คือตัวติดตามซองจดหมายซึ่งรับสัญญาณจากไมโครโฟนอิเล็กเตรตและส่งสัญญาณออกตามสัดส่วนของแรงดันไฟฟ้ากับแอมพลิจูดสัญญาณของไมโครโฟน

สัญญาณดิบจากไมโครโฟนจะถูกส่งผ่านเครื่องขยายเสียงด้วยอัตราขยาย 150 ก่อน

จากนั้นสัญญาณจะถูกส่งผ่านไปยังตัวตามเอนเวโลปจริง ซึ่งควรส่งสัญญาณออกเฉพาะส่วนสัญญาณบวกเท่านั้น

ส่วนสุดท้ายกำลังลบแรงดันออฟเซ็ต 1.65V จากเอาต์พุตของตัวติดตามซองจดหมายเพื่อให้สัญญาณ 0 V สำหรับไม่มีเสียง 1.65 V สำหรับเสียงกลางและ 3.3 V สำหรับเสียงดังที่ควรเข้ากันได้กับในตัว ADC ของคณะกรรมการ

ผู้ติดตามซองจดหมายนี้ใช้งานจากคำตอบ StackExchange ที่ยอดเยี่ยมนี้

ขั้นตอนที่ 3: PWM สำหรับ Analog Meter

เพื่อให้ได้เข็มของมาตรวัด ฉันได้กำหนดค่าตัวจับเวลา TIM4 ของบอร์ดไมโครคอนโทรลเลอร์ด้วยความถี่ประมาณ 500 Hz

โดยการลองใช้รอบการทำงานที่แตกต่างกันอย่างต่อเนื่อง ฉันได้ตัดสินด้วยค่าบางค่าที่เพียงพอที่จะทำให้เข็มเปลี่ยนจาก 0 ถึง 100

ฉันจะให้รายละเอียดกระบวนการแสดงค่าที่แน่นอนในขั้นตอนต่อไปโดยใช้คณิตศาสตร์

ขั้นตอนที่ 4: การปรับเทียบไมโครโฟน

การสอบเทียบไมโครโฟน
การสอบเทียบไมโครโฟน
การสอบเทียบไมโครโฟน
การสอบเทียบไมโครโฟน

เมื่อทำผู้ติดตามซองจดหมายเสร็จแล้ว ฉันก็เขียนโค้ดง่ายๆ เพื่อใช้ ADC และตรวจสอบว่าค่าที่อ่านได้เปลี่ยนแปลงตามความดังภายในห้องจริงๆ

ในการ "แปล" ค่านี้เป็นการอ่าน dB จริง ฉันได้ใช้เครื่องกำเนิดเสียงออนไลน์ที่มีความถี่ 550 Hz และ Android ของฉันเพื่อให้อ่านค่าอ้างอิง

ฉันได้พล็อตค่าเหล่านั้นและใช้เครื่องมือ Curve Fit ของ MatLAB เพื่อรับฟังก์ชันที่จับคู่การอ่าน ADC กับการประมาณค่าจริงของระดับ dB (หรืออย่างน้อยก็ใกล้เคียงกับการอ่านในโทรศัพท์ของฉัน)

เราจะเห็นว่าสิ่งนี้เป็นไปตามมาตราส่วนลอการิทึมของไมโครโฟน

ฉันยังทำสิ่งเดียวกันเพื่อจับคู่ตำแหน่งเข็มกับค่า PWM ฉันรวบรวมค่าเหล่านั้นโดยเพิ่มค่า PWM ขึ้น 10 อย่างต่อเนื่องจนกว่าความต้องการจะอ่านในระดับของมัน

เมื่อรวม 2 ฟังก์ชันนี้เข้าด้วยกัน ฉันก็มีวิธีง่ายๆ ในการแสดงค่าที่อ่านได้จาก ADC เป็นค่าจริงบนตัวระบุมาตรวัด

ขั้นตอนที่ 5: แอพ Android

แอพใช้ไลบรารีสุดเจ๋งนี้เพื่อสื่อสารผ่านบลูทู ธ ซีเรียลเพื่อแลกเปลี่ยนข้อมูลไบต์

ข้อแม้หลักของระบบนี้คือความยาวคำสูงสุดที่ส่งผ่าน Bluetooth คือ 8 บิต และค่า ADC จะแสดงเป็น 12 บิต เพื่อแก้ปัญหานี้ ฉันแยกค่า ADC หนึ่งค่าออกเป็นค่า 6 บิตแยกกัน 2 ค่า (MSB และ LSB) โดยเหลืออีก 2 บิตที่เหลือใช้เพื่อระบุประเภทข้อความ (MSB, LSB, CHK)

ดังนั้น สำหรับค่า ADC เดียวที่เราต้องการออกอากาศ เราแบ่งค่าจริงออกเป็น 2 ข้อความ เพื่อตรวจสอบความสมบูรณ์ของข้อความเหล่านั้น ฉันได้ส่งข้อความที่สามพร้อมกับ XOR ของ 2 ข้อความแรก

หลังจากตรวจสอบความสมบูรณ์ของค่าแล้ว เราสามารถใช้ฟังก์ชันเดียวกันเพื่อรับระดับ dB และลงจุดบนแผนภูมิสดของเราได้

ขั้นตอนที่ 6: สรุป

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

ซอร์สโค้ดสำหรับโครงการนี้สามารถพบได้ที่นี่:

  • แอพคู่หู Android - repo
  • รหัสไมโครคอนโทรลเลอร์ - repo

อย่าลังเลที่จะมีส่วนร่วมหากคุณพบว่าสิ่งนี้มีประโยชน์ในทางใดทางหนึ่ง

แนะนำ: