สารบัญ:

เครื่องทดสอบแบตเตอรี่ Arduino พร้อมอินเทอร์เฟซผู้ใช้เว็บ: 5 ขั้นตอน
เครื่องทดสอบแบตเตอรี่ Arduino พร้อมอินเทอร์เฟซผู้ใช้เว็บ: 5 ขั้นตอน

วีดีโอ: เครื่องทดสอบแบตเตอรี่ Arduino พร้อมอินเทอร์เฟซผู้ใช้เว็บ: 5 ขั้นตอน

วีดีโอ: เครื่องทดสอบแบตเตอรี่ Arduino พร้อมอินเทอร์เฟซผู้ใช้เว็บ: 5 ขั้นตอน
วีดีโอ: ผมจะต่อแบตเตอรี่ 12V 5A เข้าบอร์ด Arduino ได้มั๊ย Live 13-09-2020 2024, มิถุนายน
Anonim
เครื่องทดสอบแบตเตอรี่ Arduino พร้อมอินเทอร์เฟซผู้ใช้เว็บ
เครื่องทดสอบแบตเตอรี่ Arduino พร้อมอินเทอร์เฟซผู้ใช้เว็บ

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

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

บทนำ
บทนำ

ฉันกำลังดำเนินโครงการเพื่อวัดสถานะของแบตเตอรี่ที่มีความจุและแรงดันไฟฟ้าต่างกันโดยใช้วิธีการ: โหลด DC สองชั้น วิธีนี้ประกอบด้วยการดึงกระแสไฟขนาดเล็กออกจากแบตเตอรี่เป็นเวลา 10 วินาที และกระแสไฟสูงเป็นเวลา 3 วินาที (มาตรฐาน IEC 61951-1: 2005) จากการวัดนี้ ความต้านทานภายในจะถูกคำนวณและด้วยเหตุนี้สถานะของมัน

เวิร์กสเตชันจะประกอบด้วยคอนเน็กเตอร์หลายตัว สำหรับแบตเตอรี่แต่ละประเภท และพีซีหนึ่งเครื่อง สำหรับสิ่งนี้ จำเป็นต้องมีอินเทอร์เฟซผู้ใช้ (UI) ส่วนที่สำคัญที่สุดของบทช่วยสอนนี้คือ UI เนื่องจากในคำแนะนำอื่น ๆ ได้อธิบายวิธีการทดสอบแบตเตอรี่เหล่านี้แล้ว ฉันพยายามประมวลผลและได้ผลลัพธ์ที่ดี แต่ตัดสินใจสร้างซอฟต์แวร์ของตัวเองโดยใช้เว็บเซิร์ฟเวอร์ในพื้นที่ และใช้ประโยชน์จากศักยภาพของ HTML, CSS และ php

เป็นที่ทราบกันดีอยู่แล้วว่าการส่งข้อมูลจาก Arduino ไปยัง Windows PC ทำได้ยากมาก แต่ในที่สุดฉันก็ทำได้สำเร็จ โปรแกรมทั้งหมดรวมอยู่ในบทช่วยสอนนี้

ขั้นตอนที่ 2: สิ่งที่เรากำลังจะวัดและวิธี

เราจะวัดอะไรและอย่างไร
เราจะวัดอะไรและอย่างไร
เราจะวัดอะไรและอย่างไร
เราจะวัดอะไรและอย่างไร

ความต้านทานภายใน

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

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

ความต้านทานภายในสามารถคำนวณได้จากความสัมพันธ์ระหว่างกระแสกับแรงดันที่กำหนดโดยจุดสองจุดในกราฟการคายประจุ

วิธีการโหลด DC แบบสองชั้นเสนอวิธีการอื่นโดยใช้โหลดการคายประจุแบบต่อเนื่องสองแบบของกระแสและระยะเวลาที่แตกต่างกัน แบตเตอรี่จะคายประจุครั้งแรกที่กระแสไฟต่ำ (0.2C) เป็นเวลา 10 วินาที ตามด้วยกระแสไฟที่สูงขึ้น (2C) เป็นเวลา 3 วินาที (ดูรูปที่ 2) กฎของโอห์มคำนวณค่าความต้านทาน การประเมินลายเซ็นแรงดันไฟฟ้าภายใต้สภาวะโหลดทั้งสองแบบจะให้ข้อมูลเพิ่มเติมเกี่ยวกับแบตเตอรี่ แต่ค่าดังกล่าวมีความต้านทานอย่างเข้มงวด และไม่เปิดเผยสถานะการชาร์จ (SoC) หรือการประมาณความจุ การทดสอบโหลดเป็นวิธีที่แนะนำสำหรับแบตเตอรี่ที่จ่ายไฟ DC โหลด

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

ความต้านทานภายในหาได้โดยใช้ความสัมพันธ์

ที่ไหน

รี = (V1 - V2) / (I2 - I1)

?1-Voltage ถูกวัดระหว่างกระแสไฟต่ำและช่วงเวลาชั่วพริบตาที่นานขึ้น

?2-Voltage วัดระหว่างกระแสสูงและช่วงเวลาที่สั้นลง

?1 - ปัจจุบันในช่วงเวลาที่นานขึ้น;

?2 - ปัจจุบันในช่วงเวลาที่สั้นลง

ขั้นตอนที่ 3: วงจร

วงจร
วงจร
วงจร
วงจร
วงจร
วงจร

วงจรเป็นแหล่งกระแสที่ดึง 0.2C (ในกรณีนี้คือ 4mA) และ 2C (ในกรณีนี้คือ 40mA) จากแบตเตอรี่โดยใช้วงจรเดียวที่ควบคุมด้วยสัญญาณ PWM จาก Arduino วิธีนี้ทำให้สามารถวัดแบตเตอรี่สำรองทั้งหมดด้วย C = 20mAh โดยไม่คำนึงถึงแรงดันไฟฟ้าในช่วง 1.2V ถึง 4.8V และแบตเตอรี่อื่นๆ ที่มีความจุต่างกันด้วย ในเวอร์ชันแรก ฉันใช้ทรานซิสเตอร์สองตัวแต่ละตัวที่มีโหลดเพื่อระบาย 4mA และอีก 40mA ที่เหลือ ตัวแปรดังกล่าวไม่เหมาะสำหรับอนาคต เนื่องจากพวกเขาต้องการวัดแบตเตอรี่อื่นๆ ที่มีความจุต่างกัน และรูปแบบนี้ต้องใช้ตัวต้านทานและทรานซิสเตอร์จำนวนมาก

วงจรที่มีแหล่งกำเนิดกระแสจะแสดงในรูปที่ 3 ความถี่ของสัญญาณ PWM จากพิน 5 ของบอร์ด Arduino คือ 940Hz นั่นคือสาเหตุที่ Fc ของ Low Pass Filter (LPF) คือ 8 Hz หมายความว่าฮาร์มอนิกแรกของ สัญญาณ PWM (940Hz) จะถูกลดทอนลง 20dB เนื่องจากตัวกรอง RC ให้การลดทอน 10 dB ต่อทศวรรษ (ทุกๆ 10 เท่าของ Fc - การลดทอนจะเป็น 10dB ใน 80Hz และ 20dB ใน 800Hz) ทรานซิสเตอร์ IRFZ44n มีขนาดใหญ่ เนื่องจากในอนาคตจะมีการทดสอบแบตเตอรี่ที่มีความจุมากขึ้น LM58n ซึ่งเป็นแอมพลิฟายเออร์สำหรับการทำงานแบบคู่ (OA) เป็นส่วนต่อประสานระหว่างบอร์ด Arduino และ IRFZ44n LPF ถูกแทรกระหว่างแอมพลิฟายเออร์ในการดำเนินงาน 2 ตัวเพื่อให้แน่ใจว่ามีการดีคัปปลิ้งที่ดีระหว่างไมโครโปรเซสเซอร์และตัวกรอง ในรูปที่ 3 ขา A1 ของ Arduino เชื่อมต่อกับแหล่งที่มาของทรานซิสเตอร์ IRFZ44n เพื่อตรวจสอบกระแสที่ดึงออกจากแบตเตอรี่

วงจรประกอบด้วย 2 ส่วน ด้านล่างบอร์ด Arduino UNO และเหนือแหล่งสัญญาณปัจจุบัน ดังแสดงในภาพถัดไป อย่างที่คุณเห็นในวงจรนี้ไม่มีสวิตช์หรือปุ่มใด ๆ อยู่ใน UI ในพีซี

วงจรนี้ยังช่วยให้วัดความจุของแบตเตอรี่เป็น mAh ได้เนื่องจากมีแหล่งจ่ายกระแสไฟและบอร์ด Arduino มีตัวจับเวลา

ขั้นตอนที่ 4: โปรแกรม

โปรแกรม
โปรแกรม
โปรแกรม
โปรแกรม
โปรแกรม
โปรแกรม
โปรแกรม
โปรแกรม

ดังที่ได้กล่าวไว้ข้างต้น แอปพลิเคชันมี UI ที่สร้างด้วย HTML, CSS และอีกด้านหนึ่งคือ Arduino Sketch อินเทอร์เฟซเรียบง่ายมากในขณะนี้ เพราะมันดำเนินการวัดความต้านทานภายในเท่านั้น ในอนาคตจะทำหน้าที่เพิ่มเติม

หน้าแรกมีรายการแบบเลื่อนลงซึ่งผู้ใช้เลือกแรงดันไฟฟ้าของแบตเตอรี่ที่จะวัด (รูปที่ 4) โปรแกรม HTML หน้าแรก เรียกว่า BatteryTesterInformation.html แบตเตอรี่ทั้งหมดมีความจุ 20mAh

หน้าสอง BatteryTesterMeasurement.html

ในหน้าที่สอง แบตเตอรี่จะเชื่อมต่อกับขั้วต่อที่ระบุและเริ่ม (ปุ่ม START) การวัด ในขณะนี้ไม่รวม LED นี้เนื่องจากมีตัวเชื่อมต่อเพียงตัวเดียว แต่ในอนาคตจะมีตัวเชื่อมต่อเพิ่มเติม

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

หน้าที่ของโปรแกรมต่อไปคือ PhpConnect.php คือการเชื่อมต่อกับบอร์ด Arduino ส่งและรับข้อมูลจากบอร์ด Arduino และเว็บเซิร์ฟเวอร์

หมายเหตุ: การส่งจากพีซีไปยัง Arduino นั้นรวดเร็ว แต่การส่งสัญญาณจาก Arduino ไปยังพีซีมีความล่าช้า 6 วินาที ฉันกำลังพยายามแก้ไขสถานการณ์ที่น่ารำคาญนี้ กรุณาความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

และภาพร่าง Arduino BatteryTester.ino

เมื่อความต้านทานภายในที่เป็นผลลัพธ์มากกว่าค่าเริ่มต้น 2 เท่า (แบตเตอรี่ใหม่) แสดงว่าแบตเตอรี่ไม่ดี กล่าวคือ ถ้าแบตเตอรี่ที่ทดสอบมี 10 โอห์มขึ้นไป และตามสเปค แบตเตอรี่ชนิดนี้ควรมี 5 โอห์ม แสดงว่าแบตเตอรี่เสีย

UI นี้ได้รับการทดสอบกับ FireFox และ Google โดยไม่มีปัญหา ฉันติดตั้ง xampp และ wampp และทำงานได้ดีทั้งคู่

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

การพัฒนาประเภทนี้โดยใช้อินเทอร์เฟซผู้ใช้บนพีซีมีข้อดีหลายประการ เนื่องจากช่วยให้ผู้ใช้เข้าใจงานที่ทำได้ง่ายขึ้น รวมทั้งหลีกเลี่ยงการใช้ส่วนประกอบราคาแพงที่ต้องมีปฏิสัมพันธ์ทางกล ซึ่งทำให้เสี่ยงต่อการแตกหักได้ง่าย

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

UI จะมีการปรับเปลี่ยนเพิ่มเติมเพื่อรวมหน้าเครื่องชาร์จแบตเตอรี่

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

แนะนำ: