คำอธิบาย
30 A Current Sensor Module (ACS712-30A) สำหรับ Arduino
โมดูลวัดกระแสไฟฟ้าที่ไหลผ่าน ให้สัญญาณออกมาเป็น Analog ใช้ต่อร่วมกับ Arduino ได้ในช่อง Analog โมดูลนี้ใช้ IC เบอร์ ACS712-05 เป็นเซนเซอร์วัดกระแส
Arduino สอนวิธีใช้งาน ACS712 arduino current sensor เซนเซอร์วัดกระแสไฟฟ้า AC และ DC ACS712 Arduino
เซ็นเซอร์กระแส ACS712 สำหรับ Arduino เซนเซอร์วัดกระแสไฟฟ้า สามารถวัดได้ทั้งกระแสไฟ AC และ DC
ในตัวอย่างนี้เราจะมาเรียนรู้การใช้งาน Arduino กับเซนเซอร์ ACS712 Hall Effect
การวัดกระแส DC ใช้เซนเซอร์ Hall Effect ASC712 เซนเซอร์ ACS712 เป็นวิธีการวัดกระแสที่มีราคาไม่แพง ใช้งานง่ายมาก การวัดอาศัยหลักการวัดความเหนี่ยวนำของแม่เหล็กที่แปรผันกับกระแสไฟฟ้า ให้เอาต์พุตออกมาเป็นแรงดันไฟฟ้า สามารถใช้ขาแบบ Analog ของ Arduino อ่านค่าจากเซนเซอร์ ACS712 เข้ามาได้โดยตรง
แนะนำเซนเซอร์ ACS712 Current Sensor
ACS712 คือเซนเซอร์ที่อาศัยหลักการวัดการเปลี่ยนแปลงของสนามแม่เหล็ก Hall effect สามารถวัดได้ทั้งกระแสตรง DC และกระแสสลับ AC ให้เอาต์พุตออกมาเป็นโวลต์สัมพันกับกระแสที่วัดได้ มีฟังก์ชั่นป้องกันสัญญาณรบกวน , ตอนสนองต่อการวัดได้รวดเร็ว , เอาต์พุตมีความแม่นยำคลาดเคลื่อนประมาณ 1.5% สามารถเขียนโปรแกรมเพื่ออ่านค่าได้ง่าย
การทำงานของเซนเซอร์ ACS712 Current Sensor
เซนเซอร์ ACS712 ประกอบด้วยวงจร Hall Effect เอาต์พุตแบบเชิงเส้น มีวงจรเหนี่ยวนำไฟฟ้าทองแดงตั้งอยู่รอบ ๆ พื้นผิวของตัวชิฟ ACS712 เมื่อกระแส AC หรือ DC ผ่านเส้นทองแดงจะเกิดการสร้างสนามแม่เหล็ก สนามแม่เหล็กไฟฟ้านี้ทำปฏิกิริยากับเซนเซอร์ Hall Effect แปลงแม่เหล็กไฟฟ้านี้ เป็นแรงดันตามสัดส่วนของกระแสไฟฟ้าได้ทั้ง AC หรือ DC ขึ้นอยู่กับชนิดของกระแสไฟฟ้าอินพุต เราสามารถใช้บอร์ด Arduino หรือไมโครคอนโทรเลอร์รุ่นอื่น ๆ วัดค่าแรงดันนี้ได้โดยตรง เพื่อแปลงค่ากลับมาเป็นกระแสไฟฟ้า
รูปขาของ ACS712 Pin Diagram ACS712 Hall Effect เซนเซอร์วัดกระแส
ขาของ ACS712 เซนเซอร์วัดกระแส ดังรูปนี้ ขา 1,2 และ 3,4 ใช้สำหรับวัดกระแส เราสามารถเชื่อมต่อที่ขานี้กับโหลดที่ต้องการวัดได้
ขา 6 กับ 5 ต่อ C สำหรับ filter ป้องกันสัญญาณรบกวน
ขา 5 ไฟกราวน์
ขา 8 ไฟเลี้ยง 5V
ขา 7 เป็นขาเอาต์พุตที่วัดได้ หน่วยเป็นโวลต์
เมื่อนำมาประกันตามวงจร ก็จะได้โมดูล ACS712 ดังนี้
ชนิดของเซนเซอร์วัดกระแส ACS712 Current Sensor
ACS712 Hall Effect Sensor มี 3 ชนิดให้เลือกใช้งาน 5A , 20A , 30A ดังตารางนี้
- ACS712-05B วัดกระแสได้ช่วง -5A ถึง 5A เอาต์พุต 185mV/A แปลว่า ถ้าวัดได้แรงดันไฟฟ้าได้ 185 มิลลิโวลต์ แสดงว่ากระแสที่วัดได้คือ 1 แอมป์
- ACS712-20A วัดกระแสได้ช่วง -20A ถึง 20A เอาต์พุต 100mV/A
- ACS712-30A วัดกระแสได้ช่วง -30A ถึง 30A เอาต์พุต 66mV/A
คำนวนเอาต์พุตของเซนเซอร์ ACS712 จากโวลต์ ให้เป็ค่ากระแสยังไง
การคำนวนเอาต์พุตของ ACS712 ที่เป็นโวลต์ ให้เป็นค่ากระแสไฟฟ้า สามารถคำนวนได้ตามตัวอย่างนี้
- เมื่อไม่มีกระแสไหลผ่านเซนเซอร์ ACS712 Hall Effect เอาพุตจะให้ค่า VCC/2 โดย VCC คือไฟเลี้ยงที่จ่ายให้กับเซนเซอร์
- ถ้า VCC = 5 โวลต์ เอาต์พุตของ ACS712 จะมีค่าประมาณ 2.5V เมื่อไม่มีกระแสผ่านเซนเซอร์ ACS721
- เช็คการทำงานของเซนเซอร์ ACS712 ด้วย Arduino โดยไม่จ่ายโหลด อ่านค่าจะได้ค่ากลาง ๆ 1024/2 ประมาณ 512 บวกลบนิดหน่อยขึ้นอ้างอิงกับแรงดันของแหล่งจ่ายไฟ ดังกราฟนี้ จะวัดได้ประมาณ 502
- ค่า 2.5V นี้ คือแรงดันออฟเซต voltage_offet หรือค่า 0 ของการวัดกระแส
- แรงดันเอาต์พุตจะเปลี่ยนแปลง ขึ้นลง ตามกระแสที่ผ่านเซนเซอร์ ACS712
- ดังนั้นเราสามารถคำนวนกระแส DC โดยใช้คำสั่งนี้
- adcvalue = analogRead(A0); // อ่านค่าจาก Analog ได้ค่า 0-1024
- voltage = (adcvalue/1024.0)*5000; //แปลงค่าจาก 0-1024 ให้เป็น0-5V
- current = ((voltage-voltage_offset)/mVperAmp); // แปลงค่าให้เป็นกระแสไฟฟ้า