เกี่ยวกับ
ในโดเมนของการปรับสภาพสัญญาณ (signal conditioning) บล็อกฟังก์ชันที่สำคัญคือ VGA หรือ Variable Gain Amplifier ซึ่งใช้ในอุปกรณ์วัดผล เช่น ออสซิลโลสโคป (oscilloscope), สเปกตรัมแอนะไลเซอร์ (spectral analyzer), เน็ตเวิร์กแอนะไลเซอร์ (network analyzer) และอื่นๆ
VGA แบบง่ายๆ ประกอบด้วยตัวต้านทานหลายตัวที่มีค่าต่างกัน, ออปแอมป์ (operational amplifier) และส่วนประกอบที่สลับระหว่างตัวต้านทานเหล่านี้ อาจเป็นสวิตช์โซลินอยด์ (solenoid switch) หรือ IC สวิตช์อิเล็กทรอนิกส์ ในกรณีนี้ SN74HC4066 เป็นอุปกรณ์ที่เหมาะสม มันมี 4 สวิตช์ที่ควบคุมแยกกันได้ ซึ่งเป็นคุณสมบัติที่ดีสำหรับการใช้งานร่วมกับบอร์ด Arduino
ดังนั้น การสร้างวงจรแบ่งแรงดัน (voltage divider) ขนาดใหญ่และเลือกจุดเชื่อมต่อ (node) ระหว่างนั้น เราสามารถปรับสมการอัตราขยาย (gain equation) ได้
ค่าสัมประสิทธิ์อัตราขยาย
RF ย่อมาจาก resistor feedback หาก S1 ปิด และส่วนที่เหลือเปิดอยู่ตามหลักการของ OP ค่าสัมประสิทธิ์อัตราขยายในการทำงานจะเป็น:
G1 = 1 + RF/(R1+R2+R3+R4)
สำหรับ S2 ปิด และส่วนที่เหลือเปิดอยู่:
G2 = 1 +(RF+R1)/(R2+R3+R4)
และอื่นๆ:
G3 = 1 +(RF+R1+R2)/(R3+R4)
G4 = 1 +(RF+R1+R2+R3)/(R4)
ดังนั้น เราสามารถได้ค่าสัมประสิทธิ์อัตราขยาย 4 ค่า แต่คุณอาจสงสัยว่าเราสามารถสร้างการรวมกันระหว่างอัตราขยายเพื่อให้ได้สมการอื่นๆ ได้หรือไม่ ใช่ เราทำได้ และมีข้อมูลโดยละเอียดเพิ่มเติม ที่นี่
ดังนั้น ด้วยแนวคิดนี้ เราสามารถเชื่อมต่อระหว่างบอร์ด Arduino, ตัวต้านทาน, IC switch และ OP AMP ได้เหมือนในแผนภาพด้านล่าง Pins 2/3/4/5 เชื่อมต่อกับ Arduino digital pin 2/3/4/5
โค้ด Arduino ง่ายมาก เพราะประกอบด้วยคำสั่ง digitalWrite และการสื่อสารอนุกรม (serial communication) เพื่อปรับอัตราขยายจาก serial monitor
รายละเอียดทางเทคนิคเพิ่มเติม
การปรับสภาพสัญญาณอนาล็อก
โปรเจกต์นี้นำเสนอวงจร Variable Gain Amplifier (VGA) ระดับมืออาชีพ ซึ่งจำเป็นสำหรับการปรับสัญญาณเซ็นเซอร์ที่อ่อน หรือสัญญาณเสียงที่เข้ามาให้เป็นปกติ
- การควบคุมด้วย Digital Potentiometer: Arduino เชื่อมต่อกับ MCP4131 หรือ AD5241 digital pot ผ่านบัส SPI หรือ I2C โดยการเปลี่ยนค่าความต้านทานของ pot ในวงจร feedback ของ Op-Amp (เช่น LM358) ทำให้ Arduino สามารถตั้งค่าอัตราขยายได้อย่างแม่นยำตั้งแต่ 1x ถึง 100x
- การปรับช่วงไดนามิก: มีโหมด "Auto-Ranging" ด้วยซอฟต์แวร์ หากสัญญาณเอาต์พุตต่ำเกินไป Arduino จะเพิ่มอัตราขยายโดยอัตโนมัติจนกว่าสัญญาณจะไปถึงช่วง ADC ที่เหมาะสม
ความแม่นยำ
- การปรับ DC Offset Nulling: เฟิร์มแวร์มีรูทีนการสอบเทียบ (calibration routine) เพื่อกำจัด DC offset ภายใน ทำให้มั่นใจว่ามีเพียงสัญญาณ AC เท่านั้นที่ถูกขยายเพื่อเสียงที่สะอาดขึ้น หรือการอ่านค่าเซ็นเซอร์ที่แม่นยำยิ่งขึ้น