เครื่องชาร์จแบตเตอรี่รถยนต์โดยใช้ Arduino โล่ Arduino สำหรับชาร์จแบตเตอรี่ลิเธียม



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


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


นอกจาก Arduino และตัวเหนี่ยวนำแล้วเรายังต้องการ: ทรานซิสเตอร์ NPN หนึ่งตัวประเภท 2N3055, สะพานไดโอด 1A หนึ่งตัว (ชุดไดโอดมีสี่ขั้ว), LED หนึ่งตัว, ตัวต้านทาน 100 โอห์มหนึ่งตัว, ตัวเก็บประจุ 47 nF สองตัว, แบตเตอรี่ 9 V ที่ให้พลังงาน Arduino และควรมีสองบอร์ดสำหรับการสร้างต้นแบบ แผนภาพสำหรับเชื่อมต่อส่วนประกอบเพื่อสร้างอุปกรณ์ส่งข้อมูลไร้สายแสดงในรูปด้านล่าง



สามารถทดสอบวงจรได้โดยใช้ รหัสง่ายๆสำหรับ Arduino ที่ระบุด้านล่าง


การตั้งค่าเป็นโมฆะ () ( pinMode (13, OUTPUT); ) void loop () ( digitalWrite (13, สูง); ล่าช้า (0.5); digitalWrite (13, ต่ำ); ล่าช้า (0.5); )

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




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

Arduino และวงจรการชาร์จเพิ่มเติมสามารถใช้ในการตรวจสอบและควบคุมการชาร์จแบตเตอรี่ NiMH ได้ดังนี้:

อุปกรณ์เสร็จสมบูรณ์

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

ประการแรกสิ่งสำคัญคือต้องทราบว่าไม่มี วิธีการสากลเครื่องชาร์จที่เหมาะกับแบตเตอรี่ทุกประเภท แบตเตอรี่ประเภทต่างๆ ใช้กระบวนการทางเคมีที่แตกต่างกันเพื่อให้ทำงานได้ เป็นผลให้ ประเภทต่างๆจำเป็นต้องชาร์จแบตเตอรี่ที่แตกต่างออกไป เราไม่สามารถครอบคลุมแบตเตอรี่ทุกประเภทและวิธีการชาร์จในบทความนี้ ดังนั้น เพื่อความเรียบง่าย เราจะเน้นไปที่แบตเตอรี่ AA ชนิดที่ใช้กันทั่วไปมากที่สุด นั่นก็คือแบตเตอรี่นิกเกิลเมทัลไฮไดรด์ (NiMH)

เครื่องประดับ

รายการส่วนประกอบจากซ้ายไปขวา:

  • ตัวต้านทาน 10 โอห์มอันทรงพลัง (ขั้นต่ำ 5 วัตต์)
  • ตัวต้านทาน 1 MOhm;
  • ตัวเก็บประจุ 1 µF;
  • ทรานซิสเตอร์มอสเฟต IRF510;
  • เซ็นเซอร์อุณหภูมิ TMP36;
  • แหล่งจ่ายไฟ 5 โวลต์;

วิธีชาร์จแบตเตอรี่ NiMH AA

การเพิ่มอัตราการชาร์จจะเพิ่มความเสี่ยงที่แบตเตอรี่จะเสียหาย

มีหลายวิธีในการชาร์จแบตเตอรี่ NiMH วิธีที่คุณใช้ส่วนใหญ่ขึ้นอยู่กับความเร็วที่คุณต้องการชาร์จแบตเตอรี่ อัตราการชาร์จวัดโดยสัมพันธ์กับความจุของแบตเตอรี่ หากแบตเตอรี่ของคุณมีความจุ 2,500 mAh และคุณชาร์จที่ 2,500 mA แสดงว่าคุณกำลังชาร์จในอัตรา 1C หากคุณชาร์จแบตเตอรี่ก้อนเดียวกันที่ 250 mA แสดงว่าคุณกำลังชาร์จที่อัตรา C/10

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

วงจรชาร์จ

สำหรับสิ่งนี้ ที่ชาร์จพื้นฐานคือวงจรควบคุมการจ่ายไฟด้วย โดยใช้อาดูโน่- วงจรนี้ได้รับพลังงานจากแหล่งจ่ายไฟ 5 โวลต์ เช่น จากอะแดปเตอร์ เครื่องปรับอากาศหรือ หน่วยคอมพิวเตอร์โภชนาการ พอร์ต USB ส่วนใหญ่ไม่เหมาะกับ ของโครงการนี้เนื่องจากข้อจำกัดในปัจจุบัน แหล่งจ่ายไฟ 5V ชาร์จแบตเตอรี่ผ่านตัวต้านทาน 10 โอห์มอันทรงพลัง และ MOSFET อันทรงพลังทรานซิสเตอร์. ทรานซิสเตอร์ MOSFET จะกำหนดปริมาณกระแสที่ไหลผ่านแบตเตอรี่ ตัวต้านทานถูกเพิ่มเข้ามาเป็นวิธีง่ายๆ ในการควบคุมกระแส การตรวจสอบปริมาณกระแสไฟฟ้าทำได้โดยการเชื่อมต่อพินตัวต้านทานแต่ละตัวเข้ากับพินอินพุตแบบอะนาล็อกของ Arduino และวัดแรงดันไฟฟ้าในแต่ละด้าน ทรานซิสเตอร์ MOSFET ถูกควบคุมโดยขาเอาต์พุต Arduino PWM พัลส์สัญญาณการมอดูเลตความกว้างพัลส์จะถูกปรับให้เรียบ แรงดันไฟฟ้ากระแสตรงกรองบนตัวต้านทาน 1 MΩ และตัวเก็บประจุ 1 μF โครงการนี้ช่วยให้ Arduino สามารถตรวจสอบและควบคุมกระแสที่ไหลผ่านแบตเตอรี่ได้


เซ็นเซอร์อุณหภูมิ

เซ็นเซอร์อุณหภูมิใช้เพื่อป้องกันการชาร์จแบตเตอรี่เกินและมั่นใจในความปลอดภัย

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

ที่ใส่แบตเตอรี่ AA ก่อนและหลังการติดตั้ง เขียงหั่นขนม

รหัส


รหัสสำหรับโครงการนี้ค่อนข้างง่าย ตัวแปรที่จุดเริ่มต้นของซอร์สโค้ดช่วยให้คุณสามารถกำหนดค่าเครื่องชาร์จได้โดยป้อนค่าความจุของแบตเตอรี่และความต้านทานที่แน่นอนของตัวต้านทานกำลังไฟ มีการเพิ่มตัวแปรขีดจำกัดความปลอดภัยด้วย สูงสุด แรงดันไฟฟ้าที่อนุญาตบนแบตเตอรี่ตั้งไว้ที่ 1.6 โวลต์ อุณหภูมิแบตเตอรี่สูงสุดตั้งไว้ที่ 35 องศาเซลเซียส ตั้งเวลาชาร์จสูงสุดไว้ที่ 13 ชั่วโมง หากเกินเกณฑ์ความปลอดภัยใดๆ เหล่านี้ ที่ชาร์จจะปิดลง

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

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

Int ความจุแบตเตอรี่ = 2500; // ค่าความจุของแบตเตอรี่ในหน่วยความต้านทานลอย mAh = 10.0; // วัดความต้านทานของตัวต้านทานอันทรงพลัง int cutoffVoltage = 1600; - แรงดันไฟฟ้าสูงสุดบนแบตเตอรี่ (เป็น mV) ซึ่งไม่ควรเกินจุดตัดลอยอุณหภูมิ C = 35; - อุณหภูมิสูงสุดแบตเตอรี่ที่ไม่ควรเกิน (เป็นองศา C) //float cutoffTemperatureF = 95; // อุณหภูมิแบตเตอรี่สูงสุดที่ต้องไม่เกิน (เป็นองศา F) เวลาตัดยาว = 46800000; - เวลาสูงสุดชาร์จที่ 13 ชั่วโมงซึ่งไม่ควรเกิน int outputPin = 9; // สายสัญญาณเอาท์พุตเชื่อมต่อกับพินดิจิตอล 9 int outputValue = 150; // ค่าของสัญญาณเอาต์พุต PWM int analogPinOne = 0; // เซ็นเซอร์แรงดันตัวแรกเชื่อมต่อกับพินอะนาล็อก 0 ค่าทศนิยมProbeOne = 0; // ตัวแปรสำหรับเก็บค่าบนอนาล็อกพินวัน แรงดันไฟฟ้าลอยตัวProbeOne = 0; // คำนวณแรงดันไฟฟ้าบน analogPinOne int analogPinTwo = 1; // เซ็นเซอร์แรงดันไฟฟ้าตัวที่สองเชื่อมต่อกับพินอะนาล็อก 1 ค่าโฟลตProbeTwo = 0; // ตัวแปรสำหรับเก็บค่าบนอนาล็อกพินทูโฟลตแรงดันไฟฟ้าProbeTwo = 0; // คำนวณแรงดันไฟฟ้าบน analogPinTwo int analogPinThree = 2; // เซ็นเซอร์แรงดันไฟฟ้าตัวที่สามเชื่อมต่อกับพินอะนาล็อก 2 ค่าโฟลตProbeThree = 0; // ตัวแปรสำหรับเก็บค่าบน analogPinThree float tmp36Voltage = 0; // คำนวณแรงดันไฟฟ้าบนอนาล็อกPinThree float temperatureC = 0; // อุณหภูมิเซ็นเซอร์คำนวณเป็นองศา C // อุณหภูมิลอย F = 0; // คำนวณอุณหภูมิเซ็นเซอร์เป็นองศา F แรงดันไฟฟ้าลอยส่วนต่าง = 0; // ความแตกต่างระหว่างแรงดันไฟฟ้าบนอนาล็อกพินวันและอนาล็อกพินทูโฟลตแบตเตอรี่แรงดันไฟฟ้า = 0; // แรงดันแบตเตอรี่ที่คำนวณได้กระแสลอย = 0; // คำนวณกระแสที่ไหลผ่านโหลดใน (mA) float targetCurrent = batteryCapacity / 10; // กระแสไฟขาออกเป้าหมาย (ใน mA) ถูกตั้งค่าเป็น // C/10 หรือ 1/10 ของความจุของแบตเตอรี่ลอยปัจจุบันข้อผิดพลาด = 0; // ความแตกต่างระหว่างเป้าหมายและกระแสจริง (ใน mA) การตั้งค่าเป็นโมฆะ () ( Serial.begin (9600); // การตั้งค่า อินเตอร์เฟซแบบอนุกรม pinMode(พินเอาท์พุต, เอาท์พุต); // ตั้งค่าพินเป็นเอาต์พุต ) void loop() (analogWrite(outputPin, outputValue); // เขียนค่าเอาต์พุตไปที่พินเอาต์พุต Serial.print("Output: "); // แสดงค่าเอาต์พุตสำหรับการตรวจสอบ บนคอมพิวเตอร์ Serial.println (outputValue); valueProbeOne = analogRead(analogPinOne); // อ่านค่าอินพุตบนโพรบแรก แรงดันไฟฟ้าProbeOne = (valueProbeOne*5000)/1023; // คำนวณแรงดันไฟฟ้าบนโพรบแรกในหน่วยมิลลิโวลต์ print("Voltage Probe One (mV): "); // แสดงแรงดันไฟฟ้าบนโพรบแรก Serial.println(voltProbeOne); valueProbeTwo = analogRead(analogPinTwo); // อ่านค่าอินพุตบนโพรบที่สอง *5000)/1023; // คำนวณแรงดันไฟฟ้าบนโพรบที่สองในหน่วยมิลลิโวลต์ Serial.print("Voltage Probe Two (mV): "); // แสดงแรงดันไฟฟ้าบนโพรบที่สอง Serial.println(voltProbeTwo); 5,000 - แรงดันไฟฟ้าProbeTwo; // คำนวณแรงดันไฟฟ้าของแบตเตอรี่ Serial.print("แรงดันแบตเตอรี่ ( mV): "); // แสดงแรงดันไฟฟ้าของแบตเตอรี่ Serial.println(แรงดันแบตเตอรี่); ปัจจุบัน = (แรงดันไฟฟ้าProbeTwo - แรงดันไฟฟ้าProbeOne) / ความต้านทาน; // คำนวณค่าใช้จ่ายปัจจุบัน Serial.print ("เป้าหมายปัจจุบัน (mA): "); // แสดงเป้าหมายปัจจุบัน Serial.println (targetCurrent); Serial.print("กระแสไฟแบตเตอรี่ (mA): "); // แสดง Serial.println ปัจจุบันจริง (ปัจจุบัน); currentError = เป้าหมายปัจจุบัน - ปัจจุบัน; // ความแตกต่างระหว่างเป้าหมายและกระแสที่วัดได้ Serial.print ("ข้อผิดพลาดปัจจุบัน (mA): "); // แสดงข้อผิดพลาดการตั้งค่าปัจจุบัน Serial.println (currentError); valueProbeThree = analogRead(analogPinThree); // อ่านค่าอินพุตของโพรบที่สาม tmp36Voltage = valueProbeThree * 5.0; // แปลงเป็นแรงดันไฟฟ้า tmp36Voltage /= 1,024.0;< 1) // выходное значение никогда не может быть ниже 0 { outputValue = 0; } if(outputValue >254) // ค่าเอาท์พุตต้องไม่สูงกว่า 255 ( outputValue = 255; ) analogWrite(outputPin, outputValue); // เขียนค่าเอาต์พุตใหม่ ) if(temperatureC > cutoffTemperatureC) // หยุดชาร์จหากอุณหภูมิของแบตเตอรี่เกินเกณฑ์ที่ปลอดภัย ( outputValue = 0; Serial.print("Max Temperature Exceeded"); ) /* if(temperatureF > cutoffTemperatureF ) / / หยุดชาร์จหากอุณหภูมิแบตเตอรี่เกินเกณฑ์ที่ปลอดภัย ( outputValue = 0; ) */ if(batteryVoltage > cutoffVoltage) // หยุดชาร์จหากแรงดันไฟฟ้าของแบตเตอรี่เกินเกณฑ์ที่ปลอดภัย ( outputValue = 0; Serial.print("Max แรงดันไฟฟ้าเกิน" ); ) ถ้า (มิลลิวินาที () > cutoffTime) // หยุดการชาร์จหากเวลาในการชาร์จเกินเกณฑ์ ( outputValue = 0; Serial.print ("Max Charge Time Exceeded"); ) ล่าช้า (10,000); // หน่วงเวลา 10 วินาทีก่อนที่จะวนซ้ำครั้งถัดไป)

คุณสามารถค้นหาซอร์สโค้ดเวอร์ชันดาวน์โหลดได้ที่ลิงค์ด้านล่าง

ทีมงาน Electro-Labs นำเสนอโครงการสำหรับ Arduino ที่ไม่เพียงแต่น่าสนใจ แต่ยังมีประโยชน์ในชีวิตประจำวันในบล็อกด้วย ในโครงการนี้ โล่ที่ตั้งโปรแกรมได้สำหรับ Arduino ได้รับการพัฒนาซึ่งทำหน้าที่เป็นเครื่องชาร์จสำหรับแบตเตอรี่ลิเธียม โล่ประกอบด้วย จอ LCDและอินเทอร์เฟซแบบปุ่มกดช่วยให้ผู้ใช้สามารถปรับแรงดันไฟฟ้าได้ตั้งแต่ 2V ถึง 10V และกระแสตั้งแต่ 50mA ถึง 1.1A อุปกรณ์ยังให้ความสามารถในการควบคุมกระบวนการชาร์จอีกด้วย

โล่นั้นใช้ชิป LT1510 และควบคุมโดย อาร์ดูโน่ อูโน่- จอแสดงผลที่ใช้คือ Nokia 5110 LCD ที่เรียบง่ายและราคาไม่แพง เชื่อมต่อผ่านอินเทอร์เฟซ SPI และใช้พลังงานจากแรงดันไฟฟ้า 3.3V เนื่องจากพิน I/O ของ Arduino ทำงานที่ 5V ขอแนะนำให้เชื่อมต่อโมดูล LCD ผ่านตัวต้านทานที่เชื่อมต่อแบบอนุกรมกับสายสัญญาณ เพื่อเชื่อมต่อ แบตเตอรี่ลิเธียมไอออนมีขั้วต่อให้เลือกสองแบบ ปุ่มควบคุมสี่ปุ่มเชื่อมต่อกับพิน A2-A5 ของ Arduino แรงดันแบตเตอรี่และกระแสไฟชาร์จถูกควบคุมผ่านพินอะนาล็อก A0 และ A1 รายละเอียด การแปลงแอนะล็อกเป็นดิจิทัลอธิบายไว้ใน ซอร์สโค้ดโครงการ. ไฟ LED SMD สองดวงใช้เพื่อระบุการทำงานของอุปกรณ์

แผนผังของโครงการได้รับการพัฒนาใน SoloCapture จากแพ็คเกจ SoloPCBtools โล่สามารถทำงานได้โดยไม่ต้องควบคุมไมโครคอนโทรลเลอร์ เมื่อไม่ได้ตั้งโปรแกรม Arduino เครื่องชาร์จจะมีแรงดันไฟฟ้าตัดตามค่าเริ่มต้นที่ 4.2V และ กระแสสูงสุดกำลังชาร์จ 1.1A PCB ได้รับการออกแบบใน SoloPSB โครงการ แผงวงจรพิมพ์และสามารถดาวน์โหลดโปรแกรม SoloPSB ได้จาก electro-labs.com ขนาดของชีลด์ถูกเลือกสำหรับตำแหน่งบน Arduino Uno LED, อินเทอร์เฟซปุ่มกด, จอแสดงผล LCD และขั้วต่อแบตเตอรี่อยู่ด้านบนเพื่อความสะดวก องค์ประกอบอื่นทั้งหมดตั้งอยู่ด้วย ด้านหลังโล่.

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

ตัวควบคุม Arduino PWM ชาร์จพลังงานแสงอาทิตย์
วิธีสร้างตัวควบคุมการชาร์จพลังงานแสงอาทิตย์แบบ PWM ที่เล็กมาก เรียบง่าย และราคาถูกด้วย Arduino โปรมินิสำหรับการติดตั้งนอกกริด 12V PCB มีขนาดเท่ากับบอร์ด Pro mini จึงสามารถยึดเข้าด้วยกันได้ แผน PCB สำหรับบอร์ดต้นแบบสากล

การเชื่อมต่อและใช้งานสิ่งนี้ คอนโทรลเลอร์อาดูโน่ ค่าพลังงานแสงอาทิตย์ง่ายมาก - มีสายอินพุต 2 เส้นจากแผง แผงเซลล์แสงอาทิตย์(+ และ -) และ 2 เอาต์พุตนำไปสู่ แบตเตอรี่กรดตะกั่ว- ฐานแผงโซลาร์เซลล์และแบตเตอรี่เชื่อมต่อเข้าด้วยกัน โหลดใดๆ จะต้องเชื่อมต่อโดยตรงกับขั้วแบตเตอรี่ และอุปกรณ์ควบคุมการชาร์จจะจัดการส่วนที่เหลือโดยอัตโนมัติ

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


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

วงจรและฟังก์ชั่นคำอธิบาย:

ฟังก์ชั่นนี้ใช้ทรานซิสเตอร์ MOSFET แบบ N-channel IRF3205 ที่ด้านสูงของวงจร ซึ่งต้องใช้แรงดันเกตสูงกว่า 12V เพื่อเปิด MOSFET อย่างถูกต้อง เพื่อที่จะขจัดความจำเป็น ไดรเวอร์ภายนอก MOSFET ขับเคลื่อนด้วยปั๊มชาร์จที่สร้างด้วยไดโอด ตัวเก็บประจุ 2 ตัว และพินเอาท์พุต Arduino PWM สองตัว (3 และ 11) ขา A1 วัดแรงดันไฟฟ้า แบตเตอรี่และขา 9 ควบคุมวงจร MOSFET ON/OFF LED ในตัว Arduino Pro Mini ที่เชื่อมต่อกับพิน 13 ใช้เพื่อแสดงวงจรปัจจุบันของสัญญาณ PWM

ตัวควบคุมแรงดันไฟฟ้าและตัวเก็บประจุทั้งหมดที่อยู่รอบๆ (C6, C5 และ C4) สามารถกำจัดออกได้เนื่องจากมีตัวควบคุมรวมอยู่ใน Arduino Pro Mini อย่างไรก็ตาม เนื่องจากฉันใช้บอร์ดโคลนราคาถูก ฉันจึงไม่ต้องการพึ่งพาความสามารถในการรองรับแรงดันไฟฟ้าที่สูงกว่า 12V เป็นระยะเวลานานขึ้น LP2950 มีราคาถูกมากและมีประสิทธิภาพถึง 30 โวลต์ ดังนั้นจึงคุ้มค่าที่จะพกติดตัวไปด้วย


รายการชิ้นส่วน: ตัวควบคุมแรงดันไฟฟ้าพร้อม การใช้พลังงานต่ำ LP2950ACZ-5.0 ทรานซิสเตอร์ 2N3904 2N3906 x 2 N-channel MOSFET IRF3205 ตัวต้านทาน 82K (1%) 20K (1%) 220K x3 (0.4W ก็เพียงพอแล้ว) 4K7 (0.4W ก็เพียงพอแล้ว) ไดโอด 1N4148 x 5 P6KE33CA 90SQ035 ไดโอด Schottky ที่คล้ายกัน 35 วี ขั้นต่ำ 9A) ตัวเก็บประจุ 47N/50V x2 เซรามิค 220P/100V เซรามิค 1M/50V (1000nF) เซรามิค 4M7/10V แทนทาลัม 1M/35V แทนทาลัม x 2

วงจรและรหัสสำหรับตัวควบคุมการชาร์จนี้เป็นของ Julian Ilett เขาเป็นผู้บงการเบื้องหลังสิ่งนี้ สิ่งที่ฉลาด- ทั้งหมดนี้เป็นเพียงเอกสารประกอบที่ได้รับการปรับปรุงและการออกแบบ PCB ที่เหมาะสมเพื่อให้เข้ากับบอร์ด Arduino Pro Mini ได้อย่างสมบูรณ์แบบ เขาแชร์วิดีโอเกี่ยวกับตัวควบคุมการชาร์จ Arduino MPPT ที่มีประสิทธิภาพมากกว่า แต่การก่อสร้างมีความซับซ้อนกว่ามากและโครงการยังไม่เสร็จสมบูรณ์ หากคุณสามารถปรับปรุงโค้ดหรือการออกแบบได้ในทางใดทางหนึ่ง โปรดแบ่งปันการปรับปรุงของคุณในความคิดเห็น