จะอ่านแรงดันไฟฟ้าสูงบนไมโครคอนโทรลเลอร์ได้อย่างไร


17

ฉันต้องการอ่านแรงดันไฟฟ้าสูงเช่น ~ 50V โดยใช้ไมโครคอนโทรลเลอร์ ฉันวางแผนที่จะใส่สิ่งนี้เป็นอินพุตในบรรทัด A / D ของไมโครคอนโทรลเลอร์ แต่แน่นอนคุณไม่ควรมีแรงดันไฟฟ้าที่สูงในอินพุตของไมโครคอนโทรลเลอร์หรือมันจะทอด

ฉันจะอ่านแรงดันไฟฟ้าสูงได้อย่างไร สิ่งสำคัญคือฉันต้องลดแรงดันไฟฟ้าลงก่อนอ่าน ฉันต้องพิจารณาอะไรบ้างเมื่อลดแรงดันไฟฟ้าลง

ขอบคุณล่วงหน้า!

แก้ไข: ฉันสังเกตเห็นในแผ่นข้อมูล PIC18 ที่ระบุว่า "ความต้านทานสูงสุดที่แนะนำสำหรับแหล่งสัญญาณอะนาล็อกคือ 2.5 kOhms" สิ่งนี้มีผลต่อวิธีที่ฉันลดระดับแรงดันไฟฟ้าไม่ว่าจะเป็นกับตัวต้านทานแบบแบ่ง ฯลฯ


1
คุณหมายถึงกับไมโครคอนโทรลเลอร์หรือไม่? หมายเหตุอิมพิแดนซ์เกี่ยวกับแหล่งสัญญาณอะนาล็อกอาจหมายความว่าหากแหล่งกำเนิดแสงสูงกว่า 2.5K อินพุตใน PIC จะเริ่มโหลดลง โดยปกติคุณต้องการให้อิมพีแดนซ์ต้นทางมีขนาดเล็กกว่าโหลดอิมพีแดนซ์อย่างน้อยสิบเท่าเพื่อไม่ให้อิมพีแดนซ์โหลดถูกรบกวน นี่อาจเป็นวิธีวงเวียนในการบอกว่าอินพุตให้ความต้านทาน 25K ดังนั้นเราจะสร้างตัวแบ่งแรงดันไฟฟ้าประมาณ 2K "สูง" นี่หมายความว่า 25 mA จะไหล หากไม่เป็นที่ยอมรับคุณสามารถใช้ตัวต้านทานแบบแบ่งได้มากขึ้นและบัฟเฟอร์ High-Z
Kaz

1
เมื่อรวมคำตอบข้างล่างนี้ฉันได้ใช้ตัวแบ่งความต้านทานเพื่อลดแรงดันและใส่เอาต์พุตของตัวต้านทานความต้านทานนั้นผ่านตัวติดตามแรงดันไฟฟ้า op-amp op-amp นี้ทำหน้าที่เป็นบัฟเฟอร์อิมพิแดนซ์เอาต์พุตต่ำ ด้วยวิธีนี้ฉันสามารถใช้ตัวต้านทานที่มีมูลค่าสูงเพื่อ จำกัด การสูญเสียพลังงานในตัวต้านทานเหล่านั้น
แจ็ค

คำตอบ:


24

ตัวแบ่งแรงดันไฟฟ้าแบบทานง่าย ๆจะบรรลุสิ่งที่คุณต้องการ

Voltage Divider

สูตรการคำนวณแรงดันขาออกคือ:

Formula

ดังนั้นหากเราสมมติว่าแรงดันไฟฟ้าขาเข้าของคุณอยู่ในช่วง 0-50V เราต้องหารด้วย 10 เพื่อให้ได้ 0-5V หากเราสมมติว่าเราต้องการโหลดแรงดันไฟฟ้าด้วย100kΩการคำนวณจะเป็นดังนี้:

Vout / Vin = R2 / 100kΩ

0.1 = R2 / 100kΩ -> R2 = 10kΩ

R1 = 100kΩ - R2 = 90kΩ

ดังนั้น R1 = 90kΩและ R2 = 10kΩ

สำหรับ ADC ที่ต้องการอิมพิแดนซ์แหล่งกำเนิดสูงสุดคุณต้องตรวจสอบให้แน่ใจว่าอิมพิแดนซ์ตัวหารแรงดันไฟฟ้าต่ำกว่าระดับนี้ ความต้านทานที่ตัวหารสามารถคำนวณได้เป็น R1 || R2

สำหรับ <2.5kΩข้างต้นจะไม่เป็นไปตามข้อกำหนดนี้เป็น10kΩ || 90kΩ = 9kΩ
ถ้าเราใช้9kΩและ1kΩแม้ว่าเราจะได้รับ 1 / (1/1000 + 1/9000) = 900Ω

โปรดจำไว้ว่ายิ่งค่าความต้านทานต่ำลงเท่าใดคุณก็ยิ่งต้องมีตัวต้านทานเรตติ้งวัตต์ที่สูงขึ้นเท่านั้น 50V / 1k = 50mA -> 50mA * 45V = 2.25W สำหรับตัวต้านทานสูงสุด (0.25W ที่ด้านล่าง)
ในกรณีเหล่านี้ควรใช้ opamp buffer ระหว่างตัวต้านทานความต้านทานสูงและ ADC หรือใช้ตัวแบ่งขนาด2kΩและ18kΩซึ่งไม่ค่อยมีพลังมากเท่ารุ่น 1k / 9k


3
2.25W เป็นพลังงานจำนวนมากที่ต้องเสียทำการวัดแรงดันไฟฟ้า
Nick Johnson

ใช่ฉันเห็นด้วย - คุณจะใช้บัฟเฟอร์ที่กล่าวถึง (และอธิบายโดยสตีเว่น) ในกรณีส่วนใหญ่
Oli Glaser

50V / 1k อย่างไร? ตัวต้านทานเหล่านั้นไม่อยู่ในอนุกรมหรือไม่
Adithya

คำถามเดียวกันที่นี่ ... วิธี 50v / 1k? 45v นี้มาจากไหนอีก
Prasan Dutt

@OliGlaser ไม่ใช่คำพูดเกี่ยวกับตัวเก็บประจุใช่ไหม อินพุต ADC หากขับด้วยความต้านทานสูงอาจทำให้สัญญาณผิดเพี้ยน จริงๆแล้วมันทำ อย่างน้อยที่สุดก็คือการใช้ตัวเก็บประจุขนาดเล็กควบคู่ไปกับตัวต้านทานที่ต่ำกว่า
Gregory Kornblum

19

ในการเพิ่มคำตอบของ Oli:

ป้อนคำอธิบายรูปภาพที่นี่

ไดโอด Schottky ปกป้องอินพุตของ opamp จากแรงดันไฟฟ้าเกินในกรณีที่แรงดันไฟฟ้าอินพุตจะเกินค่าสูงสุด 50 V ที่ระบุนี่เป็นคำตอบที่ดีกว่าซีเนอร์ 5 V ซึ่งมักจะวางขนานกับตัวต้านทาน 3 kΩ แรงดันไฟฟ้าซีเนอร์ 5 V ต้องการแรงดันไฟฟ้าหลาย mA ถ้ากระแสไฟฟ้าต่ำกว่ามากแรงดันซีเนอร์จะลดลงเช่นกันและไดโอดอาจหนีบอินพุตเช่น 4 V หรือต่ำกว่า

ตัวต้านทาน 27 kΩจะอนุญาตให้ 2 mA ไม่เพียงพอสำหรับซีเนอร์หรือไม่ ฉันทำได้ แต่นั่นไม่ใช่สิ่งที่ซีเนอร์จะได้รับ ส่วนใหญ่ของ 2 mA นั้นจะผ่านตัวต้านทาน 3 kΩเหลือเหลือเพียงสิบถึงร้อยของ zA สำหรับ zener ซึ่งน้อยเกินไป

เลือกไดโอด Schottky ที่มีกระแสไฟรั่วย้อนกลับต่ำเพื่อให้แรงดันไฟฟ้า 5 โวลต์ไม่ส่งผลต่อตัวแบ่งมากเกินไป


ให้อภัยความไร้เดียงสาของฉันที่นี่ แต่ไดโอด Schottky ปกป้อง opamp จากแรงดันไฟฟ้าเกินบนรถไฟ 50V เงื่อนไขนี้จะยกราง 5V หรือไม่ คิดถึงการทำเช่นนี้ แต่กังวลเกี่ยวกับอุปกรณ์อื่น ๆ บนรถไฟ 5V (PIC, Arduino, ฯลฯ )
GreenaGiant

ไม่ใช่ถ้ากระแสมีขนาดเล็ก เห็นได้ชัดว่าถ้าคุณเชื่อมต่อแหล่งความต้านทานต่ำแรงดันไฟฟ้าจะเพิ่มขึ้น แต่ตัวต้านทาน 27k ช่วยให้มั่นใจว่ากระแสมีขนาดเล็ก
มาร์ติ

6

สำหรับการวัดแบบแยกคุณสามารถใช้ตัวแปลงสัญญาณแรงดันไฟฟ้าเช่นLV-25ของ LEM หรือที่คล้ายกัน

แต่วิธีที่ง่ายกว่ามากถ้าคุณไม่ต้องการแยกก็แค่ใช้ตัวแบ่งแรงดัน :

ป้อนคำอธิบายรูปภาพที่นี่


6

เพื่อต่อสู้กับปัญหาความต้านทานแหล่งที่มาของคุณคุณสามารถใช้ตัวแบ่งแรงดันไฟฟ้าก่อนแล้วจึงใช้ opamp มาตรฐาน นั่นควรจะมีอิมพีแดนซ์เอาต์พุตต่ำสำหรับคุณ นี่คือบันทึกย่อของแอปที่ฉันโพสต์เมื่อวานนี้ว่าใช้ opamps เพื่อแปลงระดับแรงดันไฟฟ้าสำหรับ ADC

http://www.ti.com/lit/an/slyt173/slyt173.pdf


3

เงยหน้าขึ้นมองสิ่งที่เรียกว่าแบ่งตัวต้านทาน การใช้ตัวต้านทานสองตัวคุณสามารถคูณแรงดันไฟฟ้าด้วยค่าคงที่ระหว่าง 0 และ 1 ในกรณีของคุณคุณต้องการปรับขนาด 50 V ลงไปจนถึงระดับไมโครคอนโทรลเลอร์ สมมติว่าไมโครกำลังทำงานที่ 5 V ดังนั้นคุณต้องการปรับขนาดอินพุต 0.1 สิ่งนี้สามารถทำได้ด้วยตัวต้านทานสองตัวตัวแรกมีความต้านทาน 9 เท่าของตัวที่สอง สัญญาณจะเข้าสู่สัญญาณแรก ปลายอีกด้านหนึ่งเชื่อมต่อกับตัวต้านทานตัวที่สองและอินพุต Micro A / D และปลายอีกด้านของตัวต้านทานตัวที่สองเชื่อมต่อกับกราวด์ ด้วยอัตราส่วน 9: 1 คุณจะได้รับ. 1 (การลดทอน 10)

คุณอาจต้องการให้ส่วนล่างของทั้งสอง (ตัวต้านทาน 1x) อยู่ที่ประมาณ 10 kΩซึ่งจะทำให้อีก 90 kΩ ฉันอาจใช้ 100 kΩเพื่อให้ระยะขอบและการตรวจจับแบบ overrange


0

ฉันทำสิ่งนี้สำเร็จแล้วโดยใช้ตัวแบ่งแรงดันไฟฟ้าและซีเนอร์ไดโอดรีแอกทีฟกลับระหว่างขาอินพุตและกราวด์ (ในกรณี)


1
ซีเนอร์ไดโอดให้แรงดันเอาต์พุตคงที่และใช้สำหรับการควบคุม คุณใช้สำหรับแรงดันไฟขาเข้าที่แตกต่างกันอย่างไร แรงดันเอาต์พุตของเซ็นเซอร์แตกต่างกันระหว่าง 0-50 โวลต์และอินพุต adc ควรแตกต่างกันไปตามระหว่าง 0-5v การใช้ซีเนอร์จะแก้ไขแรงดันไฟฟ้าขาเข้าของ adc
Prasan Dutt

3
ซีเนอร์คือการปกป้องอินพุต ADC จากแรงดันไฟฟ้าที่สูงกว่า uC ที่สามารถจัดการได้ในกรณีที่เขากล่าว สมมติว่า uC สามารถจัดการ 0V-5V หากคุณวางแผนที่จะวัด 50V คุณใส่ตัวแบ่ง 10: 1 และ 5V Zener ดังนั้นหากอินพุตมีมากกว่า 50V ตัว zener จะยึดกับ 5V
s3c
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.