Агуулгын хүснэгт:

Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах: 7 алхам
Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах: 7 алхам

Видео: Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах: 7 алхам

Видео: Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах: 7 алхам
Видео: Как прошить Digispark Attiny85. Обзор платы Digispark Attiny85. Установка драйверов. 2024, Арваннэгдүгээр
Anonim
Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах
Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах
Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах
Digispark ATtiny85 -ийн батерейны хэрэглээг бууруулах

эсвэл: 2032 оны зоосны үүртэй Arduino -г 2 жилийн турш ажиллуулах.

Arduino програмын тусламжтайгаар Digispark Arduino самбарыг хайрцгаас гаргаж авснаар 5 вольтын хүчдэлтэй 20 мА хүчдэл авдаг.

2000 мАч чадалтай 5 вольтын цахилгаан банктай бол 4 хоног л ажиллах болно.

Алхам 1: LiPo батерей ашиглан тэжээлийн хүчдэлийг бууруулах

LiPo батерей ашиглан хангамжийн хүчдэлийг бууруулах
LiPo батерей ашиглан хангамжийн хүчдэлийг бууруулах

3.7 вольтын хүчдэл бүхий LiPo батерейг Digispark хавтангаар нийлүүлэх нь ердөө 13 мА чадалтай.

2000 мАч багтаамжтай батерейгаар 6 хоног ажиллах болно.

Алхам 2: CPU -ийн цагийг багасгах

Хэрэв та програмдаа USB холболт, хүнд математик эсвэл хурдан санал асуулга ашигладаггүй бол цагийн хурдыг бууруулна уу. Жишээлбэл Хэт улаан туяаны хүлээн авах номын сангийн IRMP нь 8 МГц давтамжтайгаар сайн ажилладаг.

1 МГц давтамжтайгаар таны Digispark 6 мА зурвас татдаг. 2000 мАч батерейгаар 14 хоног ажиллах болно.

Алхам 3: Самбар дээрх цахилгаан LED ба цахилгаан зохицуулагчийг салга

Цахилгаан LED -ийг диод руу хутгаар залгадаг эсвэл 102 резисторыг салгаж / идэвхгүй болгосноор цахилгаан LED -ийг идэвхгүй болго.

Та одоо LiPo батерей ашиглаж байгаа тул самбар дээрх цахилгаан зохицуулагч IC -ийг салгаж болно. Эхлээд гадна тээглүүрийг гагнуурын төмөр ба зүүний тусламжтайгаар өргө. Дараа нь том холбогчийг гагнаж, зохицуулагчийг салга. Жижиг зохицуулагчдын хувьд их хэмжээний гагнуур хэрэглэж, бүх 3 тээглүүрийг халааж, дараа нь салга.

1 МГц ба 3.8 вольтын хурдаар таны Digispark одоо 4.3 мА хүчдэл авдаг. 2000 мАч батерейгаар 19 хоног ажиллах болно.

Алхам 4: USB D- татах эсэргүүцлийг (152 гэж тэмдэглэсэн) 5 вольтоос (VCC) салгаад USB V+ руу холбоно уу

USB D-татах эсэргүүцэл (152 гэж тэмдэглэгдсэн) -ийг 5 вольтоос (VCC) салгаад USB V+ руу холбоно уу
USB D-татах эсэргүүцэл (152 гэж тэмдэглэгдсэн) -ийг 5 вольтоос (VCC) салгаад USB V+ руу холбоно уу

Энэхүү өөрчлөлт нь micronucleus bootloader -ийн all1.x хувилбаруудтай нийцдэг. Хэрэв та самбар дээрээ шинэ 2.x ачаалагч програмыг суулгасан бол нэр дээрээ "activePullup" гэсэн 2.5 хувилбарыг шинэчлэх ёстой. Үүнийг хийх хамгийн хялбар арга бол digispark хавтангийн шинэ багцыг суулгаж, ачаалагчийг санал болгосон хувилбараар (!!! анхдагч эсвэл түрэмгий биш !!!) шатаах явдал юм.

ATtiny руу чиглэсэн резисторийн зэс утсыг таслах нь USB интерфэйсийг идэвхгүй болгож, Digispark самбарыг USB -ээр програмчлах боломжийг олгодог. Дахин идэвхжүүлэхийн тулд, гэхдээ эрчим хүч хэмнэхийн тулд резисторыг (152 гэж тэмдэглэгдсэн) shottky диодын гадна талд байдаг USB V+ руу шууд холбоно уу. Тасралтгүй байдлын шалгагч ашиглан диод ба түүний зөв талыг олж болно. Энэхүү диодын нэг тал нь ATtiny (VCC) болон Digispark 5V -ийн 8 -р зүүтэй холбогдсон байна. Нөгөө тал нь USB V+-тэй холбогдсон байна. Одоо USB татах эсэргүүцэл нь Digispark самбарыг USB -тэй холбосон тохиолдолд л идэвхждэг. програмчлалын явцад.

Сүүлийн 2 алхамыг мөн энд баримтжуулсан болно.

1 МГц ба 3.8 вольтын хурдаар таны Digispark одоо 3 мА зурах чадалтай. 2000 мАч батерейгаар 28 хоног ажиллах болно.

Алхам 5: Хойшлуулахын оронд унтах аргыг ашиглаарай ()

Хойшлуулахын оронд унтах аргыг ашиглаарай ()
Хойшлуулахын оронд унтах аргыг ашиглаарай ()

Удаан хугацаагаар хойшлуулахын оронд та эрчим хүч хэмнэх CPU унтах горимыг ашиглаж болно. Унтах хугацаа 15 миллисекундээс 8 секунд хүртэл 15, 30, 60, 120, 250, 500 миллисекунд, 1, 2, 4, 8 секундын хугацаанд үргэлжлэх боломжтой.

Нойрноос эхлэх хугацаа 65 миллисекунд байдаг тул үйлдвэрийн гал хамгаалагчийн тохиргоотой байдаг тул зөвхөн 80 мс -ээс их саатал нь нойроор солигддог.

Унтах үед таны Digispark 27 мкА зурдаг. 200 мАч багтаамжтай 2032 товчлууртай бол 10 сар унтах болно.

Зөв байхын тулд Digispark нь дор хаяж 8 секунд тутамд дор хаяж 65 миллисекунд гүйж, ойролцоогоор 2 мА гүйдэл татах ёстой. Энэ нь дунджаар 42 мкА ба 6 сарын гүйдэлд хүргэдэг. Энэ тохиолдолд таны програм 10 миллисекунд (8 секунд тутамд) ажилладаг бол энэ нь бараг ялгаагүй болно.

Унтахыг ашиглах код нь:

#include #include дэгдэмхий uint16_t sNumberOfSleeps = 0; extern дэгдэмхий гарын үсэггүй урт 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; i 200 uA хэмнэнэ // wdt_enable () -ийг ашиглана, учир нь WDP3 бит нь WDTCR регистрийн 5 -р битэд байдаг тул wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Харуулын нохойн тасалдлыг идэвхжүүлэх + тасалдлын тугийг дахин тохируулах -> ISR (WDT_vect) sei () хэрэгтэй; // тасалдлыг идэвхжүүлэх sleep_cpu (); // Харуулын нохойн тасалдал нь биднийг нойрноос сэрээх болно wdt_disable (); // Учир нь дараагийн тасалдал өөрөөр хийгдэх болно. wdt_enable () нь WDE / Watchdog System Reset -ийг идэвхжүүлэх ADCSRA | = ADEN; (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0))))))! = 0) {millis_timer_millis += computeSleepMillis (aWatchdogPrescaler);}} / * * Энэхүү тасалдал нь CPU -ийг нойрноос сэрээдэг * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Алхам 6: Гал хамгаалагчийг өөрчлөх

27 мА -ийн 22 мА -ийг BOD (BrownOutDetection/undervoltage илрүүлэх) зурдаг. BOD -ийг зөвхөн гал хамгаалагчийг дахин програмчлах замаар идэвхгүй болгох боломжтой бөгөөд үүнийг зөвхөн ISP програмистаар хийх боломжтой. Энэхүү скриптийг ашигласнаар та гүйдлийг 5.5 мкА хүртэл бууруулж, унтахаас эхлүүлэх хугацааг 4 миллисекунд хүртэл бууруулах боломжтой.

Үлдсэн 5.5 мкА -аас 5 -ийг нь идэвхтэй ажиглагчийн тоолуур зурдаг. Хэрэв та сэрээхдээ гадаад тохиргоог ашиглаж чадвал өгөгдлийн хүснэгтэд заасанчлан одоогийн хэрэглээ 0.3 мкА хүртэл буурах боломжтой.

Хэрэв та энэ утгад хүрч чадахгүй байгаа бол шалтгаан нь VCC ба татах хоёрын хоорондох schottky диодын урвуу гүйдэл хэт өндөр байна. 12 МОм эсэргүүцэл нь 3.7 вольтын хүчээр 0.3 мкА хүчдэл авдаг гэдгийг санаарай.

Үүний үр дүнд одоогийн хэрэглээ дунджаар 9 мкА байна (200 мАч товчлууртай 2032 онд 2.5 жил). энд байгаа шиг 3 миллисекундээр 8 секунд тутамд өгөгдлийг боловсруулдаг.

Алхам 7: Нэмэлт мэдээлэл

Digispark хавтангийн одоогийн зураг.

Энэхүү зааврыг ашиглан төсөл боловсруулна уу.

Зөвлөмж болгож буй: