สารบัญ:

ตัวตรวจสอบแบตเตอรี่พร้อมอุณหภูมิและการเลือกแบตเตอรี่: 23 ขั้นตอน (พร้อมรูปภาพ)
ตัวตรวจสอบแบตเตอรี่พร้อมอุณหภูมิและการเลือกแบตเตอรี่: 23 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ตัวตรวจสอบแบตเตอรี่พร้อมอุณหภูมิและการเลือกแบตเตอรี่: 23 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ตัวตรวจสอบแบตเตอรี่พร้อมอุณหภูมิและการเลือกแบตเตอรี่: 23 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ชัวร์ก่อนแชร์ : แบตเตอรี่มีอายุการใช้งานเพียง 1-3 ปี เป็นความเชื่อที่ไม่จริง จริงหรือ ? 2024, กรกฎาคม
Anonim
Image
Image
เปลี่ยนจากโครงการฐาน
เปลี่ยนจากโครงการฐาน

เครื่องทดสอบความจุของแบตเตอรี่

ด้วยอุปกรณ์นี้คุณสามารถตรวจสอบความจุของแบตเตอรี่ 18650 กรดและอื่น ๆ (แบตเตอรี่ที่ใหญ่ที่สุดที่ฉันทดสอบคือแบตเตอรี่กรด 6v 4, 2A) ผลการทดสอบมีหน่วยเป็นมิลลิแอมแปร์/ชั่วโมง

ฉันสร้างอุปกรณ์นี้เพราะต้องการมันเพื่อตรวจสอบความจุของแบตเตอรี่จีนปลอม

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

ฉันเลือกไมโครคอนโทรลเลอร์ขนาดเล็กที่รองรับ atmega328 nano (eBay)

รหัสทั้งหมดอยู่ที่นี่

ขั้นตอนที่ 1: เปลี่ยนจากโครงการฐาน

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

v0.1

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

v0.2

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

v0.3

เร็วๆ นี้ บอร์ดจากบริการนี้

ขั้นตอนที่ 2: V0.2 ของบอร์ด

V0.2 ของคณะกรรมการ
V0.2 ของคณะกรรมการ

ใน v0.2 เพื่อรองรับแบตเตอรี่ประเภทต่างๆ ฉันได้สร้างโครงสร้างที่ต้องเต็มไปด้วยชื่อแบตเตอรี่ แรงดันไฟฟ้าต่ำสุด และแรงดันไฟฟ้าสูงสุด (ฉันต้องการความช่วยเหลือในการเติม:P)

// โครงสร้างแบตเตอรี่ typestruct BatteryType { ชื่อถ่าน [10]; ลอย maxVolt; ลอย minVolt; }; #define BATTERY_TYPE_NUMBER 4 ประเภทแบตเตอรี่ประเภทแบตเตอรี่[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };

ตอนนี้ฉันใช้ชุดตัวต้านทาน 10k สำหรับตัวแบ่งแรงดันไฟฟ้าเพื่ออ่านอุณหภูมิสองเท่าของอินพุตแบบอะนาล็อก หากคุณต้องการเปลี่ยนการรองรับแรงดันไฟ คุณต้องเปลี่ยนค่านี้ (อธิบายต่อไปดีกว่า):

// ความต้านทานแรงดันแบตเตอรี่

#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // ความต้านทานแรงดันไฟฟ้าของตัวต้านทานกำลัง #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0

หากคุณไม่ได้ใช้เทอร์มิสเตอร์ ให้ตั้งค่านี้เป็นเท็จ:

#define USING_BATTERY_TERMISTOR จริง

#define USING_RESISTO_TERMISTOR จริง

หากคุณใช้จอแสดงผล i2c อื่น คุณต้องเขียนวิธีนี้ใหม่:

โมฆะวาด(โมฆะ)

ในโครงการนี้ คุณจะพบกับแผนผัง รูปภาพ และอื่นๆ ที่น่าสนใจ

ขั้นตอนที่ 3: Breadboard: I2c Character Display Controller ขยาย

เขียงหั่นขนม: ตัวควบคุมการแสดงอักขระ I2c ขยาย
เขียงหั่นขนม: ตัวควบคุมการแสดงอักขระ I2c ขยาย

ฉันใช้การแสดงอักขระทั่วไป และสร้างตัวควบคุม i2c และใช้กับไลบรารีที่กำหนดเองของฉัน

แต่ถ้าคุณต้องการ คุณสามารถใช้ตัวควบคุม i2c ปกติ (น้อยกว่า 1 ยูโร) กับไลบรารีมาตรฐาน รหัสยังคงเหมือนเดิม รหัสการแสดงผลทั้งหมดอยู่ในฟังก์ชันการวาด ดังนั้นคุณจึงสามารถเปลี่ยนแปลงได้โดยไม่ต้องเปลี่ยนแปลงอย่างอื่น

อธิบายไว้ที่นี่ดีกว่า

ขั้นตอนที่ 4: Breadboard: การแสดงอักขระด้วย I2c Integrated

เขียงหั่นขนม: การแสดงอักขระด้วย I2c Integrated
เขียงหั่นขนม: การแสดงอักขระด้วย I2c Integrated

สคีมาเดียวกันที่ไม่มีการควบคุม i2c แบบขยาย

ขั้นตอนที่ 5: การตระหนักรู้

สำหรับการวัดแรงดัน เราใช้หลักการของตัวแบ่งแรงดัน (ข้อมูลเพิ่มเติมเกี่ยวกับวิกิพีเดีย)

กล่าวง่ายๆ ก็คือ รหัสนี้เป็นปัจจัยตัวคูณในการวัดแรงดันแบตเตอรี่

batResValueGnd / (batResValueVolt + batResValueGnd)

ฉันใส่ค่าความต้านทาน 2 ค่าของ batResValueVolt และ batResValueGnd หลังและก่อนสายอ่านแบบแอนะล็อก

batVolt = (ตัวอย่าง 1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;

ตัวอย่างที่ 1 คือการอ่านค่าอนาล็อกโดยเฉลี่ย

แรงดันอ้างอิง vcc Arduino;

1023.0 คือค่าสูงสุดอ้างอิงของการอ่านแบบอะนาล็อก (การอ่านแบบอะนาล็อกของ Arduino ไปตั้งแต่ 0 ถึง 1023)

เพื่อให้ได้ค่าแอมแปร์ คุณต้องใช้แรงดันไฟฟ้าหลังและก่อนตัวต้านทานกำลัง

เมื่อคุณมีการวัดแรงดันไฟก่อนและหลังตัวต้านทานกำลัง คุณสามารถคำนวณมิลลิแอมแปร์ที่กินแบตเตอรี่ได้

MOSFET ใช้เพื่อเริ่มและหยุดการระบายแบตเตอรี่จากตัวต้านทานกำลัง

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

ขั้นตอนที่ 6: ความสามารถในการขยาย

ความสามารถในการขยาย
ความสามารถในการขยาย
ความสามารถในการขยาย
ความสามารถในการขยาย

ฉันพยายามสร้างบอร์ดต้นแบบที่สามารถขยายได้ แต่ตอนนี้ฉันใช้พินเพียงเล็กน้อยเท่านั้น (ในอนาคตฉันจะเพิ่มไฟ LED และปุ่มอื่นๆ)

หากคุณต้องการแรงดันไฟรองรับมากกว่า 10v คุณต้องเปลี่ยนค่าความต้านทานของแบตเตอรี่และความต้านทานตามสูตร

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

ในสคีมา แรงดันไฟของตัวต้านทาน

แรงดันไฟของตัวต้านทาน GND 1/2 / (แรงดันไฟของตัวต้านทาน 2/2 + แรงดันไฟของตัวต้านทาน GND 1/2)

สีชมพูกำลังบัดกรี

ขั้นตอนที่ 7: รายการอะไหล่

จำนวน ส่วน ชนิด คุณสมบัติ

  • 2 5 มม. ขั้วต่อสกรู TermInal PCB Mount Screw Terminal Block 8A 250V LW SZUS (eBay)
  • 1 Arduino Pro Mini clone (เข้ากันได้กับนาโน) (eBay)
  • 1 พื้นฐาน FET P-Channel IRF744N หรือ IRLZ44N (eBay)
  • 11 10kΩ ตัวต้านทานตัวต้านทาน 10kΩ (eBay)
  • 2 เซ็นเซอร์อุณหภูมิ (เทอร์มิสเตอร์) 10kΩ; (อีเบย์)
  • * แบบฟอร์มส่วนหัวชายทั่วไป♂ (ชาย); (อีเบย์)
  • * แบบฟอร์มส่วนหัวของเพศหญิงทั่วไป♀ (เพศหญิง); (อีเบย์)
  • 1 บอร์ด PerfBoard บอร์ดต้นแบบ 24x18 (eBay)
  • 10R, 10W

    ตัวต้านทานกำลัง (eBay) ฉันพบของฉันในทีวี crt รุ่นเก่า

ขั้นตอนที่ 8: บอร์ด: รีเซ็ต, ปุ่ม Gnd E เพื่อเลือกแบตเตอรี่

บอร์ด: รีเซ็ต, ปุ่ม Gnd E เพื่อเลือกแบตเตอรี่
บอร์ด: รีเซ็ต, ปุ่ม Gnd E เพื่อเลือกแบตเตอรี่

ในส่วนด้านซ้ายของหมุด คุณจะพบปุ่มและออด

ฉันใช้ 3 ปุ่ม:

  1. หนึ่งเพื่อเปลี่ยนประเภทแบตเตอรี่
  2. หนึ่งเพื่อเริ่มการคายประจุของแบตเตอรี่ที่เลือก
  3. จากนั้นฉันก็ใช้พินรีเซ็ตเพื่อรีสตาร์ททั้งหมด และเปิดใช้งานการทำงานใหม่

พินทั้งหมดถูกดึงลงมาแล้ว ดังนั้นคุณต้องเปิดใช้งานด้วย VCC

รีเซ็ตเปิดใช้งานด้วย GND

สีชมพูกำลังบัดกรี

ขั้นตอนที่ 9: บอร์ด: I2c และพินพาวเวอร์ซัพพลาย

บอร์ด: I2c และพินพาวเวอร์ซัพพลาย
บอร์ด: I2c และพินพาวเวอร์ซัพพลาย

ไปที่ฐาน คุณสามารถดู VCC, GND และ SDA, SCL สำหรับการแสดงผล (และอื่น ๆ ในอนาคต)

สีชมพูกำลังบัดกรี

ขั้นตอนที่ 10: บอร์ด: เทอร์มิสเตอร์และการวัดแรงดัน

บอร์ด: เทอร์มิสเตอร์และแรงดันการวัด
บอร์ด: เทอร์มิสเตอร์และแรงดันการวัด

ทางด้านขวาจะมีพินสำหรับอ่านค่าเทอร์มิสเตอร์ อันหนึ่งสำหรับเทอร์มิสเตอร์รีซิสเตอร์กำลังไฟฟ้า และอีกอันสำหรับเทอร์มิสเตอร์แบตเตอรี่ (พินตัวผู้/ตัวเมียสำหรับยึด)

จากนั้นจะมีพินอะนาล็อกที่วัดแรงดันดิฟเฟอเรนเชียลหลังและก่อนตัวต้านทานกำลัง

สีชมพูกำลังบัดกรี

ขั้นตอนที่ 11: บอร์ด: ตัวต้านทานต่อการวัดแรงดัน

บอร์ด: ตัวต้านทานต่อการวัดแรงดัน
บอร์ด: ตัวต้านทานต่อการวัดแรงดัน
บอร์ด: ตัวต้านทานต่อการวัดแรงดัน
บอร์ด: ตัวต้านทานต่อการวัดแรงดัน

ที่นี่คุณสามารถเห็นตัวต้านทานที่อนุญาตให้รองรับแรงดันไฟฟ้าสองเท่ากว่าพิน Arduino (10v) คุณต้องเปลี่ยนสิ่งนี้เพื่อรองรับแรงดันไฟฟ้าที่มากขึ้น

สีชมพูกำลังบัดกรี

ขั้นตอนที่ 12: ขั้นตอนการบัดกรี: พินทั้งหมด

ขั้นตอนการบัดกรี: พินทั้งหมด
ขั้นตอนการบัดกรี: พินทั้งหมด
ขั้นตอนการบัดกรี: พินทั้งหมด
ขั้นตอนการบัดกรี: พินทั้งหมด

ก่อนอื่นฉันเพิ่มหมุดและบัดกรีทั้งหมด

ขั้นตอนที่ 13: ขั้นตอนการบัดกรี: ตัวต้านทานแบบดึงลงและเทอร์มิสเตอร์

ขั้นตอนการบัดกรี: ตัวต้านทานแบบดึงลงและเทอร์มิสเตอร์
ขั้นตอนการบัดกรี: ตัวต้านทานแบบดึงลงและเทอร์มิสเตอร์
ขั้นตอนการบัดกรี: ตัวต้านทานแบบดึงลงและเทอร์มิสเตอร์
ขั้นตอนการบัดกรี: ตัวต้านทานแบบดึงลงและเทอร์มิสเตอร์

จากนั้นฉันก็เพิ่มตัวต้านทานแบบดึงลงทั้งหมด (สำหรับปุ่ม) และตัวเชื่อมต่อ i2c (จอแสดงผล)

จากนั้นเทอร์มิสเตอร์ตัวต้านทานกำลัง สิ่งสำคัญคือแบตเตอรี่กรดจะร้อนเกินไป

ขั้นตอนที่ 14: ขั้นตอนการบัดกรี: MOSFET ความต้านทานต่อการตรวจสอบแรงดัน

ขั้นตอนการบัดกรี: MOSFET, ความต้านทานต่อการตรวจสอบแรงดัน
ขั้นตอนการบัดกรี: MOSFET, ความต้านทานต่อการตรวจสอบแรงดัน
ขั้นตอนการบัดกรี: MOSFET, ความต้านทานต่อการตรวจสอบแรงดัน
ขั้นตอนการบัดกรี: MOSFET, ความต้านทานต่อการตรวจสอบแรงดัน

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

2 ความต้านทานสำหรับแรงดันไฟฟ้าก่อนตัวต้านทานกำลัง 2 ความต้านทานสำหรับแรงดันไฟฟ้าหลังตัวต้านทานไฟฟ้า เมื่อคุณมีแรงดันไฟฟ้านี้ คุณสามารถคำนวณการใช้มิลลิแอมแปร์ได้

ขั้นตอนที่ 15: รหัส

ไมโครคอนโทรลเลอร์เข้ากันได้กับนาโน ดังนั้นคุณต้องตั้งค่า IDE ของคุณเพื่ออัปโหลด Arduino Nano

ในการทำงาน คุณต้องดาวน์โหลดโค้ดจากที่เก็บ github ของฉัน

กว่าที่คุณต้องเพิ่ม 3 ห้องสมุด:

  1. Wire: ไลบรารี Arduino มาตรฐานสำหรับโปรโตคอล i2c;
  2. Termistor Library จากที่นี่ ไม่ใช่ไลบรารี่ที่คุณสามารถหาได้ใน arduino IDE แต่เป็นเวอร์ชันของฉัน
  3. LiquidCrystal_i2c: หากคุณใช้อะแดปเตอร์ i2c เวอร์ชันขยาย/กำหนดเอง (เวอร์ชันของฉัน) คุณต้องดาวน์โหลดไลบรารี่จากที่นี่ หากคุณใช้ส่วนประกอบมาตรฐาน คุณสามารถใช้ไลบรารี่จาก arduino IDE ได้ แต่อธิบายไว้ที่นี่ดีกว่า

ฉันไม่ได้ทดสอบ LCD กับไลบรารีมาตรฐาน สำหรับฉันดูเหมือนว่าพวกเขาจะใช้แทนกันได้ แต่ถ้ามีปัญหาใด ๆ โปรดติดต่อฉัน

ขั้นตอนที่ 16: ผลลัพธ์หลังจากประกอบ

Image
Image
ผลลัพธ์หลังประกอบ
ผลลัพธ์หลังประกอบ
ผลลัพธ์หลังประกอบ
ผลลัพธ์หลังประกอบ

กระดานฐานอยู่ในรูปแล้วเราไปทดสอบกัน

ขั้นตอนที่ 17: เลือกประเภทแบตเตอรี่ก่อน

เลือกประเภทแบตเตอรี่ก่อน
เลือกประเภทแบตเตอรี่ก่อน

ตามที่อธิบายไว้เรามีแผนที่ค่าพร้อมการกำหนดค่าแบตเตอรี่

// โครงสร้างแบตเตอรี่ typestruct BatteryType { ชื่อถ่าน [10]; ลอย maxVolt; ลอย minVolt; }; #define BATTERY_TYPE_NUMBER 4 ประเภทแบตเตอรี่ประเภทแบตเตอรี่[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };

ขั้นตอนที่ 18: เริ่มการคายประจุ

เริ่มการคายประจุ
เริ่มการคายประจุ
เริ่มการคายประจุ
เริ่มการคายประจุ

คลิกปุ่มที่สองเริ่มการคายประจุ

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

ขั้นตอนที่ 19: ข้อยกเว้น: ถอดแบตเตอรี่ออก

Image
Image
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ

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

ขั้นตอนที่ 20: ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ

ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ
ข้อยกเว้น: การแจ้งเตือนอุณหภูมิ

หากอุณหภูมิ (แบตเตอรี่หรือตัวต้านทานกำลัง) ร้อน กระบวนการคายประจุจะหยุดชั่วคราว

#กำหนด BATTERY_MAX_TEMP 50

#define RESISTANCE_MAX_TEMP 69 // 70° บนแผ่นข้อมูล (ลดค่าตัวต้านทาน) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20

ค่าเริ่มต้นสำหรับอุณหภูมิสูงสุดคือ 50 °สำหรับแบตเตอรี่และ 69 สำหรับตัวต้านทานกำลัง

อย่างที่คุณเห็นบนตัวต้านทานกำลังความคิดเห็นได้รับผลกระทบจากการลดพิกัดเมื่อทำมากกว่า 70°

หากมีการเตือนให้เริ่ม TEMP_TO_REMOVE_ON_MAX_TEMP วินาทีของการหยุดชั่วคราวเพื่อทำให้อุณหภูมิต่ำ

ขั้นตอนที่ 21: ทดสอบแอมแปร์

ทดสอบแอมแปร์
ทดสอบแอมแปร์

ผลการทดสอบแอมแปร์นั้นดี

ขั้นตอนที่ 22: แพ็คเกจ

ด้วยส่วนประกอบที่แยกจากกัน ผลลัพธ์ของแพ็คเกจจึงง่ายต่อการรับรู้

ในกล่องต้องทำเป็นรูปสี่เหลี่ยมผืนผ้าสำหรับ LCD รูสำหรับปุ่มกดและกระบอกหญิงภายนอกเพื่อจ่ายแรงดันไฟฟ้าจากแหล่งจ่ายไฟ

ปุ่มกดไม่ต้องการตัวต้านทานแบบดึงลงเพราะฉันเพิ่มมันบนบอร์ดแล้ว

เมื่อฉันมีเวลาฉันจะสร้างและโพสต์

แนะนำ: