Arduino การคำนวณค่าพลังงานไฟฟ้า ค่าที่ได้นั้นมันลดลงครับ

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

  energy = ((Power*(time))/3600) ;    // หน่วยที่ได้จะเป็น whr ,  time เป็นวินาที

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

สมมติ ผมวัดหลอดไฟแบบไส้ ค่ากำลังไฟฟ้าอยุ่ที่ 100 Watt  วัดค่าพลังงานไฟฟ้าไปได้ครึ่งชั่วโมง ค่าพลังงานจะอยู่ที่ 50 Whr แต่พอผมปิดสวิตท์ไฟ ค่ากำลังไฟฟ้าจะตกเหลือ 0 Watt ซึ่งความเป็นจริง ค่าพลังงานควรจะหยุดอยู่ที่ค่า 50 whr ไปเรื่อยๆ ไม่เพิ่มขึ้นและไม่ลดลง แต่ของผม ค่าพลังงานจะตกลง เหลือ 0 whr

ใครพอจะมีวิธีเขียนโค๊ด ไม่ให้ค่าพลังงานมันลดลง มั้ยครับ ขอบคุณล่วงหน้าครับ
แก้ไขข้อความเมื่อ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 6
ให้เก็บข้อมูลพลังงานสะสมเป็นหน่วย Ws [Watt x second] โดยการ

แล้วเขียนโค้ดประมาณนี้ครับ ให้ E แทน Energy รวม และ P แทน Power ในขณะนั้นครับ

E = E + P

โดยทำคำสั่งนี้ทุก ๆ 1 วินาทีนะครับ ก็จะได้พลังงานสะสมเป็นหน่วย Ws แล้วครับ

จากนั้นตอนแสดงผลค่อยคำนวณออกมาเป็น Wh หรือ kWh ตามต้องการได้เลยครับ

โดย 1 Wh เท่ากับ 3600 Ws ครับ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่