สารบัญ:

การวัดเซ็นเซอร์ปัจจุบัน ACS724 ด้วย Arduino: 4 ขั้นตอน
การวัดเซ็นเซอร์ปัจจุบัน ACS724 ด้วย Arduino: 4 ขั้นตอน

วีดีโอ: การวัดเซ็นเซอร์ปัจจุบัน ACS724 ด้วย Arduino: 4 ขั้นตอน

วีดีโอ: การวัดเซ็นเซอร์ปัจจุบัน ACS724 ด้วย Arduino: 4 ขั้นตอน
วีดีโอ: EP.19 เซ็นเซอร์วัดกระแสไฟฟ้า CT Sensor | Nursery Arduino 2024, กรกฎาคม
Anonim
Image
Image
ภาพ
ภาพ

ในคำแนะนำนี้ เราจะทดลองโดยเชื่อมต่อเซ็นเซอร์กระแส ACS724 กับ Arduino เพื่อทำการวัดกระแส ในกรณีนี้ เซ็นเซอร์ปัจจุบันคือช่วง +/- 5A ที่ให้เอาต์พุต 400 mv/A

Arduino Uno มี ADC 10 บิต ดังนั้นคำถามที่ดีคือ: ค่าที่อ่านได้ในปัจจุบันแม่นยำแค่ไหนและเสถียรแค่ไหน?

เราจะเริ่มต้นด้วยการเชื่อมต่อเซ็นเซอร์กับโวลต์มิเตอร์และมิเตอร์ปัจจุบัน แล้วอ่านค่าแบบอะนาล็อกเพื่อดูว่าเซ็นเซอร์ทำงานได้ดีเพียงใด จากนั้นเราจะเชื่อมต่อกับพิน Arduino ADC และดูว่ามันทำงานได้ดีเพียงใด

เสบียง

1 - Breadboard2 - อุปกรณ์จ่ายไฟแบบตั้งโต๊ะ2 - DVM's1 - เซ็นเซอร์ ACS724 +/- 5A1 - Arduino Uno1 - LM78053 - 10 โอห์ม, ตัวต้านทาน 10W1 - 1nF cap1 - 10nF cap1 - 0.1uF capJumpers

ขั้นตอนที่ 1:

วงจรทดสอบดังแสดงในแผนภาพ การเชื่อมต่อจากพิน Arduino 5V กับราง LM7805 +5V เป็นทางเลือก คุณอาจได้ผลลัพธ์ที่ดีขึ้นเมื่อใช้จัมเปอร์นี้ แต่ระวังเกี่ยวกับการเดินสายของคุณหากคุณใช้ เนื่องจาก Arduino เชื่อมต่อกับคอมพิวเตอร์ของคุณและแหล่งจ่ายไฟที่สองจะเกิน 5V เมื่อคุณเปิดขึ้นเพื่อเพิ่มกระแสไฟผ่านเซ็นเซอร์

หากคุณเชื่อมต่ออุปกรณ์จ่ายไฟเข้าด้วยกัน แหล่งจ่ายไฟของเซ็นเซอร์และแหล่งจ่ายไฟ Arduino จะมีจุดอ้างอิง +5V ที่เหมือนกันทุกประการ และคุณจะคาดหวังผลลัพธ์ที่สม่ำเสมอมากขึ้น

ฉันทำสิ่งนี้โดยไม่มีการเชื่อมต่อนี้ และฉันเห็นค่าการอ่านค่าปัจจุบันเป็นศูนย์ที่สูงกว่าบนเซ็นเซอร์ปัจจุบัน (2.530 V แทนที่จะเป็น 2.500 V ที่คาดไว้) และต่ำกว่าค่าที่อ่าน ADC ที่จุดปัจจุบันเป็นศูนย์ ฉันได้รับค่า ADC แบบดิจิทัลที่อ่านได้ประมาณ 507 ถึง 508 โดยไม่มีกระแสไหลผ่านเซ็นเซอร์ สำหรับ 2.500V คุณควรเห็นค่า ADC ที่อ่านได้ประมาณ 512 ฉันแก้ไขสิ่งนี้ในซอฟต์แวร์

ขั้นตอนที่ 2: ทดสอบการวัด

การวัดการทดสอบ
การวัดการทดสอบ

การวัดแบบอนาล็อกด้วยโวลต์มิเตอร์และแอมมิเตอร์ระบุว่าเซ็นเซอร์มีความแม่นยำมาก ที่กระแสทดสอบ 0.5A, 1.0A และ 1.5A มันถูกต้องตรงตามมิลลิโวลต์

การวัด ADC ด้วย Arduino นั้นแทบไม่แม่นยำเท่าที่ควร การวัดเหล่านี้ถูกจำกัดด้วยความละเอียด 10 บิตของ Arduino ADC และปัญหาด้านสัญญาณรบกวน (ดูวิดีโอ) เนื่องจากสัญญาณรบกวน การอ่านค่า ADC จึงกระโดดไปรอบ ๆ กรณีที่เลวร้ายที่สุดถึง 10 ขั้นตอนหรือมากกว่านั้นโดยไม่มีกระแสไหลผ่านเซ็นเซอร์ เมื่อพิจารณาว่าแต่ละขั้นตอนแสดงถึงประมาณ 5 mv นี่คือความผันผวนประมาณ 50 mv และด้วยเซ็นเซอร์ 400mv/amp แสดงถึงความผันผวน 50mv/400mv/amp = 125ma! วิธีเดียวที่ฉันจะได้รับการอ่านที่มีความหมายคือการอ่าน 10 ครั้งติดต่อกันแล้วจึงหาค่าเฉลี่ย

ด้วย ADC 10 บิตหรือ 1024 ระดับที่เป็นไปได้และ 5V Vcc เราสามารถแก้ไขได้ประมาณ 5/1023 ~ 5mv ต่อขั้นตอน เซ็นเซอร์ออกทำให้ 400mv/Amp อย่างดีที่สุด เรามีความละเอียด 5mv/400mv/amp ~ 12.5ma

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

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

บทสรุป
บทสรุป

สรุป:

-ACS724 การอ่านแบบอะนาล็อกมีความแม่นยำมาก

-ACS724 ควรทำงานได้ดีกับวงจรแอนะล็อก เช่น การควบคุมกระแสไฟของแหล่งจ่ายไฟด้วยลูปป้อนกลับแบบแอนะล็อก

- มีปัญหาเรื่องสัญญาณรบกวนและความละเอียดเมื่อใช้ ACS724 กับ Arduino 10 บิต ADC

- ดีเพียงพอสำหรับการตรวจสอบกระแสเฉลี่ยสำหรับวงจรกระแสไฟที่สูงขึ้น แต่ไม่ดีพอสำหรับการควบคุมกระแสคงที่

- อาจต้องใช้ชิป ADC ภายนอก 12 บิตขึ้นไปเพื่อผลลัพธ์ที่ดีกว่า

ขั้นตอนที่ 4: รหัส Arduino

นี่คือรหัสที่ฉันใช้เพื่อวัดค่า ADC พิน Arduino A0 และรหัสเพื่อแปลงแรงดันเซ็นเซอร์เป็นกระแสและอ่านค่าเฉลี่ย 10 ค่า รหัสนี้ค่อนข้างอธิบายตนเองได้และแสดงความคิดเห็นสำหรับการแปลงและรหัสเฉลี่ย

แนะนำ: