- พื้นฐานของ Op-Amp
- แอมพลิฟายเออร์ที่ตั้งโปรแกรมได้ทำงาน
- ส่วนประกอบที่จำเป็น
- แผนภาพ
- รหัส Arduino สำหรับ PGA
- การคำนวณสำหรับ Programmable Gain Amplifier
- การทดสอบวงจรขยายสัญญาณที่ตั้งโปรแกรมได้
- ข้อดีข้อเสียของแอมพลิฟายเออร์ Gain ที่ตั้งโปรแกรมได้
- การปรับปรุงเพิ่มเติม
ในอุตสาหกรรมการวัดบล็อกการทำงานที่สำคัญมากคือการตั้งโปรแกรมได้กำไร Amplifier (พีจีเอ) หากคุณเป็นผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์หรือนักศึกษาวิทยาลัยคุณอาจเคยเห็นมัลติมิเตอร์หรือออสซิลโลสโคปที่วัดแรงดันไฟฟ้าขนาดเล็กมากอย่างมีค่าเนื่องจากวงจรมี PGA ในตัวควบคู่ไปกับ ADC ที่ทรงพลังซึ่งช่วยในกระบวนการวัดที่แม่นยำ
ปัจจุบันแอมพลิฟายเออร์ PGA ที่อยู่นอกชั้นวางมีแอมพลิฟายเออร์ที่ใช้ op-amp ซึ่งเป็นแอมพลิฟายเออร์ที่ไม่กลับด้านพร้อมปัจจัยการเพิ่มที่ผู้ใช้ตั้งโปรแกรมได้ อุปกรณ์ประเภทนี้มีอิมพีแดนซ์อินพุตสูงมากแบนด์วิดท์กว้างและการอ้างอิงแรงดันไฟฟ้าอินพุตที่เลือกได้ในตัว IC แต่คุณสมบัติทั้งหมดนี้มาพร้อมกับค่าใช้จ่ายและสำหรับฉันมันไม่คุ้มที่จะใส่ชิปราคาแพงสำหรับแอปพลิเคชันทั่วไป
ดังนั้นเพื่อเอาชนะสถานการณ์เหล่านี้ฉันได้จัดเตรียมข้อตกลงซึ่งประกอบด้วย Op-amp, MOSFET และ Arduino ซึ่งฉันสามารถเปลี่ยนอัตราขยายของ op-amp โดยทางโปรแกรมได้ ดังนั้นในบทช่วยสอนนี้ฉันจะแสดงวิธีสร้าง Programmable Gain Amplifierของคุณเองด้วย LM358 op-amp และ MOSFETSและฉันจะพูดถึงข้อดีข้อเสียของวงจรควบคู่ไปกับการทดสอบ
พื้นฐานของ Op-Amp
เพื่อให้เข้าใจถึงการทำงานของวงจรนี้จำเป็นอย่างยิ่งที่จะต้องทราบว่าเครื่องขยายเสียงทำงานอย่างไร เรียนรู้เพิ่มเติมเกี่ยวกับ Op-amp โดยทำตามวงจรทดสอบ op-amp นี้
ในรูปด้านบนคุณจะเห็นเครื่องขยายเสียงที่ใช้งานได้ งานพื้นฐานของแอมพลิฟายเออร์คือการขยายสัญญาณอินพุตควบคู่ไปกับการขยายแอมป์ยังสามารถดำเนินการต่างๆเช่น sum, differentiate, integrate และอื่น ๆ เรียนรู้เพิ่มเติมเกี่ยวกับ summing amplifier และดิฟเฟอเรนเชียลแอมป์
Op-amp มีเพียงสามขั้ว เทอร์มินัลที่มีเครื่องหมาย (+) เรียกว่าอินพุตที่ไม่กลับด้านและเทอร์มินัลที่มีเครื่องหมาย (-) เรียกว่าอินพุทอินพุท นอกจากขั้วทั้งสองนี้แล้วขั้วที่สามคือขั้วเอาท์พุท
op-amp ทำตามกฎสองข้อเท่านั้น
- ไม่มีกระแสไหลเข้าหรือออกจากอินพุตของ op-amp
- ออปแอมป์พยายามรักษาอินพุตไว้ที่ระดับแรงดันไฟฟ้าเดียวกัน
ดังนั้นเมื่อมีการล้างกฎทั้งสองนี้เราสามารถวิเคราะห์วงจรด้านล่างได้ นอกจากนี้เรียนรู้เพิ่มเติมเกี่ยวกับ Op-amp โดยดูวงจรที่ใช้ Op-amp ต่างๆ
แอมพลิฟายเออร์ที่ตั้งโปรแกรมได้ทำงาน
รูปด้านบนให้แนวคิดพื้นฐานเกี่ยวกับการจัดเรียงวงจรของเครื่องขยายเสียง PGA ของ crud ของฉัน ในวงจรนี้op-amp ได้รับการกำหนดค่าให้เป็นแอมพลิฟายเออร์ที่ไม่กลับด้านและอย่างที่เราทุกคนทราบด้วยการจัดเรียงวงจรแบบไม่กลับด้านเราสามารถเปลี่ยนอัตราขยายของ op-amp ได้โดยการเปลี่ยนตัวต้านทานป้อนกลับหรือตัวต้านทานอินพุต ดังที่คุณเห็นจากการจัดเรียงวงจรด้านบนฉันแค่ต้องเปลี่ยน MOSFET ทีละครั้งเพื่อเปลี่ยนอัตราขยายของ op-amp
ในส่วนการทดสอบฉันทำเพียงแค่เปลี่ยน MOSFET ทีละตัวและเปรียบเทียบค่าที่วัดได้กับค่าที่ใช้งานได้จริงและคุณสามารถสังเกตผลลัพธ์ได้ในส่วน "การทดสอบวงจร" ด้านล่าง
ส่วนประกอบที่จำเป็น
- Arduino นาโน - 1
- LM358 IC - 1
- ตัวควบคุม LM7805 - 1
- BC548 ทรานซิสเตอร์ NPN ทั่วไป - 2
- BS170 MOSFET N-channel ทั่วไป - 2
- ตัวต้านทาน 200K - 1
- ตัวต้านทาน 50K - 2
- ตัวต้านทาน 24K - 2
- ตัวต้านทาน 6.8K - 1
- ตัวต้านทาน 1K - 4
- ตัวต้านทาน 4.7K - 1
- 220R, ตัวต้านทาน 1% - 1
- สวิตช์สัมผัสทั่วไป - 1
- ไฟ LED สีเหลืองอำพัน 3 มม. - 2
- Bread Board ทั่วไป - 1
- สายจัมเปอร์ทั่วไป - 10
- แหล่งจ่ายไฟ± 12V - 1
แผนภาพ
สำหรับการสาธิตของ Programmable Gain Amplifier วงจรจะถูกสร้างขึ้นบนเขียงหั่นขนมแบบไม่บัดกรีด้วยความช่วยเหลือของแผนผัง เพื่อลดการเหนี่ยวนำของปรสิตภายในและความจุของเขียงหั่นขนมส่วนประกอบทั้งหมดจึงถูกวางไว้ใกล้ที่สุด
และหากคุณสงสัยว่าเหตุใดจึงมีกลุ่มสายไฟในเขียงหั่นขนมของฉัน? ให้ฉันบอกคุณว่าการเชื่อมต่อกราวด์ที่ดีเนื่องจากการเชื่อมต่อกราวด์ภายในใน breadboard แย่มาก
ที่นี่ op-amp ในวงจรได้รับการกำหนดค่าให้เป็นแอมพลิฟายเออร์ที่ไม่กลับด้านและแรงดันไฟฟ้าขาเข้าจากตัวควบคุมแรงดันไฟฟ้า 7805 คือ 4.99V
ค่าที่วัดได้สำหรับตัวต้านทาน R6 คือ 6.75K และ R7 คือ 220.8R ตัวต้านทานทั้งสองนี้สร้างตัวแบ่งแรงดันไฟฟ้าซึ่งใช้ในการสร้างแรงดันทดสอบอินพุตสำหรับ op-amp ตัวต้านทาน R8 และ R9ใช้เพื่อ จำกัด กระแสฐานอินพุตของทรานซิสเตอร์ T3 และ T4 ต้านทาน R10 และ R11ที่ใช้ในการ จำกัด ความเร็วในการเปลี่ยนของ MOSFETs T1 และ T2 มิฉะนั้นก็อาจทำให้เกิดความผันผวนในวงจร
ในบล็อกนี้ฉันต้องการแสดงเหตุผลในการใช้ MOSFET แทน BJT ดังนั้นการจัดเรียงวงจร
รหัส Arduino สำหรับ PGA
ที่นี่ Arduino Nano ใช้เพื่อควบคุมฐานของทรานซิสเตอร์และประตูของ MOSFET และใช้มัลติมิเตอร์เพื่อแสดงระดับแรงดันไฟฟ้าเนื่องจาก ADC ในตัวของ Arduino ทำงานได้แย่มากเมื่อต้องวัดค่าต่ำ ระดับแรงดันไฟฟ้า
รหัส Arduino ที่สมบูรณ์แบบสำหรับโครงการนี้จะได้รับด้านล่าง เนื่องจากนี่เป็นรหัส Arduino ที่ง่ายมากเราจึงไม่จำเป็นต้องรวมไลบรารีใด ๆ แต่เราจำเป็นต้องกำหนดค่าคงที่และพินอินพุตตามที่แสดงในโค้ด
การ ตั้งค่าโมฆะ () เป็นบล็อกการทำงานหลักที่ดำเนินการอ่านและเขียนสำหรับอินพุตและเอาต์พุตทั้งหมดตามข้อกำหนด
#define BS170_WITH_50K_PIN 9 #define BS170_WITH_24K_PIN 8 #define BC548_WITH_24K_PIN 7 #define BC548_WITH_50K_PIN 6 #define BUTTON_PIN 5 #define LED_PIN1 2 #define 3 LED_Fine intENCE int debounce_counter = 0; การตั้งค่าเป็นโมฆะ () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, เอาท์พุท); pinMode (BC548_WITH_24K_PIN, เอาท์พุท); pinMode (BC548_WITH_50K_PIN, เอาท์พุท); pinMode (LED_PIN1, เอาท์พุท); pinMode (LED_PIN2, เอาท์พุท); pinMode (BUTTON_PIN, INPUT); } void loop () {bool val = digitalRead (BUTTON_PIN); // อ่านค่าอินพุตถ้า (val == LOW) {debounce_counter ++; ถ้า (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } ถ้า (button_is_pressed == 0) {digitalWrite (BS170_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_24K_PIN, LOW);digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, LOW); } ถ้า (button_is_pressed == 2) {digitalWrite (BS170_WITH_24K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, สูง); } ถ้า (button_is_pressed == 3) {digitalWrite (BC548_WITH_24K_PIN, HIGH); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, สูง); digitalWrite (LED_PIN2, สูง); } ถ้า (button_is_pressed == 1) {digitalWrite (BC548_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (LED_PIN1, สูง);digitalWrite (LED_PIN2, LOW); } ถ้า (button_is_pressed> = 4) {button_is_pressed = 0; }}}
การคำนวณสำหรับ Programmable Gain Amplifier
ค่าที่วัดได้สำหรับวงจรขยาย PGA แสดงไว้ด้านล่าง
Vin = 4.99V R7 = 220.8 Ω R6 = 6.82 KΩ R5 = 199.5K R4 = 50.45K R3 = 23.99K R2 = 23.98K R1 = 50.5K
บันทึก! ค่าที่วัดได้ของตัวต้านทานจะแสดงขึ้นเนื่องจากด้วยค่าตัวต้านทานที่วัดได้เราสามารถเปรียบเทียบค่าทางทฤษฎีและค่าทางปฏิบัติได้อย่างใกล้ชิด
ตอนนี้การคำนวณจากเครื่องคำนวณตัวแบ่งแรงดันแสดงอยู่ด้านล่าง
เอาต์พุตของตัวแบ่งแรงดันคือ0.1564V
การคำนวณกำไรของแอมพลิฟายเออร์ที่ไม่กลับด้านสำหรับตัวต้านทาน 4 ตัว
Vout เมื่อR1เป็นตัวต้านทานที่เลือก
Vout = (1+ (199.5 / 50.5)) * 0.1564 = 0.77425V
Vout เมื่อR2เป็นตัวต้านทานที่เลือก
Vout = (1+ (199.5 / 23.98)) * 0.1564 = 1.45755V
Vout เมื่อR3เป็นตัวต้านทานที่เลือก
Vout = (1+ (199.5 / 23.99)) * 0.1564 = 1.45701V
Vout เมื่อR4เป็นตัวต้านทานที่เลือก
Vout = (1+ (199.5 / 50.45)) * 0.1564 = 0.77486V
ฉันทำทุกอย่างเพื่อเปรียบเทียบค่าทางทฤษฎีและทางปฏิบัติให้ใกล้เคียงที่สุด
เมื่อคำนวณเสร็จแล้วเราสามารถไปยังส่วนการทดสอบได้
การทดสอบวงจรขยายสัญญาณที่ตั้งโปรแกรมได้
ภาพด้านบนแสดงแรงดันไฟฟ้าขาออกเมื่อเปิดMOSFET T1ดังนั้นกระแสจึงไหลผ่านตัวต้านทาน R1
ภาพด้านบนแสดงแรงดันเอาต์พุตเมื่อทรานซิสเตอร์ T4เปิดอยู่ดังนั้นกระแสจึงไหลผ่านตัวต้านทาน R4
ภาพด้านบนแสดงแรงดันไฟฟ้าขาออกเมื่อMOSFET T2 เปิดอยู่ดังนั้นกระแสจึงไหลผ่านตัวต้านทาน R2
ภาพด้านบนแสดงแรงดันขาออกเมื่อทรานซิสเตอร์ T3เปิดอยู่ดังนั้นกระแสจึงไหลผ่านตัวต้านทาน R3
ในขณะที่คุณสามารถดูจากวงจรที่T1, T2 เป็น MOSFETs และ T3, T4 มีทรานซิสเตอร์ ดังนั้นเมื่อใช้ MOSFET ข้อผิดพลาดจะอยู่ในช่วง 1 ถึง 5 mV แต่เมื่อใช้ทรานซิสเตอร์เป็นสวิตช์เราจะได้รับข้อผิดพลาดในช่วง 10 ถึง 50 mV
จากผลลัพธ์ข้างต้นเป็นที่ชัดเจนว่า MOSFET เป็นโซลูชัน goto สำหรับแอปพลิเคชันประเภทนี้และข้อผิดพลาดในทางทฤษฎีและทางปฏิบัติอาจเกิดจากข้อผิดพลาดออฟเซ็ตของ op-amp
บันทึก! โปรดทราบว่าฉันได้เพิ่ม LED สองดวงเพื่อประโยชน์ในการทดสอบและคุณไม่พบในแผนผังจริงมันจะแสดงรหัสไบนารีเพื่อแสดงว่าพินใดทำงานอยู่
ข้อดีข้อเสียของแอมพลิฟายเออร์ Gain ที่ตั้งโปรแกรมได้
เนื่องจากวงจรนี้มีราคาถูกง่ายและเรียบง่ายจึงสามารถนำไปใช้งานได้หลากหลาย
ที่นี่ MOSFET ใช้เป็นสวิตช์เพื่อส่งกระแสทั้งหมดผ่านตัวต้านทานไปยังกราวด์นั่นคือสาเหตุที่ผลกระทบของอุณหภูมิไม่แน่นอนและด้วยเครื่องมือและอุปกรณ์ทดสอบที่ จำกัด ของฉันฉันไม่สามารถแสดงให้คุณเห็นผลของอุณหภูมิที่แตกต่างกัน วงจร
วัตถุประสงค์ของการใช้ BJT ควบคู่ไปกับ MOSFET เป็นเพราะฉันต้องการแสดงให้คุณเห็นว่า BJT นั้นน่าสงสารเพียงใดสำหรับแอปพลิเคชันประเภทนี้
ค่าของตัวต้านทานแบบป้อนกลับและตัวต้านทานอินพุตต้องอยู่ในช่วงKΩนั่นเป็นเพราะด้วยค่าตัวต้านทานที่ต่ำกว่ากระแสไฟฟ้าจะไหลผ่าน MOSFET มากขึ้นดังนั้นแรงดันไฟฟ้าจะลดลงทั่ว MOSFET ทำให้เกิดผลลัพธ์ที่ไม่สามารถคาดเดาได้
การปรับปรุงเพิ่มเติม
วงจรสามารถแก้ไขเพิ่มเติมเพื่อปรับปรุงประสิทธิภาพได้เช่นเราสามารถเพิ่มฟิลเตอร์เพื่อปฏิเสธเสียงความถี่สูง
เนื่องจากใช้ LM358 jelly bean op-amp ในการทดสอบนี้ข้อผิดพลาดในการชดเชยของ op-amp จึงมีบทบาทสำคัญที่แรงดันเอาต์พุต ดังนั้นจึงสามารถปรับปรุงเพิ่มเติมได้โดยใช้เครื่องขยายเสียงแทน LM358
วงจรนี้ทำขึ้นเพื่อการสาธิตเท่านั้น หากคุณกำลังคิดที่จะใช้วงจรนี้ในการใช้งานจริงคุณต้องใช้ op-amp ประเภทสับและตัวต้านทานความแม่นยำสูง 0.1 โอห์มเพื่อให้ได้เสถียรภาพที่แน่นอน
ฉันหวังว่าคุณจะชอบบทความนี้และเรียนรู้สิ่งใหม่ ๆ จากบทความนี้ หากคุณมีข้อสงสัยคุณสามารถถามได้ในความคิดเห็นด้านล่างหรือสามารถใช้ฟอรัมของเราสำหรับการอภิปรายโดยละเอียด