תוכן עניינים:

הפחתת צריכת החשמל של הסוללה ל- Digispark ATtiny85: 7 שלבים
הפחתת צריכת החשמל של הסוללה ל- Digispark ATtiny85: 7 שלבים

וִידֵאוֹ: הפחתת צריכת החשמל של הסוללה ל- Digispark ATtiny85: 7 שלבים

וִידֵאוֹ: הפחתת צריכת החשמל של הסוללה ל- Digispark ATtiny85: 7 שלבים
וִידֵאוֹ: בידקו את הגדרות צריכת החשמל | Windows 11 2024, נוֹבֶמבֶּר
Anonim
הפחתת צריכת החשמל של סוללה עבור Digispark ATtiny85
הפחתת צריכת החשמל של סוללה עבור Digispark ATtiny85
הפחתת צריכת החשמל של סוללה עבור Digispark ATtiny85
הפחתת צריכת החשמל של סוללה עבור Digispark ATtiny85

או: הפעלת ארדואינו עם תא מטבע 2032 למשך שנתיים.

באמצעות לוח Digispark Arduino שלך מחוץ לקופסה עם תוכנית Arduino הוא שואב 20 mA ב -5 וולט.

עם בנק כוח של 5 וולט של 2000 מיליאמפר / שעה הוא יפעל למשך 4 ימים בלבד.

שלב 1: הפחתת מתח האספקה באמצעות סוללת LiPo

הפחתת מתח האספקה באמצעות סוללת LiPo
הפחתת מתח האספקה באמצעות סוללת LiPo

שימוש בסוללת LiPo עם 3.7 וולט כאספקה לוח Digispark שלך שואב רק 13 mA.

עם סוללה של 2000 מיליאמפר / שעה הוא יפעל למשך 6 ימים.

שלב 2: הפחת את שעון המעבד

אם אינך משתמש בחיבור USB, מתמטיקה כבדה או סקר מהיר בתוכנית שלך, הפחת את מהירות השעון. לְמָשָׁל. ספריית הקליטה האינפרא אדומה של הסקרים הכבדים פועלת היטב ב- 8 מגה -הרץ.

במהירות 1 מגהרץ Digispark שלך שואב 6 mA. עם סוללה של 2000 מיליאמפר / שעה היא תפעל למשך 14 יום.

שלב 3: הסר את נורית ההפעלה המשולבת ואת וסת החשמל

כבה את נורית החשמל על ידי שבירת חוט הנחושת המחבר את נורית החשמל לדיודה בעזרת סכין או הסר / השבת את הנגד 102.

מכיוון שאתה משתמש בסוללת LiPo כעת, באפשרותך להסיר גם את IC רגולטור החשמל המשולב. ראשית הרם את הסיכות החיצוניות בעזרת מגהץ וסיכה. לאחר מכן הלחם את המחבר הגדול והסר את הרגולטור. עבור רגולטורים קטנים, השתמש בהלחמה רבה ומחמם את כל 3 הסיכות יחד, ולאחר מכן הסר אותו.

במהירות של 1 מגהרץ ו -3.8 וולט Digispark שלך שואב כעת 4.3 mA. עם סוללה של 2000 מיליאמפר / שעה היא תפעל במשך 19 ימים.

שלב 4: ניתוק הנגד USB D- Pullup (מסומן 152) מ- 5 וולט (VCC) וחבר אותו ל- USB V+

ניתוק הנגד USB D- Pullup (מסומן 152) מ- 5 וולט (VCC) וחבר אותו ל- USB V+
ניתוק הנגד USB D- Pullup (מסומן 152) מ- 5 וולט (VCC) וחבר אותו ל- USB V+

שינוי זה תואם לגרסאות all1.x של מטען האתחול של מיקרו -גרעין. אם כבר יש לך מטען אתחול חדש 2.x על הלוח שלך, עליך לשדרג לאחת מהגרסאות 2.5 עם "activePullup" על שמו. הדרך הקלה ביותר לעשות זאת היא להתקין את חבילת הלוח החדש של digispark ולשרוף את מטען האתחול עם הגרסה המומלצת (!!! לא ברירת המחדל או האגרסיבית !!!).

שברו את חוט הנחושת בצד הנגד המצביע על ה- ATtiny. זה משבית את ממשק ה- USB ובתורו את האפשרות לתכנת את לוח Digispark באמצעות USB. כדי להפעיל אותו שוב, אך עדיין לחסוך בחשמל, חבר את הנגד (מסומן 152) ישירות ל- USB V+ הזמין בקלות בצד החיצוני של הדיודה shottky. ניתן למצוא את הדיודה ואת הצדדים הנכונים שלה באמצעות בודק המשכיות. צד אחד של דיודה זו מחובר לסיכה 8 של ATtiny (VCC) ו- Digispark 5V. הצד השני מחובר ל- USB V+. עכשיו הנגד של ה- USB pullup מופעל רק אם לוח Digispark מחובר ל- USB למשל. במהלך התכנות.

2 השלבים האחרונים מתועדים גם כאן.

במהירות 1 מגהרץ ו -3.8 וולט Digispark שלך שואב כעת 3 mA. עם סוללה של 2000 מיליאמפר / שעה היא תפעל במשך 28 יום.

שלב 5: השתמש בשינה במקום עיכוב ()

השתמש בשינה במקום עיכוב ()
השתמש בשינה במקום עיכוב ()

במקום עיכובים ארוכים תוכל להשתמש בשינה מעבדת חיסכון בחשמל. שינה יכולה להימשך בין 15 אלפיות השנייה ל -8 שניות בשלבים של 15, 30, 60, 120, 250, 500 אלפיות השנייה ו -1, 2, 4, 8 שניות.

מכיוון שזמן ההפעלה משינה הוא 65 אלפיות השנייה עם הגדרות נתיך digispark היצרן, ניתן להחליף רק עיכובים גדולים מ -80 אלפיות השנייה בשינה.

במהלך השינה Digispark שלך שואב 27 µA. עם תא כפתורים של 200 mAh 2032 הוא יישן במשך 10 חודשים.

כדי להיות נכון, Digispark חייב להתעורר לפחות כל 8 שניות, לרוץ לפחות 65 אלפיות השנייה ולמשוך סביב 2 mA זרם. זה מוביל לזרם ממוצע של 42 µA ו- 6 חודשים. בתרחיש זה אין כמעט הבדל אם התוכנית שלך פועלת במשך 10 אלפיות השנייה (כל 8 שניות).

הקוד לשימוש בשינה הוא:

#include #include נדיף uint16_t sNumberOfSleeps = 0; חיצוני נדיף לא חתום millis_timer_millis ארוך; הגדרת חלל () {sleep_enable (); מצב_שינה_מצב (SLEEP_MODE_PWR_DOWN); // מצב שינה עמוק ביותר …} לולאת חלל () {… sleepWithWatchdog (WDTO_250MS, true); // שינה למשך 250 אלפיות השנייה… sleepWithWatchdog (WDTO_2S, true); // שינה במשך 2 שניות …}/ * * aWatchdogPrescaler יכול להיות 0 (15 ms) עד 3 (120 ms), 4 (250 ms) עד 9 (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; עבור (uint8_t i = 0; אני חוסך 200 uA // השתמש ב- wdt_enable () מכיוון שהוא מטפל בכך שהסיביות WDP3 נמצאת בביט 5 ברשם WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // הפעלת כלב השמירה + איפוס דגל הפרעה -> צריך ISR (WDT_vect) sei (); // אפשר הפסקת שינה_cpu (); // הפרעה של כלב השמירה תעיר אותנו מהשינה wdt_disable (); // כי ההפרעה הבאה תעשה אחרת להוביל לאיפוס, מאחר wdt_enable () מגדיר את WDE / Watchdog System Reset הפעל ADCSRA | = ADEN; / * * מכיוון שעון הטיימר עשוי להיות מושבת התאם מילי רק אם לא ישן במצב סרק (SM2 … 0 ביטים הם 000) * / אם (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * הפרעה זו מעירה את המעבד משינה * / ISR (WDT_vect) {sNumberOfSleeps ++;}

שלב 6: שנה את הנתיכים

22 mA מתוך 27 mA נמשכים על ידי ה- BOD (BrownOutDetection/זיהוי תת -מתח). ניתן להשבית את ה- BOD רק על ידי תכנות מחדש של הנתיכים, דבר שניתן לעשותו רק עם מתכנת ספק שירותי אינטרנט. באמצעות סקריפט זה תוכל להפחית את הזרם עד 5.5 µA וגם לצמצם את זמן ההפעלה משינה ל -4 מילי שניות.

5 מתוך 5.5 µA הנותרים נמשכים על ידי מונה כלב השמירה הפעיל. אם אתה יכול להשתמש באפסים חיצוניים להתעוררות, הצריכה הנוכחית יכולה לרדת ל -0.3 µA כאמור בגיליון הנתונים.

אם אינך מצליח להגיע לערך זה, הסיבה יכולה להיות כי הזרם ההפוך של דיודת השוטקי בין VCC לבין הדופק גבוה מדי. זכור כי נגד 12 MOhm מצייר גם 0.3 µA ב -3.7 וולט.

התוצאה היא צריכת זרם ממוצעת של 9 µA (2.5 שנים עם תא כפתורים 200 mAh 2032) אם אתה למשל לעבד נתונים כל 8 שניות למשך 3 אלפיות השנייה כמו כאן.

שלב 7: מידע נוסף

ציור עדכני של לוח Digispark.

פרוייקט באמצעות הוראות אלה.

מוּמלָץ: