Mục lục:
- Bước 1: Giảm điện áp cung cấp bằng cách sử dụng pin LiPo
- Bước 2: Giảm xung nhịp CPU
- Bước 3: Tháo đèn LED nguồn trên bo mạch và bộ điều chỉnh nguồn
- 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 +
- Bước 5: Sử dụng Sleep thay vì Delay ()
- Bước 6: Sửa đổi cầu chì
- Bước 7: Thông tin thêm
Video: Giảm mức tiêu thụ pin cho Digispark ATtiny85: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
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
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 +
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 ()
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:
Tín hiệu cảnh báo mức tiêu thụ điện Shelly: 8 bước
Tín hiệu cảnh báo mức tiêu thụ điện Shelly: CẢNH BÁO tiêu thụ vượt quá t
Giảm mức tiêu thụ điện năng của rơle - Giữ dòng điện so với nhận: 3 bước
Giảm mức tiêu thụ điện của rơle - Giữ so với dòng nhận: Hầu hết các rơle yêu cầu nhiều dòng điện hơn để tác động ban đầu so với yêu cầu giữ rơle sau khi các tiếp điểm đã đóng. Dòng điện cần thiết để giữ rơ le bật (Dòng điện giữ) về cơ bản có thể nhỏ hơn đáng kể so với dòng điện ban đầu cần thiết để truyền động
Tiêu chuẩn, Điểm chuẩn và Mục tiêu học tập: 5 bước
Tiêu chuẩn, Điểm chuẩn và Mục tiêu Học tập: Tài liệu hướng dẫn này sẽ hướng dẫn học sinh xây dựng cảm biến đỗ xe bằng arduino. Cụ thể, tôi sẽ có một cảm biến siêu âm liên tục dò tìm khoảng cách và cùng với một mã nhỏ lấy khoảng cách này và đặt nó
Phát hiện chuyển động và tiêu diệt mục tiêu! Dự án DIY Autonomous: 5 bước
Phát hiện chuyển động và tiêu diệt mục tiêu! Dự án tự làm tự động: Phát hiện chuyển động và tiêu diệt mục tiêu! Trong video này, tôi hướng dẫn bạn cách xây dựng dự án theo dõi chuyển động tự làm với Raspberry Pi 3. Dự án tự động nên nó di chuyển và bắn súng khi phát hiện chuyển động. Tôi đã sử dụng mô-đun laser cho dự án này, nhưng bạn
Làm thế nào để đo chính xác mức tiêu thụ điện năng của các mô-đun truyền thông không dây trong kỷ nguyên tiêu thụ điện năng thấp ?: 6 bước
Làm thế nào để đo chính xác mức tiêu thụ điện năng của các mô-đun truyền thông không dây trong kỷ nguyên tiêu thụ điện năng thấp ?: Tiêu thụ điện năng thấp là một khái niệm cực kỳ quan trọng trong Internet of Things. Hầu hết các nút IoT cần được cung cấp năng lượng bằng pin. Chỉ bằng cách đo chính xác mức tiêu thụ điện năng của mô-đun không dây, chúng tôi mới có thể ước tính chính xác lượng pin mà tôi