Სარჩევი:

Digispark ATtiny85 ბატარეის ენერგიის მოხმარების შემცირება: 7 ნაბიჯი
Digispark ATtiny85 ბატარეის ენერგიის მოხმარების შემცირება: 7 ნაბიჯი

ვიდეო: Digispark ATtiny85 ბატარეის ენერგიის მოხმარების შემცირება: 7 ნაბიჯი

ვიდეო: Digispark ATtiny85 ბატარეის ენერგიის მოხმარების შემცირება: 7 ნაბიჯი
ვიდეო: radiant free energy research 2024, ნოემბერი
Anonim
ბატარეის ენერგიის მოხმარების შემცირება Digispark ATtiny85– ისთვის
ბატარეის ენერგიის მოხმარების შემცირება Digispark ATtiny85– ისთვის
ბატარეის ენერგიის მოხმარების შემცირება Digispark ATtiny85– ისთვის
ბატარეის ენერგიის მოხმარების შემცირება Digispark ATtiny85– ისთვის

ან: არდუინოს გაშვება 2032 მონეტის უჯრედით 2 წლის განმავლობაში.

თქვენი Digispark Arduino დაფის გამოყენებით ყუთში Arduino პროგრამით ის იტანს 20 mA 5 ვოლტზე.

5 ვოლტიანი დენის ბანკით 2000 mAh ის იმუშავებს მხოლოდ 4 დღის განმავლობაში.

ნაბიჯი 1: მიწოდების ძაბვის შემცირება LiPo ბატარეის გამოყენებით

მიწოდების ძაბვის შემცირება LiPo ბატარეის გამოყენებით
მიწოდების ძაბვის შემცირება LiPo ბატარეის გამოყენებით

DigiPark დაფის გამოყენებით LiPo ბატარეა 3.7 ვოლტით, მხოლოდ 13 mA.

2000 mAh ბატარეით ის იმუშავებს 6 დღის განმავლობაში.

ნაბიჯი 2: შეამცირეთ პროცესორის საათი

თუ თქვენ არ იყენებთ USB კავშირს, მძიმე მათემატიკას ან სწრაფ გამოკითხვას თქვენს პროგრამაში, შეამცირეთ საათის სიჩქარე. Მაგალითად. მძიმე გამოკითხვა ინფრაწითელი მიმღები ბიბლიოთეკა IRMP კარგად მუშაობს 8 MHz.

1 მეგაჰერცზე თქვენი Digispark ხატავს 6 mA. 2000 mAh ბატარეით ის იმუშავებს 14 დღის განმავლობაში.

ნაბიჯი 3: ამოიღეთ ბორტზე დენის LED და დენის მარეგულირებელი

გამორთეთ დენის LED სპილენძის მავთულის მოწყვეტით, რომელიც დენის დიოდს აკავშირებს დანით ან ამოიღეთ / გამორთეთ 102 რეზისტორი.

ვინაიდან თქვენ ახლა იყენებთ LiPo ბატარეას, ასევე შეგიძლიათ ამოიღოთ ბორტზე არსებული დენის მარეგულირებელი IC. პირველი გააუქმეთ გარე ქინძისთავები solder რკინის და ქინძისთავის დახმარებით. შემდეგ შეაერთეთ დიდი კონექტორი და ამოიღეთ მარეგულირებელი. მცირე მარეგულირებლებისთვის გამოიყენეთ გაცილებით solder და გაათბეთ სამივე ქინძისთავი ერთად, შემდეგ ამოიღეთ იგი.

1 მეგაჰერცსა და 3.8 ვოლტზე თქვენი Digispark ახლა იზიდავს 4.3 mA. 2000 mAh ბატარეით ის იმუშავებს 19 დღის განმავლობაში.

ნაბიჯი 4: USB D- გამოყვანის რეზისტორის გათიშვა (აღინიშნება 152) 5 ვოლტიდან (VCC) და შეაერთეთ იგი USB V+- თან

USB D- გამოყვანის რეზისტორის გათიშვა (აღინიშნება 152) 5 ვოლტიდან (VCC) და შეაერთეთ იგი USB V+- თან
USB D- გამოყვანის რეზისტორის გათიშვა (აღინიშნება 152) 5 ვოლტიდან (VCC) და შეაერთეთ იგი USB V+- თან

ეს მოდიფიკაცია თავსებადია მიკრო ბირთვიანი ჩამტვირთველის ყველა 1.x ვერსიასთან. თუ თქვენ უკვე გაქვთ ახალი 2.x bootloader თქვენს დაფაზე, თქვენ უნდა განაახლოთ ერთი 2.5 ვერსია ერთზე "activePullup" თავისი სახელით. ამის უმარტივესი გზაა ახალი დიგისპარკის დაფის პაკეტის დაყენება და ჩატვირთვის ჩამტვირთავი რეკომენდებული (!!! არა ნაგულისხმევი ან აგრესიული !!!) ვერსიით.

დაარღვიეთ სპილენძის მავთულები იმ რეზისტორის მხარეს, რომელიც მიუთითებს ATtiny– ზე. ეს აფერხებს USB ინტერფეისს და, თავის მხრივ, შესაძლებლობას დაპროგრამდეს Digispark დაფა USB– ის საშუალებით. იმისათვის, რომ ხელახლა ჩართოთ, მაგრამ მაინც დაზოგოთ ენერგია, დაუკავშირეთ რეზისტორი (აღინიშნება 152) უშუალოდ USB V+ - თან, რომელიც ადვილად ხელმისაწვდომია დარტყმული დიოდის გარე მხარეს. დიოდი და მისი სწორი მხარეები შეგიძლიათ იხილოთ უწყვეტობის ტესტერის გამოყენებით. ამ დიოდის ერთი მხარე უკავშირდება ATtiny (VCC) და Digispark 5V პინ 8 -ს. მეორე მხარე დაკავშირებულია USB V+ - თან. ახლა USB გამყვანი რეზისტორი გააქტიურებულია მხოლოდ იმ შემთხვევაში, თუ Digispark დაფა დაკავშირებულია USB მაგ. პროგრამირების დროს.

ბოლო 2 ნაბიჯი ასევე დოკუმენტირებულია აქ.

1 მეგაჰერცსა და 3.8 ვოლტზე თქვენი Digispark ახლა 3 mA- ს ხატავს. 2000 mAh ბატარეით ის იმუშავებს 28 დღის განმავლობაში.

ნაბიჯი 5: გამოიყენეთ ძილი გადადების ნაცვლად ()

გამოიყენეთ ძილი გადადების ნაცვლად ()
გამოიყენეთ ძილი გადადების ნაცვლად ()

ხანგრძლივი შეფერხებების ნაცვლად შეგიძლიათ გამოიყენოთ ენერგიის დაზოგვის პროცესორის ძილი. ძილი შეიძლება გაგრძელდეს 15 მილიწამიდან 8 წამამდე 15, 30, 60, 120, 250, 500 მილიწამიანი ნაბიჯებით და 1, 2, 4, 8 წამი.

მას შემდეგ, რაც ძილის დაწყების დრო 65 მილიწამია ქარხნის Digispark Fuse პარამეტრებით, მხოლოდ 80 ms– ზე დიდი შეფერხებები შეიძლება შეიცვალოს ძილით.

ძილის დროს თქვენი Digispark იღებს 27 µA. 20032 mAh ღილაკით 2032 ის დაიძინებს 10 თვის განმავლობაში.

სწორი რომ იყოს, Digispark უნდა გამოფხიზლდეს ყოველ 8 წამში ერთხელ, გაშვებული მინიმუმ 65 მილიწამში და მიაპყროს დაახლოებით 2 mA დენს. ეს იწვევს საშუალო დენს 42 µA და 6 თვის განმავლობაში. ამ სცენარში თითქმის არანაირი განსხვავება არ არის, თუ თქვენი პროგრამა მუშაობს 10 მილიწამზე (ყოველ 8 წამში).

ძილის გამოყენების კოდია:

#მოიცავს #მოიცავს არასტაბილურ uint16_t sNumberOfSleeps = 0; გარე არასტაბილური ხელმოუწერელი გრძელი millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // ღრმა ძილის რეჟიმი…} void loop () {… sleepWithWatchdog (WDTO_250MS, ჭეშმარიტი); // ძილი 250 ms … sleepWithWatchdog (WDTO_2S, ჭეშმარიტი); // ძილი 2 წამის განმავლობაში…}/ * * aWatchdogPrescaler შეიძლება იყოს 0 (15 ms) 3 - მდე (120 ms), 4 (250 ms) 9 - მდე (8000 ms) */ uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; მე ზოგავს 200 uA // გამოიყენეთ wdt_enable () რადგან ის ამუშავებს, რომ WDP3 ბიტი არის WDTCR რეგისტრის ბიტ 5 -ში wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Watchdog interrupt ჩართვა + გადატვირთვის შეწყვეტის დროშა -> სჭირდება ISR (WDT_vect) sei (); // interrupts sleep_cpu (); // // Watchdog interrupt გაგვაღვიძებს ძილიდან wdt_disable (); // რადგან შემდეგი შეფერხება სხვაგვარად იქნება გამოიწვიოს გადატვირთვა, ვინაიდან wdt_enable () ადგენს WDE / Watchdog System Reset ჩართავს ADCSRA | = ADEN; / * * ვინაიდან ტაიმერის საათი შეიძლება გამორთული იყოს, შეცვალეთ მილი მხოლოდ მაშინ, თუ არ გძინავთ IDLE რეჟიმში (SM2… 0 ბიტი არის 000) * / თუ (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0)))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * ეს შეწყვეტა იღვიძებს პროცესორს ძილისგან * / ISR (WDT_vect) {sNumberOfSleeps ++;}

ნაბიჯი 6: შეცვალეთ დაუკრავენ

27 mA– დან 22 mA შედგენილია BOD– ის მიერ (BrownOutDetection/ქვეძაბვის გამოვლენა). BOD შეიძლება გამორთული იყოს მხოლოდ დაზღვევის ხელახალი პროგრამირებით, რაც შეიძლება გაკეთდეს მხოლოდ ISP პროგრამისტთან ერთად. ამ სკრიპტის გამოყენებით შეგიძლიათ შეამციროთ დენი 5.5 µA– მდე და ასევე შეამციროთ ძილის დრო 4 მილიწამამდე.

დანარჩენი 5,5 μA– დან 5 შედგენილია მცველის აქტიური მრიცხველის მიერ. თუ თქვენ შეგიძლიათ გამოიყენოთ გარე გადატვირთვა გაღვიძებისთვის, მიმდინარე მოხმარება შეიძლება შემცირდეს 0.3 µA– მდე, როგორც ეს მითითებულია მონაცემთა ცხრილში.

თუ თქვენ ვერ შეძლებთ ამ მნიშვნელობის მიღწევას, მიზეზი შეიძლება იყოს ის, რომ შოთკის დიოდის საპირისპირო დენი VCC– სა და Pulup– ს შორის ძალიან მაღალია. გაითვალისწინეთ, რომ 12 MOhm რეზისტორი ასევე იძენს 0.3 µA 3.7 ვოლტზე.

ეს იწვევს საშუალო მოხმარების დონეს 9 μA (2.5 წელი 200 mAh ღილაკით 2032) თუ თქვენ მაგ. მონაცემების დამუშავება ყოველ 8 წამში 3 მილიწამში, როგორც აქ.

ნაბიჯი 7: დამატებითი ინფორმაცია

Digispark დაფის ახლანდელი ნახაზი.

პროექტი ამ ინსტრუქციის გამოყენებით.

გირჩევთ: