สารบัญ:

โมดูลการวัดกำลังไฟฟ้า DIY สำหรับ Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)
โมดูลการวัดกำลังไฟฟ้า DIY สำหรับ Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โมดูลการวัดกำลังไฟฟ้า DIY สำหรับ Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โมดูลการวัดกำลังไฟฟ้า DIY สำหรับ Arduino: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: โมดูลวัดแรงดันไฟฟ้า arduino 2024, กรกฎาคม
Anonim
โมดูลวัดกำลังไฟฟ้า DIY สำหรับ Arduino
โมดูลวัดกำลังไฟฟ้า DIY สำหรับ Arduino
โมดูลวัดกำลังไฟฟ้า DIY สำหรับ Arduino
โมดูลวัดกำลังไฟฟ้า DIY สำหรับ Arduino
โมดูลวัดกำลังไฟฟ้า DIY สำหรับ Arduino
โมดูลวัดกำลังไฟฟ้า DIY สำหรับ Arduino

สวัสดีทุกคน ฉันหวังว่าคุณจะทำได้ดีมาก! ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นว่าฉันสร้างโมดูล Power meter / Wattmeter สำหรับใช้กับบอร์ด Arduino ได้อย่างไร เครื่องวัดพลังงานนี้สามารถคำนวณพลังงานที่ใช้โดยและ DC Load นอกจากกำลังไฟฟ้าแล้ว โมดูลนี้ยังช่วยให้เราอ่านค่าแรงดันและกระแสได้อย่างแม่นยำอีกด้วย สามารถวัดแรงดันไฟฟ้าต่ำ (ประมาณ 2V) และกระแสไฟต่ำได้อย่างง่ายดายเพียง 50 mA โดยมีข้อผิดพลาดไม่เกิน 20mA ความแม่นยำขึ้นอยู่กับการเลือกส่วนประกอบตามความต้องการของคุณ

เสบียง

  • IC LM358 dual OP-AMP
  • ฐานไอซี 8 พิน
  • ตัวต้านทาน Shunt (8.6 มิลลิโอห์มในกรณีของฉัน)
  • ตัวต้านทาน: 100K, 10K, 2.2K, 1K (1/2watt)
  • ตัวเก็บประจุ: 3 * 0.1uF ตัวเก็บประจุเซรามิก
  • Veroboard หรือกระดานศูนย์
  • ขั้วต่อสกรู
  • หัวแร้งและหัวแร้ง
  • Arduino Uno หรือบอร์ดอื่นๆ ที่เข้ากันได้
  • จอแสดงผล OLED
  • การต่อสายเบรดบาร์ด

ขั้นตอนที่ 1: รวบรวมส่วนประกอบที่จำเป็น

รวบรวมส่วนประกอบที่จำเป็น
รวบรวมส่วนประกอบที่จำเป็น

โปรเจ็กต์นี้ใช้ส่วนประกอบที่ง่ายมากและง่ายต่อการรับ ซึ่งประกอบด้วยตัวต้านทาน ตัวเก็บประจุเซรามิก แอมพลิฟายเออร์ในการดำเนินงาน และเวโรบอร์ดสำหรับการสร้างต้นแบบ

ทางเลือกและมูลค่าของส่วนประกอบขึ้นอยู่กับประเภทของการใช้งานและช่วงกำลังไฟฟ้าที่คุณต้องการวัด

ขั้นตอนที่ 2: หลักการทำงาน

หลักการทำงาน
หลักการทำงาน
หลักการทำงาน
หลักการทำงาน
หลักการทำงาน
หลักการทำงาน
หลักการทำงาน
หลักการทำงาน

การทำงานของโมดูลกำลังจะขึ้นอยู่กับสองแนวคิดของทฤษฎีวงจรและไฟฟ้าพื้นฐาน: แนวคิดตัวแบ่งแรงดันไฟฟ้าสำหรับการวัดแรงดันไฟฟ้าขาเข้าและกฎของโอห์มเพื่อคำนวณกระแสที่ไหลผ่านวงจร เรากำลังใช้ตัวต้านทาน shunt เพื่อสร้างแรงดันตกคร่อมที่น้อยมาก แรงดันตกคร่อมนี้เป็นสัดส่วนกับปริมาณกระแสที่ไหลผ่านตัวแบ่ง แรงดันไฟฟ้าขนาดเล็กนี้เมื่อขยายโดยแอมพลิฟายเออร์ในการดำเนินงานสามารถใช้เป็นอินพุตไปยังไมโครคอนโทรลเลอร์ซึ่งสามารถตั้งโปรแกรมเพื่อให้ค่าปัจจุบันแก่เรา แอมพลิฟายเออร์ในการดำเนินงานใช้เป็นแอมพลิฟายเออร์ที่ไม่กลับด้านซึ่งเกนจะถูกกำหนดโดยค่าของผลป้อนกลับ ตัวต้านทาน R2 และ R1 การใช้การกำหนดค่าที่ไม่กลับด้านทำให้เรามีกราวด์ร่วมกันเป็นข้อมูลอ้างอิงการวัด สำหรับสิ่งนี้ กระแสจะถูกวัดที่ด้านล่างของวงจร สำหรับแอปพลิเคชันของฉัน ฉันเลือกอัตราขยาย 46 โดยใช้ตัวต้านทาน 100K และ 2.2K เป็นเครือข่ายป้อนกลับ การวัดแรงดันไฟฟ้าทำได้โดยใช้วงจรแบ่งแรงดันซึ่งแบ่งแรงดันไฟฟ้าขาเข้าตามสัดส่วนของเครือข่ายตัวต้านทานที่ใช้

ทั้งค่าปัจจุบันจาก OP-Amp และค่าแรงดันไฟฟ้าจากเครือข่ายตัวแบ่งสามารถป้อนลงในอินพุตแบบอะนาล็อกสองตัวของ Arduino เพื่อให้เราสามารถคำนวณพลังงานที่ใช้โดยโหลด

ขั้นตอนที่ 3: นำชิ้นส่วนต่างๆ มารวมกัน.

นำชิ้นส่วนมารวมกัน.
นำชิ้นส่วนมารวมกัน.
นำชิ้นส่วนมารวมกัน.
นำชิ้นส่วนมารวมกัน.
นำชิ้นส่วนมารวมกัน.
นำชิ้นส่วนมารวมกัน.

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

ขั้นตอนที่ 4: การเพิ่มชิ้นส่วนสำหรับเครือข่ายการรับรู้แรงดันไฟฟ้า

การเพิ่มชิ้นส่วนสำหรับเครือข่ายรับรู้แรงดันไฟ
การเพิ่มชิ้นส่วนสำหรับเครือข่ายรับรู้แรงดันไฟ
การเพิ่มชิ้นส่วนสำหรับเครือข่ายการรับรู้แรงดัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายการรับรู้แรงดัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายรับรู้แรงดันไฟ
การเพิ่มชิ้นส่วนสำหรับเครือข่ายรับรู้แรงดันไฟ

สำหรับการตรวจจับแรงดันไฟฟ้าอินพุต ฉันใช้เครือข่ายตัวแบ่งแรงดันไฟฟ้า 10K และ 1K ฉันยังเพิ่มตัวเก็บประจุ 0.1 uF ทั่วตัวต้านทาน 1K เพื่อทำให้แรงดันไฟฟ้าราบรื่นขึ้น เครือข่ายตรวจจับแรงดันไฟฟ้าถูกบัดกรีใกล้กับขั้วอินพุต

ขั้นตอนที่ 5: การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน

การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน
การเพิ่มชิ้นส่วนสำหรับเครือข่ายความรู้สึกปัจจุบัน

กระแสจะถูกวัดโดยการคำนวณและขยายแรงดันตกคร่อมตัวต้านทาน shunt ด้วยอัตราขยายที่กำหนดไว้ล่วงหน้าที่กำหนดโดยเครือข่ายตัวต้านทาน ใช้โหมดการขยายแบบไม่กลับด้าน ขอแนะนำให้รักษาร่องรอยการบัดกรีให้มีขนาดเล็กเพื่อหลีกเลี่ยงแรงดันไฟฟ้าตกที่ไม่ต้องการ

ขั้นตอนที่ 6: เสร็จสิ้นการเชื่อมต่อที่เหลือและเสร็จสิ้นการสร้าง.

เสร็จสิ้นการเชื่อมต่อที่เหลืออยู่และเสร็จสิ้นการสร้าง.
เสร็จสิ้นการเชื่อมต่อที่เหลืออยู่และเสร็จสิ้นการสร้าง.
เสร็จสิ้นการเชื่อมต่อที่เหลืออยู่และเสร็จสิ้นการสร้าง.
เสร็จสิ้นการเชื่อมต่อที่เหลืออยู่และเสร็จสิ้นการสร้าง.
เสร็จสิ้นการเชื่อมต่อที่เหลืออยู่และเสร็จสิ้นการสร้าง.
เสร็จสิ้นการเชื่อมต่อที่เหลืออยู่และเสร็จสิ้นการสร้าง.

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

ขั้นตอนที่ 7: เชื่อมต่อโมดูลกับ Arduino

การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino
การเชื่อมต่อโมดูลกับ Arduino

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

ขั้นตอนที่ 8: รหัสโครงการและแผนภาพวงจร

รหัสโครงการและแผนภาพวงจร
รหัสโครงการและแผนภาพวงจร

ฉันได้แนบแผนภาพวงจรและรหัสของโมดูลพลังงานในขั้นตอนนี้ (ก่อนหน้านี้ฉันได้แนบไฟล์.ino และ.txt ที่มีรหัสอยู่ แต่ข้อผิดพลาดของเซิร์ฟเวอร์บางอย่างทำให้ผู้ใช้ไม่สามารถเข้าถึงหรืออ่านรหัสได้ ดังนั้นฉันจึงเขียนทั้งหมด รหัสในขั้นตอนนี้ ฉันรู้ว่านั่นไม่ใช่วิธีที่ดีในการแบ่งปันรหัส:() โปรดแก้ไขรหัสนี้ตามความต้องการของคุณ ฉันหวังว่าโครงการนี้จะเป็นประโยชน์สำหรับคุณ โปรดแบ่งปันความคิดเห็นของคุณในความคิดเห็น ไชโย!

#รวม

#รวม

#รวม

#รวม

#define OLED_RESET 4 จอแสดงผล Adafruit_SSD1306 (OLED_RESET);

ค่าลอย=0;

กระแสลอย=0;

แรงดันลอย=0;

พลังลอย=0;

การตั้งค่าเป็นโมฆะ () {

โหมดพิน (A0, INPUT);

โหมดพิน (A1, INPUT);

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // เริ่มต้นด้วย I2C addr 0x3C (สำหรับ 128x32) display.display();

ล่าช้า (2000);

// ล้างบัฟเฟอร์

display.clearDisplay();

display.setTextSize(1);

display.setCursor(0, 0);

display.setTextColor(สีขาว);

Serial.begin(9600); // เพื่อดูค่าบนจอภาพอนุกรม

}

วงเป็นโมฆะ () {

// หาค่าเฉลี่ยสำหรับการอ่านที่เสถียร

สำหรับ (int i=0;i<20;i++) {

ปัจจุบัน=ปัจจุบัน + analogRead(A0);

แรงดันไฟฟ้า = แรงดัน + อ่านอนาล็อก (A1); }

ปัจจุบัน=(ปัจจุบัน/20); ปัจจุบัน = ปัจจุบัน * 0.0123 * 5.0; // ค่าสอบเทียบ, ที่จะเปลี่ยนตามส่วนประกอบที่ใช้

แรงดันไฟฟ้า = (แรงดันไฟฟ้า/20); แรงดันไฟ = แรงดัน* 0.0508 * 5.0; // ค่าสอบเทียบ, ที่จะเปลี่ยนตามส่วนประกอบที่ใช้

กำลัง = แรงดัน * กระแส;

//พิมพ์ค่าบนจอภาพอนุกรม

Serial.print (แรงดันไฟฟ้า);

Serial.print(" ");

Serial.print (ปัจจุบัน);

Serial.print(" ");

Serial.println(พลังงาน);

// พิมพ์ค่าบนจอแสดงผล OLED

display.setCursor(0, 0);

display.print("แรงดันไฟฟ้า: ");

display.print(แรงดัน);

display.println("วี");

display.setCursor(0, 10);

display.print("ปัจจุบัน: ");

display.print(ปัจจุบัน);

display.println("A");

display.setCursor(0, 20);

display.print("กำลัง: ");

display.print(พลังงาน);

display.println("W");

display.display();

ล่าช้า (500); // อัตราการรีเฟรชที่กำหนดโดยความล่าช้า

display.clearDisplay();

}

แนะนำ: