Mục lục:

Giảm mức tiêu thụ pin cho Digispark ATtiny85: 7 bước
Giảm mức tiêu thụ pin cho Digispark ATtiny85: 7 bước

Video: Giảm mức tiêu thụ pin cho Digispark ATtiny85: 7 bước

Video: Giảm mức tiêu thụ pin cho Digispark ATtiny85: 7 bước
Video: Android quá hao pin và đây là cách khắc phục !!! 2024, Tháng mười một
Anonim
Giảm mức tiêu thụ pin cho Digispark ATtiny85
Giảm mức tiêu thụ pin cho Digispark ATtiny85
Giảm mức tiêu thụ pin cho Digispark ATtiny85
Giảm mức tiêu thụ pin cho Digispark ATtiny85

hoặc: Chạy Arduino với ô đồng xu 2032 trong 2 năm.

Sử dụng Bảng Arduino Digispark của bạn với một chương trình Arduino, nó hút 20 mA ở 5 volt.

Với pin dự phòng 5 volt 2000 mAh, nó sẽ chỉ hoạt động trong 4 ngày.

Bước 1: Giảm điện áp cung cấp bằng cách sử dụng pin LiPo

Giảm điện áp cung cấp bằng cách sử dụng pin LiPo
Giảm điện áp cung cấp bằng cách sử dụng pin LiPo

Sử dụng pin LiPo với 3,7 volt khi cung cấp, bảng Digispark của bạn chỉ thu được 13 mA.

Với pin 2000 mAh, nó sẽ chạy trong 6 ngày.

Bước 2: Giảm xung nhịp CPU

Nếu bạn không sử dụng kết nối USB, tính toán nặng hoặc thăm dò nhanh trong chương trình của mình, hãy giảm tốc độ đồng hồ. Ví dụ. thư viện nhận hồng ngoại thăm dò nặng IRMP chạy tốt ở 8 MHz.

Ở 1 MHz Digispark của bạn thu được 6 mA. Với pin 2000 mAh, nó sẽ chạy trong 14 ngày.

Bước 3: Tháo đèn LED nguồn trên bo mạch và bộ điều chỉnh nguồn

Tắt đèn LED nguồn bằng cách dùng dao cắt đứt dây đồng nối đèn LED nguồn với diode hoặc tháo / tắt điện trở 102.

Vì bây giờ bạn đang sử dụng pin LiPo, bạn cũng có thể tháo IC điều chỉnh nguồn trên bo mạch. Đầu tiên nhấc các chốt bên ngoài nhờ sự trợ giúp của sắt hàn và chốt. Sau đó hàn đầu nối lớn và tháo bộ điều chỉnh. Đối với điều hòa nhỏ thì dùng thuốc hàn nhiều và hơ nóng cả 3 chân với nhau, sau đó tháo ra.

Ở 1 MHz và 3,8 volt, Digispark của bạn giờ đây thu được 4,3 mA. Với pin 2000 mAh, nó sẽ chạy trong 19 ngày.

Bước 4: Ngắt kết nối USB D- Pullup Resistor (đánh dấu 152) Từ 5 Volt (VCC) và Kết nối Nó với USB V +

Ngắt kết nối USB D- Pullup Resistor (đánh dấu 152) Từ 5 Volt (VCC) và Kết nối Nó với USB V +
Ngắt kết nối USB D- Pullup Resistor (đánh dấu 152) Từ 5 Volt (VCC) và Kết nối Nó với USB V +

Sửa đổi này tương thích với các phiên bản all1.x của bộ nạp khởi động vi hạt nhân. Nếu bạn đã có bộ nạp khởi động 2.x mới trên bo mạch của mình, bạn phải nâng cấp lên một phiên bản 2.5 với tên "activePullup". Cách dễ nhất để làm điều này, là cài đặt gói bảng digispark mới và ghi bộ nạp khởi động với phiên bản được khuyến nghị (!!! không phải phiên bản mặc định hoặc tích cực !!!).

Đứt dây đồng ở mặt bên của điện trở trỏ đến ATtiny, thao tác này sẽ vô hiệu hóa giao diện USB và do đó khả năng lập trình bo mạch Digispark qua USB. Để bật lại nhưng vẫn tiết kiệm điện, hãy kết nối trực tiếp điện trở (được đánh dấu 152) với USB V + có sẵn dễ dàng ở mặt ngoài của diode shottky. Diode và các mặt chính xác của nó có thể được tìm thấy bằng cách sử dụng máy kiểm tra tính liên tục. Một mặt của diode này được kết nối với chân 8 của ATtiny (VCC) và Digispark 5V. Mặt còn lại được kết nối với USB V +. Bây giờ, điện trở kéo lên USB chỉ được kích hoạt nếu bảng Digispark được kết nối với USB, ví dụ: trong quá trình lập trình.

2 bước sau cũng được ghi lại ở đây.

Ở 1 MHz và 3,8 volt, Digispark của bạn bây giờ thu được 3 mA. Với pin 2000 mAh, nó sẽ chạy trong 28 ngày.

Bước 5: Sử dụng Sleep thay vì Delay ()

Sử dụng Sleep Thay vì Delay ()
Sử dụng Sleep Thay vì Delay ()

Thay vì trì hoãn lâu, bạn có thể sử dụng chế độ ngủ CPU tiết kiệm điện. Giấc ngủ có thể kéo dài từ 15 mili giây đến 8 giây theo các bước 15, 30, 60, 120, 250, 500 mili giây và 1, 2, 4, 8 giây.

Vì thời gian khởi động từ chế độ ngủ là 65 mili giây với cài đặt cầu chì tiêu chuẩn của nhà máy, nên chỉ những độ trễ lớn hơn 80 ms mới có thể được thay thế bằng chế độ ngủ.

Trong khi ngủ, Digispark của bạn hút 27 µA. Với một tế bào nút 200 mAh 2032, nó sẽ ngủ trong 10 tháng.

Nói chính xác, Digispark ít nhất phải thức dậy sau mỗi 8 giây, chạy trong ít nhất 65 mili giây và tạo ra dòng điện xung quanh 2 mA. Điều này dẫn đến dòng điện trung bình là 42 µA và 6 tháng. Trong trường hợp này, hầu như không có gì khác biệt nếu chương trình của bạn chạy trong 10 mili giây (cứ sau 8 giây).

Mã để sử dụng chế độ ngủ là:

#include #include dễ bay hơi uint16_t sNumberOfSleeps = 0; extern dễ bay hơi không dấu dài millis_timer_millis; void setup () {sleep_enable (); set_sleep_mode (SLEEP_MODE_PWR_DOWN); // chế độ ngủ sâu nhất…} void loop () {… sleepWithWatchdog (WDTO_250MS, true); // ngủ trong 250 ms… sleepWithWatchdog (WDTO_2S, true); // ngủ trong 2 giây…} / * * aWatchdogPrescaler có thể từ 0 (15 ms) đến 3 (120 ms), 4 (250 ms) đến 9 (8000 ms) * / uint16_t computeSleepMillis (uint8_t aWatchdogPrescaler) {uint16_t tResultMillis = 8000; for (uint8_t i = 0; i save 200 uA // use wdt_enable () vì nó xử lý rằng bit WDP3 nằm trong bit 5 của thanh ghi WDTCR wdt_enable (aWatchdogPrescaler); WDTCR | = _BV (WDIE) | _BV (WDIF); // Kích hoạt ngắt của cơ quan giám sát + đặt lại cờ ngắt -> cần ISR (WDT_vect) sei (); // Kích hoạt ngắt sleep_cpu (); // Ngắt của cơ quan giám sát sẽ đánh thức chúng ta khỏi chế độ ngủ wdt_disable (); // Vì ngắt tiếp theo sẽ khác dẫn đến thiết lập lại, vì wdt_enable () đặt WDE / Watchdog System Reset Enable ADCSRA | = ADEN; / * * Vì đồng hồ hẹn giờ có thể bị tắt, chỉ điều chỉnh mili nếu không ở chế độ IDLE (SM2… 0 bit là 000) * / if (aAdjustMillis && (MCUCR & ((_BV (SM1) | _BV (SM0)))))! = 0) {millis_timer_millis + = computeSleepMillis (aWatchdogPrescaler);}} / * * Ngắt này đánh thức cpu khỏi chế độ ngủ * / ISR (WDT_vect) {sNumberOfSleeps ++;}

Bước 6: Sửa đổi cầu chì

22 mA trong số 27 mA được rút ra bởi BOD (BrownOutDetection / phát hiện điện áp thấp). Chỉ có thể vô hiệu hóa BOD bằng cách lập trình lại các cầu chì, điều này chỉ có thể được thực hiện với một lập trình viên ISP. Sử dụng tập lệnh này, bạn có thể giảm dòng điện xuống 5,5 µA và cũng giảm thời gian khởi động từ chế độ ngủ xuống còn 4 mili giây.

5 trong số 5,5 µA còn lại được vẽ bởi bộ đếm cơ quan giám sát hoạt động. Nếu bạn có thể sử dụng các thiết lập lại bên ngoài để đánh thức, mức tiêu thụ hiện tại có thể giảm xuống 0,3 µA như đã nêu trong biểu dữ liệu.

Nếu bạn không thể đạt đến giá trị này, nguyên nhân có thể là do dòng điện ngược của diode schottky giữa VCC và pullup quá cao. Hãy nhớ rằng một điện trở 12 MOhm cũng tạo ra 0,3 µA ở 3,7 vôn.

Điều này dẫn đến mức tiêu thụ hiện tại trung bình là 9 µA (2,5 năm với ô nút 200 mAh năm 2032) nếu bạn v.d. xử lý dữ liệu 8 giây một lần trong 3 mili giây như ở đây.

Bước 7: Thông tin thêm

Bản vẽ hiện tại của một bảng Digispark.

Dự án bằng cách sử dụng hướng dẫn này.

Đề xuất: