- วัสดุที่ต้องการ:
- การทำงานของ ACS712 Current Sensor:
- แผนภูมิวงจรรวม:
- จำลองสถานการณ์:
- การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC:
- การทำงาน:
การวัดแรงดันและกระแสจะเป็นประโยชน์ในขณะที่สร้างหรือแก้จุดบกพร่องของระบบไฟฟ้าใด ๆ ในโครงการนี้เรากำลังจะทำให้เราเองแอมมิเตอร์ดิจิตอลโดยใช้ไมโครคอนโทรลเลอร์ PIC16F877A และ ACS712-5A โครงการนี้สามารถวัดทั้งกระแส AC และ DC ที่มีช่วง 0-30A โดยมีความแม่นยำ 0.3A ด้วยการปรับเปลี่ยนโค้ดเล็กน้อยคุณยังสามารถใช้วงจรนี้เพื่อวัดได้ถึง 30A มาเริ่มกันเลย !!!
วัสดุที่ต้องการ:
- PIC16F877A
- 7805 ตัวควบคุมแรงดันไฟฟ้า
- ACS712 เซ็นเซอร์ปัจจุบัน
- จอ LCD 16 * 2
- กล่องรวมสัญญาณและโหลด (สำหรับการทดสอบเท่านั้น)
- การเชื่อมต่อสายไฟ
- คาปาซิเตอร์
- เขียงหั่นขนม.
- แหล่งจ่ายไฟ - 12V
การทำงานของ ACS712 Current Sensor:
ก่อนที่เราจะเริ่มสร้างโครงการเป็นสิ่งสำคัญมากที่เราจะต้องเข้าใจการทำงานของเซ็นเซอร์กระแส ACS712 เนื่องจากเป็นองค์ประกอบหลักของโครงการ การวัดกระแสโดยเฉพาะกระแสไฟฟ้ากระแสสลับมักเป็นงานที่ยากเนื่องจากเสียงรบกวนประกอบกับปัญหาการแยกที่ไม่เหมาะสมเป็นต้น แต่ด้วยความช่วยเหลือของโมดูล ACS712 นี้ซึ่งได้รับการออกแบบโดย Allegro ทำให้ง่ายขึ้นมาก
โมดูลนี้ทำงานบนหลักการของHall-effectซึ่งค้นพบโดย Dr. Edwin Hall ตามหลักการของเขาเมื่อวางตัวนำกระแสไฟฟ้าลงในสนามแม่เหล็กแรงดันไฟฟ้าจะถูกสร้างขึ้นที่ขอบของมันในแนวตั้งฉากกับทิศทางของทั้งกระแสและสนามแม่เหล็ก อย่าให้เราเข้าไปลึกเกินไปในแนวคิดนี้ แต่เพียงแค่ให้เราใช้เซ็นเซอร์ห้องโถงเพื่อวัดสนามแม่เหล็กรอบตัวนำกระแสไฟฟ้า การวัดนี้จะอยู่ในรูปของมิลลิโวลต์ซึ่งเราเรียกว่าฮอลล์ - แรงดันไฟฟ้า แรงดันฮอลล์ที่วัดได้นี้เป็นสัดส่วนกับกระแสที่ไหลผ่านตัวนำ
ข้อได้เปรียบที่สำคัญของการใช้ACS712 Current Sensorคือสามารถวัดได้ทั้งกระแส AC และ DC และยังแยกระหว่าง Load (โหลด AC / DC) และ Measuring Unit (ส่วนไมโครคอนโทรลเลอร์) ดังที่แสดงในภาพเรามีหมุดสามตัวบนโมดูลซึ่ง ได้แก่ Vcc, Vout และ Ground ตามลำดับ
เทอร์มินัลบล็อก 2 พินคือที่ที่ควรส่งสายไฟปัจจุบันผ่าน โมดูลทำงานบน + 5V ดังนั้น Vcc ควรใช้พลังงานจาก 5V และสายดินควรเชื่อมต่อกับกราวด์ของระบบ ขา Vout มีแรงดันไฟฟ้าชดเชย 2500mV ซึ่งหมายความว่าเมื่อไม่มีกระแสไฟฟ้าไหลผ่านสายไฟแรงดันขาออกจะเป็น 2500mV และเมื่อกระแสไฟฟ้าไหลเป็นบวกแรงดันไฟฟ้าจะมากกว่า 2500mV และเมื่อกระแสที่ไหลเป็นลบ แรงดันไฟฟ้าจะน้อยกว่า 2500mV
เราจะใช้โมดูล ADC ของไมโครคอนโทรลเลอร์ PIC เพื่ออ่านแรงดันเอาต์พุต (Vout) ของโมดูลซึ่งจะเป็น 512 (2500mV) เมื่อไม่มีกระแสไฟฟ้าไหลผ่านสายไฟ ค่านี้จะลดลงเมื่อกระแสไหลไปในทิศทางลบและจะเพิ่มขึ้นเมื่อกระแสไหลไปในทิศทางบวก ตารางด้านล่างนี้จะช่วยให้คุณเข้าใจว่าแรงดันไฟฟ้าขาออกและค่า ADC แตกต่างกันอย่างไรตามกระแสที่ไหลผ่านสายไฟ
ค่าเหล่านี้คำนวณจากข้อมูลที่ระบุในแผ่นข้อมูลของ ACS712 คุณยังสามารถคำนวณได้โดยใช้สูตรด้านล่าง:
แรงดันไฟฟ้าของ Vout (mV) = (ค่า ADC / 1023) * 5000 กระแสผ่านสาย (A) = (Vout (mv) -2500) / 185
ตอนนี้เรารู้แล้วว่าเซ็นเซอร์ ACS712 ทำงานอย่างไรและสิ่งที่เราคาดหวังจากเซ็นเซอร์นี้ ให้เราดำเนินการตามแผนภาพวงจร
แผนภูมิวงจรรวม:
แผนภาพวงจรทั้งหมดของโครงการ Digital Ammeter นี้แสดงในภาพด้านล่าง
วงจรมิเตอร์วัดกระแสดิจิตอลที่สมบูรณ์ทำงานที่ + 5V ซึ่งควบคุมโดยตัวควบคุมแรงดันไฟฟ้า 7805 เราใช้จอ LCD 16X2 เพื่อแสดงค่าของกระแสไฟฟ้า ขาออกของปัจจุบันเซนเซอร์ (Vout) เชื่อมต่อกับ 7 THขาของ PIC ซึ่งเป็น AN4 ในการอ่านแรงดันไฟฟ้าแบบอะนาล็อก
เพิ่มเติมการเชื่อมต่อพินสำหรับ PIC แสดงในตารางด้านล่าง
ส. ไม่: |
หมายเลขพิน |
ชื่อพิน |
เชื่อมต่อกับ |
1 |
21 |
RD2 |
RS ของ LCD |
2 |
22 |
RD3 |
E ของ LCD |
3 |
27 |
RD4 |
D4 ของ LCD |
4 |
28 |
RD5 |
D5 ของ LCD |
5 |
29 |
RD6 |
D6 ของ LCD |
6 |
30 |
RD7 |
D7 ของ LCD |
7 |
7 |
AN4 |
Vout ของ Sesnor ปัจจุบัน |
คุณสามารถสร้างวงจรแอมป์มิเตอร์แบบดิจิตอลนี้บนเขียงหั่นขนมหรือใช้บอร์ด perf หากคุณทำตามบทช่วยสอน PIC คุณสามารถนำฮาร์ดแวร์ที่เราใช้ในการเรียนรู้ไมโครคอนโทรลเลอร์ PIC กลับมาใช้ใหม่ได้ ที่นี่เราได้ใช้บอร์ด perfเดียวกันกับ ที่เราสร้างขึ้นสำหรับ LED กะพริบด้วยไมโครคอนโทรลเลอร์ PIC ดังที่แสดงด้านล่าง:
หมายเหตุ: คุณไม่จำเป็นต้องสร้างบอร์ดนี้คุณสามารถทำตามแผนภาพวงจรและสร้างวงจรบนกระดานขนมปังและใช้ชุดรถเทขยะเพื่อถ่ายโอนโปรแกรมของคุณลงในไมโครคอนโทรลเลอร์ PIC
จำลองสถานการณ์:
นี้วงจรเมตรปัจจุบัน ยังสามารถจำลองการใช้ Proteus ก่อนที่คุณจะดำเนินการจริงกับอุปกรณ์ของคุณ กำหนดไฟล์ฐานสิบหกของรหัสที่ให้ไว้ในตอนท้ายของบทช่วยสอนนี้และคลิกที่ปุ่มเล่น คุณควรจะสังเกตเห็นกระแสบนจอ LCD ได้ ฉันใช้หลอดไฟเป็นโหลด AC คุณสามารถเปลี่ยนความต้านทานภายในของหลอดไฟได้โดยคลิกที่หลอดเพื่อเปลี่ยนกระแสที่ไหลผ่าน
ดังที่คุณเห็นในภาพด้านบนแอมป์มิเตอร์จะแสดงกระแสจริงที่ไหลผ่านหลอดไฟซึ่งอยู่ที่ประมาณ 3.52 A และ LCD จะแสดงกระแสไฟฟ้าอยู่ที่ประมาณ 3.6A อย่างไรก็ตามในกรณีการปฏิบัติเราอาจได้รับข้อผิดพลาดถึง 0.2A ค่า ADC และแรงดันไฟฟ้าใน (mV) จะแสดงบนจอ LCD ด้วยเพื่อให้คุณเข้าใจ
การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC:
ดังที่ได้บอกไปก่อนหน้านี้คุณสามารถดูโค้ดทั้งหมดได้ในตอนท้ายของบทความนี้ รหัสนี้อธิบายได้ด้วยตัวเองด้วยบรรทัดความคิดเห็นและเกี่ยวข้องกับแนวคิดของการเชื่อมต่อ LCD กับไมโครคอนโทรลเลอร์ PIC และการใช้โมดูล ADC ในไมโครคอนโทรลเลอร์ PIC ซึ่งเราได้กล่าวถึงไปแล้วในแบบฝึกหัดการเรียนรู้ PIC Microcontrollers ก่อนหน้านี้
ค่าที่อ่านจากเซ็นเซอร์จะไม่แม่นยำเนื่องจากกระแสไฟฟ้าสลับและอาจมีสัญญาณรบกวนด้วย ดังนั้นเราจึงอ่านค่า ADC เป็นเวลา 20 ครั้งและเฉลี่ยเพื่อให้ได้ค่าปัจจุบันที่เหมาะสมดังแสดงในโค้ดด้านล่าง
เราได้ใช้สูตรเดียวกันกับที่อธิบายไว้ข้างต้นเพื่อคำนวณแรงดันและค่าปัจจุบัน
สำหรับ (int i = 0; i <20; i ++) // อ่านค่า 20 ครั้ง {adc = 0; adc = ADC_Read (4); // อ่าน ADC Voltage = adc * 4.8828; // คำนวณแรงดันไฟฟ้า if (แรงดัน> = 2500) // ถ้ากระแสเป็นบวกแอมป์ + = ((แรงดัน -2500) /18.5); อื่นถ้า (แรงดันไฟฟ้า <= 2500) // ถ้ากระแสเป็นลบแอมป์ + = ((2500- แรงดันไฟฟ้า) /18.5); } แอมป์ / = 20; // เฉลี่ยค่าที่อ่าน 20 ครั้ง
เนื่องจากโครงการนี้สามารถอ่านกระแสไฟฟ้ากระแสสลับได้กระแสไฟฟ้าจะเป็นลบและบวกเช่นกัน นั่นคือค่าของแรงดันขาออกจะสูงกว่าและต่ำกว่า 2500mV ดังนั้นดังที่แสดงด้านล่างเราจึงเปลี่ยนสูตรสำหรับกระแสลบและบวกเพื่อไม่ให้เราได้ค่าลบ
ถ้า (แรงดัน> = 2500) // ถ้ากระแสเป็นบวกแอมป์ + = ((แรงดัน -2500) /18.5); อื่นถ้า (แรงดันไฟฟ้า <= 2500) // ถ้ากระแสเป็นลบแอมป์ + = ((2500- แรงดันไฟฟ้า) /18.5);
การใช้เซ็นเซอร์กระแส 30A:
หากคุณต้องการวัดกระแสมากกว่า 5A คุณสามารถซื้อโมดูล ACS712-30Aและเชื่อมต่อในลักษณะเดียวกันและเปลี่ยนบรรทัดด้านล่างของรหัสโดยแทนที่ 18.5 ด้วย 0.66 ดังที่แสดงด้านล่าง:
ถ้า (แรงดัน> = 2500) // ถ้ากระแสเป็นบวกแอมป์ + = ((แรงดัน 2500) /0.66); อื่นถ้า (แรงดันไฟฟ้า <= 2500) // ถ้ากระแสเป็นลบแอมป์ + = ((2500- แรงดันไฟฟ้า) /0.66);
ตรวจสอบแอมป์มิเตอร์ 100mA โดยใช้ AVR Microcontroller หากคุณต้องการวัดกระแสไฟฟ้าต่ำ
การทำงาน:
เมื่อคุณตั้งโปรแกรมไมโครคอนโทรลเลอร์ PIC และเตรียมฮาร์ดแวร์ของคุณให้พร้อมแล้ว เพียงแค่เปิดโหลดและไมโครคอนโทรลเลอร์ PIC ของคุณคุณจะสามารถเห็นกระแสที่ไหลผ่านสายที่แสดงในหน้าจอ LCD ของคุณ
หมายเหตุ: หากคุณใช้โมดูล ASC7125A ตรวจสอบให้แน่ใจว่าโหลดของคุณไม่กินไฟเกิน 5A และใช้สายวัดที่สูงกว่าสำหรับตัวนำที่มีกระแสไฟฟ้า
การทำงานที่สมบูรณ์ของโครงการแอมป์มิเตอร์ที่ใช้ไมโครคอนโทรลเลอร์ PICแสดงไว้ในวิดีโอด้านล่าง หวังว่าคุณจะได้รับโครงการและสนุกกับการทำ หากคุณมีข้อสงสัยใด ๆ คุณสามารถเขียนไว้ในส่วนความคิดเห็นด้านล่างหรือโพสต์ไว้ในฟอรัมของเรา