- מדוע אנו זקוקים לבודק קיבולת סוללה?
- רכיבים נדרשים
- תרשים מעגל בודק קיבולת סוללות של Arduino
- תוכנית Arduino למדידת קיבולת הסוללה
- שיפורי דיוק
- בניית ובדיקת המעגל
עם הופעת הטכנולוגיה, הגאדג'טים והמכשירים האלקטרוניים שלנו הופכים קטנים יותר ויותר עם יישומים פונקציונליים ומורכבים יותר. עם עלייה במורכבות זו, גדלה גם דרישת ההספק של המעגל ובמסע שלנו להפוך את המכשיר לקטן ונייד ככל האפשר, אנו זקוקים לסוללה שיכולה לספק זרם גבוה לתקופה ארוכה ובאותה מידה. הזמן, שקול הרבה פחות כדי שהמכשיר יישאר נייד. אם אתה רוצה לדעת יותר על סוללות, אתה יכול גם לקרוא מאמר זה על המינוחים הבסיסיים של הסוללה.
מתוך סוגים רבים ושונים של סוללות, סוללות עופרת חומצה, סוללות Ni-Cd וסוללות Ni-MH אינן מתאימות מכיוון שהן שוקלות יותר או אינן יכולות לספק את הזרם הנדרש ליישום שלנו, הדבר משאיר אותנו עם סוללות הליתיום-יון. אשר יכול לספק זרם גבוה תוך שמירה על משקל נמוך וגודל קומפקטי. בעבר בנו גם מטען סוללות ומגבר 18650 ומערכת ניטור סוללות מבוססת IoT, תוכלו לבדוק אותם אם אתם מעוניינים בכך.
מדוע אנו זקוקים לבודק קיבולת סוללה?
יש הרבה ספקי סוללות שמוכרים את גרסאות הזול של סוללות הליון-יון בטענה למפרט מוזר עם מחיר נמוך מאוד וזה טוב מכדי להיות אמיתי. כאשר אתה קונה תאים אלה או שהם לא עובדים בכלל או אם כן, יכולת הטעינה או הזרימה הנוכחית כל כך נמוכה שהם בכלל לא יכולים לעבוד עם היישום. אז איך לבדוק סוללת ליתיום אם התא אינו אחד מהדפיקות הזולות האלה? אחת השיטות היא למדוד את המתח במעגל הפתוח ללא עומס ועומס, אך הדבר אינו אמין כלל.
אז אנו הולכים לבנות בודק קיבולת סוללה 18650 עבור תא Li-Ion 18650 אשר יפרוק תא 18650 טעון במלואו דרך הנגד תוך מדידת הזרם הזורם דרך הנגד כדי לחשב את יכולתו. אם אינך מקבל את קיבולת הסוללה הנטענת בזמן שמתח התא נמצא במגבלות שצוינו, אז תא זה פגום ואין להשתמש בו כיוון שמצב הטעינה של התא יתפוגג בקצב מהיר מאוד בעומס, ויוצר לולאה מקומית אם משתמשים בסוללה וכתוצאה מכך חימום ואולי שריפה. אז בואו נקפוץ לתוכו.
רכיבים נדרשים
- ארדואינו ננו
- 16 × 2 LCD תווים
- LM741 OPAMP IC
- נגן 2.2Ω, 5 וואט
- 7805 ויסות מתח חיובי IC
- ספק כוח 12V
- פוטנציומטר גוזם 10kΩ
- קבלים 0.47uF
- נגד 33kΩ
- מחבר שקע חשמל DC
- מסופי בורג PCB
- IRF540N Mosfet IC של ערוץ N
- לוח
- ערכת הלחמה
- גוף קירור
תרשים מעגל בודק קיבולת סוללות של Arduino
תרשים המעגל השלם עבור בודק קיבולת הסוללה 18650 מוצג להלן. ההסבר למעגל הוא כדלקמן -
יחידת חישוב ותצוגה:
מעגל זה מחולק עוד יותר לשני חלקים, הראשון הוא אספקת 5 וולט נמוכה ל Arduino Nano ומסך LCD אלפאנומרי 16 × 2 וחיבוריהם להצגת תוצאות מדידות הזרם והמתח בזמן אמת. המעגל מופעל על ידי ספק כוח 12V באמצעות SMPS או שאתה יכול להשתמש בסוללת 12V, כמו כן הזרם המקסימלי יהיה סביב 60-70mA להפעלת מסך Arduino ומסך LCD.
כדי להנמיך את המתח ל -5 וולט, נשתמש בווסת מתח ליניארי שיכול להגיע עד 35 וולט וזקוק לפחות לספק כניסה של 7.5 וולט בכדי לספק אספקת 5 וולט מוסדרת ומתח עודף מתפזר כחום ומכאן אם הכניסה שלך. מתח LM7805 רגולטור מתח IC הוא יותר מ 12 וולט, ואז שקול להוסיף גוף קירור כדי שלא ייפגע. ה- LCD מופעל עם אספקת 5V מה- 7805 ומחובר לארדואינו ועובד במצב 4 סיביות. הוספנו גם פוטנציומטר מגבים של 10k Ω כדי לשלוט בניגודיות תצוגת ה- LCD.
מעגל עומס קבוע:
שנית הוא מעגל העומס הקבוע המתבסס על PWM בכדי להפוך את זרם העומס הזורם דרך הנגד לשליטה על ידינו וקבוע כך שלא תהיה שום זחילה המתגנבת פנימה בגלל וריאציה הנוכחית עם הזמן עם ירידת מתח התא. הוא מורכב מ- LM741 OPAMP IC ו- MFF ערוץ N IRF540N, השולט על הזרם הזורם דרך ה- MOSFET על ידי הפעלה וכיבוי של ה- MOSFET בהתאם לרמת המתח שנקבעה על ידינו.
מגבר ה- Op עובד במצב השוואה,כך במצב זה. תפוקת המגבר-על תהיה גבוהה בכל פעם שהמתח של הסיכה הלא-הופכת של המגבר-על גבוה יותר מהסיכה ההפוכה. באופן דומה, אם המתח בסיכה ההפוכה של המגבר-על גבוה יותר מהסיכה הלא-הופכת, תפוקת המגבר-על תימשך כלפי מטה. במעגל הנתון, רמת מתח הסיכה הלא-הפוכה נשלטת על ידי סיכת D9 PWM של ה- Arduino NANO, אשר עובר בתדר 500 הרץ אשר מועבר לאחר מכן דרך מסנן מעגל RC נמוך עם ערך התנגדות 33kΩ וקבל בעל קיבול של 0.47 uF, כדי לספק אות DC כמעט קבוע בסיכה שאינה הופכת. הסיכה ההפוכה מחוברת לנגד העומס, הקורא את המתח על פני הנגד ואת ה- GND המשותף. סיכת הפלט של ה- OPAMP מחוברת למסוף השער של ה- MOSFET כדי להפעיל או לכבות אותו.ה- OPAMP ינסה להפוך את המתחים בשני המסופים שלו לשווים על ידי החלפת ה- MOSFET המחובר כך שהזרם הזורם דרך הנגד יהיה פרופורציונאלי לערך ה- PWM שהגדרת בסיכת D9 של ה- NANO. בפרויקט זה, הזרם המקסימלי, הגבלתי את המעגל שלי הוא 1.3A וזה סביר שכן התא שיש לי הוא 10A כדירוג הנוכחי המרבי שלו.
מדידת מתח:
המתח המקסימלי שתא Li-Ion טעון במלואו הוא 4.1V עד 4.3V שהוא פחות ממגבלת המתח 5V של סיכות הכניסה האנלוגיות של Arduino Nano שיש בהן יותר מ 10kΩ התנגדות פנימית כדי שנוכל לחבר ישירות את תא לכל אחד מפיני הקלט האנלוגיים מבלי לדאוג לזרם הזורם דרכם. לכן, בפרויקט זה עלינו למדוד את מתח התא כדי שנוכל לקבוע אם התא נמצא בטווח הפעולה הנכון של המתח והאם הוא משוחרר לחלוטין או לא.
עלינו למדוד את הזרם הזורם דרך הנגד גם כן לשם כך איננו יכולים להשתמש בתריס הנוכחי מכיוון שמורכבות המעגל תגדל והגברת ההתנגדות בנתיב העומס תפחית את קצב פריקת התא. שימוש בנגדי שאנט קטנים יותר ידרוש מעגל מגבר נוסף בכדי להפוך את קריאת המתח שמגיעה ממנו לקריאה לארדואינו.
אז אנו קוראים ישירות את המתח על פני נגד העומס ואז משתמשים בחוק אוהם מחלק את המתח המתקבל על ידי ערך נגדי העומס כדי שהזרם יזרום דרכו. המסוף השלילי של הנגד מחובר ישירות ל- GND, כך שנוכל להניח בבטחה שהמתח שאנו קוראים על הנגד הוא ירידת המתח בנגד.
תוכנית Arduino למדידת קיבולת הסוללה
כעת לאחר סיום מעגל החומרה, אנו עוברים לתכנות Arduino. עכשיו אם לא מותקן במחשב שלך Arduino IDE מה אתה עושה כאן! היכנס לאתר הרשמי של Arduino והורד והתקן את ה- IDE של Arduino או שתוכל לקודד גם בכל עורך אחר, אך זהו נושא ליום אחר לעת עתה אנו עומדים ב- Arduino IDE. עכשיו אנחנו משתמשים Arduino Nano, כדי לוודא שבחרת את לוח Arduino Nano ידי הולך כלים> לוחות ובחירת Arduino ננו שם, עכשיו לבחור את המעבד הנכון שלך ננו יש ידי הולך כלים> מעבדובעוד שאתה שם בחר גם את היציאה שאליה מחובר Arduino במחשב שלך. אנו משתמשים בארדואינו בכדי להניע את ה- LCD האלפאנומרי 16 × 2 המחובר אליו ולמדוד את מתח התא והזרם הזורם דרך נגן העומס כמוסבר בסעיף הקודם אנו מתחילים את הקוד שלנו על ידי הכרזת קבצי הכותרת לכונן 16 × 2 מסך LCD אלפאנומרי. אתה יכול לדלג על החלק הזה כדי לקבל את הקוד המבושל במלואו בסוף העמוד, אך לשאת איתנו בזמן שאנחנו מחלקים את הקוד לחלקים קטנים ומנסים להסביר.
כעת, לאחר שקובץ הכותרת מוגדר, אנו עוברים הלאה ולהצהיר על המשתנים, ונשתמש בקוד לחישוב המתח והזרם. כמו כן, עלינו להגדיר את הפינים שאנו משתמשים בהם כדי להניע את ה- LCD ואת הפינים בהם נשתמש בכדי להעניק פלט PWM ולקרוא את המתחים האנלוגיים המגיעים גם מהתא והנגד בסעיף זה.
#לִכלוֹל
עכשיו אתה מגיע לחלק ההתקנה, אם אתה רוצה לשמור על Arduino מחובר למחשב שלך כל הזמן ולעקוב אחר ההתקדמות באמצעות צג סידורי ולאתחל את מסך ה- LCD כאן. הוא יציג גם הודעת קבלת פנים "מעגל בודק קיבולת הסוללה" על המסך למשך 3 שניות.
הגדרת חלל () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); // הגדר את הסמן בעמודה הראשונה ובשורה הראשונה. lcd.print ("קיבולת סוללה"); lcd.setCursor (0,1); lcd.print ("מעגל הבוחן"); עיכוב (3000); lcd.clear (); }
עכשיו אנחנו לא צריכים להכריז על סיכת ה- PWM של Arduino כפלט כפונקציית AnalogWrite בה אנו הולכים להשתמש בלולאה הראשית שלנו מטפלת בחלק זה. עליכם להגדיר את ערך ה- PWM שייכתב על אותו סיכה בקוד. בחר בקפידה את ערך ה- PWM בהתאם לזרם הפריקה הנדרש ביישום שלך. ערך PWM רב מדי יביא לזרם גבוה עם ירידת מתח גבוהה בתא ה- Li-Ion וערך PWM נמוך מדי יביא לזמן פריקה גבוה של התא. בפונקציית הלולאה הראשית נקרא את המתחים על הפינים A0 ו- A1 מכיוון שלארדואינו יש 10 סיביות ADC על הלוח ולכן עלינו לקבל ערכי פלט דיגיטלי הנעים בין 0-1023 אותם נצטרך להחזיר חזרה ל טווח 0-5 וולט על ידי הכפלתו ב 5.0 / 1023.0. הקפידו למדוד נכון את המתח בין פינים 5V ו- GND של Arduino Nano באמצעות מד מתח מכוון או מודד מכיוון שרוב הפעמים המתח המווסת אינו בדיוק 5.0V ואפילו הבדל קטן במתח ייחוס זה יביא לשגיאות זחילה. בקריאות המתח אז מדדו את המתח הנכון והחליפו את 5.0 במכפיל שניתן לעיל.
עכשיו כדי להסביר את ההיגיון של הקוד, אנו מודדים ברציפות את מתח התא, ואם מתח התא נמצא מעל הגבול העליון שצוין על ידינו בקוד, הודעת השגיאה מוצגת על גבי LCD כדי ליידע אותך אם התא נמצא טעון יתר או שיש משהו לא בסדר בחיבור והכוח לסיכת השער MOSFET נעצר כך שזרם לא יכול לזרום דרך נגד העומס. חשוב שתטען תחילה את התא שלך לפני שתחבר אותו ללוח בודק הקיבולת כדי שתוכל לחשב את קיבולת הטעינה הכוללת שלו.
analogWrite (MOSFET_Pin, PWM_VALUE); // קרא את הקלט על סיכה אנלוגית 0: int sensorValue_voltage_Cell = analogRead (A0); // המירו את הקריאה האנלוגית (שעוברת בין 0 - 1023) למתח (0 - 5V): מתח צף = sensorValue_voltage_Cell * (5.08 / 1023.0); Serial.print ("VOLTAGE:"); Serial.println (מתח); // כאן המתח מודפס על צג סידורי lcd.setCursor (0, 0); // הגדר את הסמן בעמודה הראשונה ובשורה הראשונה. lcd.print ("מתח:"); // הדפיסו את קריאת המתח על גבי המסך lcd.print (מתח); עיכוב (100); int sensorValue_Shunt_Resistor = analogRead (A1); מתח צף 1 = sensorValue_Shunt_Resistor * (5.08 / 1023.0); זרם צף = מתח 1 / נגד; Serial.print ("הנוכחי:"); Serial.println (הנוכחי); lcd.setCursor (0, 1);// הגדר את הסמן בעמודה הראשונה ובשורה השנייה (הספירה מתחילה ב 0!). lcd.print ("הנוכחי:"); lcd.print (הנוכחי);
כעת, אם מתח התא נמצא בגבולות המתח העליונים והתחתונים שצוינו על ידינו, הננו יקרא את הערך הנוכחי בשיטה שצוינה לעיל ויכפיל אותו עם הזמן שעבר במהלך המדידות ויאחסן אותו במשתנה הקיבולת שהגדרנו קודם. ביחידות mAh. במהלך כל הזמן הזה, ערכי הזרם והמתח בזמן אמת מוצגים על גבי מסך ה- LCD המצורף, ואם תרצה, תוכל לראות אותם גם בצג הסדרתי. תהליך פריקת התא ימשיך עד שמתח התא יגיע מתחת לגבול התחתון שצוין על ידינו בתוכנית ואז הקיבולת הכוללת של התא מוצגת על גבי מסך ה- LCD וזרימת הזרם דרך הנגד נעצרת על ידי משיכת שער MOSFET סיכה נמוכה.
אחרת אם (מתח> BAT_LOW && מתח <BAT_HIGH) {// בדוק אם מתח הסוללה נמצא בגבול הבטוח millisPassed = millis () - previousMillis; mA = זרם * 1000.0; קיבולת = קיבולת + (mA * (millisPassed / 3600000.0)); // שעה 1 = 3600000ms להמיר אותו ליחידות mAh קודם מיליס = מילי (); עיכוב (1000); lcd.clear (); }
שיפורי דיוק
זוהי, בשום אופן, דרך טובה מספיק לקרוא מתח וזרם, אך היא אינה מושלמת. הקשר בין המתח בפועל למתח ה- ADC הנמדד אינו לינארי וזה יסתכם בשגיאה כלשהי במדידות המתחים והזרמים.
אם ברצונך להגביר את דיוק התוצאה, עליך לשרטט את ערכי ה- ADC שאתה מקבל מלהשתמש במקורות מתח ידועים שונים על גבי גרף ואז לקבוע את משוואת המכפיל ממנה על ידי שימוש בכל שיטה שתרצה. בדרך זו, הדיוק ישופר, ותתקרב מאוד לתוצאות בפועל.
כמו כן, ה- MOSFET בו השתמשנו אינו MOSFET ברמת ההיגיון, ולכן הוא זקוק ליותר מ -7 וולטים בכדי להפעיל באופן מלא את הערוץ הנוכחי ואם אנו מיישמים עליו 5 וולט ישירות, הקריאות הנוכחיות לא יהיו מדויקות. אבל אתה יכול להשתמש ברמת ההיגיון IRL520N MOSFET בערוץ N כדי לבטל את השימוש באספקת 12 וולט ולעבוד ישירות עם רמות לוגיות של 5 וולט שיש לך עם Arduino שלך.
בניית ובדיקת המעגל
עכשיו כשתכננו ובדקנו חלקים שונים במעגל שלנו על קרש לחם ולאחר שווידאנו שכולם עובדים כמתוכנן, אנו משתמשים ב- Perfboard כדי להלחין את כל הרכיבים יחד מכיוון שזו שיטה הרבה יותר מקצועית ואמינה לבדיקת המעגל.. אם תרצה, תוכל לעצב PCB משלך ב- AutoCAD Eagle, EasyEDA, או Proteus ARES או בכל תוכנה אחרת שתרצה. ה- Arduino Nano, ה- LCD האלפאנומרי 16 × 2 ו- OPMP של LM741 מותקנים על נקבה ברגסטיק כך שניתן יהיה לעשות בהם שימוש חוזר מאוחר יותר.
סיפקתי אספקה של 12 וולט דרך מחבר שקעי DC למעגל זרם עומס קבוע ואז בעזרת LM7805, המסופק 5 וולט למסך הננו וה- LCD. כעת הפעילו את המעגל והתאימו את סיר הגוזם כדי לקבוע את רמת הניגודיות של מסך ה- LCD, אתה אמור לראות את הודעת הברכה על גבי מסך ה- LCD עד עכשיו, ואז אם רמת המתח של התא נמצאת בטווח העבודה, אז הנוכחי -המתח והזרם מהסוללה יוצגו שם.
זוהי בדיקה בסיסית מאוד לחישוב הקיבולת של התא בו אתה משתמש וניתן לשפר אותו על ידי לקיחת הנתונים ושמירתם בקובץ אקסל לצורך ביצוע עיבוד נתונים והדמייתם לאחר שיטות גרפיות. בעולם מונחה הנתונים של ימינו, ניתן להשתמש בעקומת פריקת תאים זו לבניית מודלים ניבוי מדויקים של הסוללה כדי לדמות ולראות את תגובת הסוללה במצב טעינה ללא בדיקה אמיתית באמצעות תוכנה כמו NI LabVIEW, MATLAB Simulink וכו '. ועוד הרבה יישומים מחכים לך. אתה יכול למצוא את העבודה המלאה של פרויקט זה בסרטון להלן. אם יש לך שאלות בנוגע לפרויקט זה, אנא כתוב אותן בסעיף ההערות למטה או השתמש בפורומים שלנו. לכו להשתעשע בזה ואם תרצו, אנו יכולים להדריך אתכם בקטע ההערות למטה כיצד להמשיך הלאה מכאן. עד אז אדיוס !!!