(Hoặc làm thế nào để tôi sử dụng) các tùy chọn tiết kiệm năng lượng của Arduino để kéo dài tuổi thọ pin?


40

Đối với các dự án năng lượng mặt trời và pin, giảm tiêu thụ năng lượng là cần thiết.

Tôi biết một chút về việc sử dụng bộ hẹn giờ và ngắt để đưa vi điều khiển vào trạng thái ngủ khi nó không làm gì cả.

Tôi cũng đã đọc rằng bạn có thể vô hiệu hóa một số thiết bị ngoại vi để tiếp tục tiết kiệm năng lượng.

Đây là một trang giải thích những điều này: Kỹ thuật tiết kiệm năng lượng

Câu hỏi của tôi:

  • Có những kỹ thuật nào khác để tiết kiệm điện?
  • Có thư viện nào giúp việc sử dụng các tính năng AVR này dễ dàng hơn không?

Câu trả lời:


33

Lưu ý: Tôi muốn chỉ ra rằng, mặc dù câu trả lời của tôi đã được chấp nhận, người đọc (bạn) nên thực sự đọc câu trả lời của Anindo trước nếu bạn thực sự muốn tiết kiệm năng lượng với bất kỳ bảng Arduino nào. Khi bạn giải quyết các mục đó trong thiết kế của mình, bạn nên đọc câu trả lời của tôi và lo lắng về cách đặt MCU ở chế độ năng lượng thấp.

Phải nói rằng, có một số kỹ thuật để tạo ra một Arduino tiết kiệm năng lượng. Tôi sẽ liệt kê một vài và sau đó chỉ cho bạn một trang giải thích tất cả chúng chi tiết hơn.

  1. Mặc dù bộ điều khiển không làm gì quan trọng (ví dụ, giữa một lần đọc cảm biến và tiếp theo), bạn có thể đặt bộ điều khiển vào một trong các chế độ ngủ bên dưới, bằng lệnh set_sleep_mode (SLEEP_MODE_PWR_DOWN). Bên cạnh mỗi chế độ là mức tiêu thụ năng lượng gần đúng của từng chế độ.

    • SLEEP_MODE_IDLE: 15 mA
    • SLEEP_MODE_ADC: 6,5 mA
    • SLEEP_MODE_PWR_SAVE: 1,62 mA
    • SLEEP_MODE_EXT_STANDBY: 1.62 mA
    • SLEEP_MODE_STANDBY: 0,84 mA
    • SLEEP_MODE_PWR_DOWN: 0,36 mA
  2. Vô hiệu hóa phát hiện ra màu nâu (mạch tắt bộ điều khiển khi phát hiện điện áp thấp).

  3. Tắt ADC (chuyển đổi tương tự sang chữ số)

  4. Sử dụng đồng hồ nội bộ

Sau đó, khi bạn đặt bộ điều khiển vào chế độ ngủ, bạn cần sử dụng một hoặc nhiều cơ chế bên dưới để đánh thức bộ điều khiển và làm gì đó với nó:

  • Thức dậy với tín hiệu

  • Thức dậy với một bộ đếm thời gian

Đây là một bản tóm tắt tôi đã thực hiện từ -

Bài viết đó áp dụng chủ yếu cho ATmega328P, nhưng kỹ thuật này cũng áp dụng cho các bộ điều khiển tương thích Arduino khác. Như TheDoctor đã nói tốt, bạn sẽ cần kiểm tra bộ dữ liệu để đảm bảo bộ điều khiển của bạn áp dụng bất kỳ kỹ thuật nào và cách thực hiện chính xác hơn.


2
Cảm ơn bạn đã tham khảo trang của tôi www.gammon.com.au/power . Sử dụng tất cả các kỹ thuật được đề cập trên đó sẽ cho phép bạn tiêu thụ khoảng 100 nA (0,1 LoạiA). Các kỹ thuật khác có thể có tác động lớn là chạy ở tần số thấp hơn và điện áp thấp hơn. Cộng với những gì Anindo Ghosh nói về việc không sử dụng bộ điều chỉnh điện áp. Tôi đã tạo ra một cảm biến Nhiệt độ và độ ẩm - chạy bằng pin sử dụng rất nhiều các kỹ thuật này, vẫn còn mạnh mẽ, sau một vài năm sử dụng pin.
Nick Gammon

@NickGammon - Công bằng mà nói, tôi nghĩ rằng bài viết xuất sắc của bạn xứng đáng được tham khảo tốt hơn, vì vậy tôi đã chỉnh sửa câu trả lời của mình đến mức đó. Cảm ơn bạn cho bài viết tuyệt vời - rất rõ ràng và đầy đủ! Và chào mừng bạn đến với Arduino.SE. Thật tốt khi có bạn ở đây.
Ricardo

24

Trên thực tế, bộ lọc công suất lớn nhất trên bo mạch Arduino là bộ điều chỉnh điện áp tuyến tính trên nó.

  1. Miễn là bộ vi điều khiển trên bo mạch, đèn LED hoặc bất kỳ thiết bị ngoại vi nào khác, vẽ dòng điện, bộ điều chỉnh tuyến tính sẽ lãng phí điện năng bằng difference between supply and board voltagex current drawn.

    Vì vậy, cách khắc phục đầu tiên là ngắt kết nối đèn LED chỉ báo nguồn trên bo mạch và không sử dụng bất kỳ đèn LED nào khác càng xa càng tốt. Thứ hai, cung cấp cho bo mạch điện áp càng thấp càng tốt, chỉ đủ để cung cấp năng lượng cho bộ điều chỉnh trên bo mạch.

  2. Trên các thiết kế ban đầu, các bộ điều chỉnh điện áp được sử dụng không tự hào về dòng tĩnh thấp. Điều này có nghĩa là ngay cả khi không có gì rút điện trong bảng, bộ điều chỉnh tự lãng phí một chút năng lượng trong suốt thời gian nó hoạt động.

    Một cách khắc phục dễ dàng là thay thế bộ điều chỉnh trên tàu bằng LDO (bộ điều chỉnh tuyến tính thả ra thấp) được xếp hạng cho dòng tĩnh cực thấp. Tìm kiếm tham số trên các trang web của nhà cung cấp khác nhau sẽ mang lại khả năng thay thế.

  3. Ngay cả với các bước trên, bo mạch Arduino cũng không cung cấp cơ chế đặt LDO ở chế độ năng lượng thấp, nếu LDO được chọn hỗ trợ điều này. Các thiết kế tiết kiệm năng lượng thường sử dụng chân "chế độ ngủ" trên các bộ điều chỉnh điện áp để tiết kiệm một chút năng lượng - không phải là một lựa chọn ở đây.

Ngay cả với tất cả các chế độ và thủ thuật tiết kiệm năng lượng có thể được áp dụng ở cấp vi điều khiển, Arduino chỉ đơn giản là không được thiết kế để trở thành một thiết bị có công suất cực thấp. Đã thử nghiệm với một số ứng dụng không tầm thường, tôi thấy rằng thứ tốt nhất có thể đạt được thực tế là tiết kiệm điện từ 10% đến 30% tùy theo ứng dụng, vì dù sao thì bộ điều chỉnh điện áp và đèn LED sẽ tiêu thụ phần còn lại.


2
cung cấp cho bo mạch điện áp càng thấp càng tốt, chỉ đủ để cung cấp năng lượng cho bộ điều chỉnh trên bo mạch Hoặc cung cấp 5V thông qua cáp USB bị hack.
Chim cánh cụt vô danh

13

Bạn có thể đọc qua biểu dữ liệu 200 trang, sau đó lộn xộn với một số thay đổi và đăng ký bit khó hiểu, nhưng tôi khuyên bạn nên thư viện này: http://playground.arduino.cc/Code/Enerlib

Ngoài ra, nếu bạn đang sử dụng Uno hoặc bất kỳ thiết bị nào có chip usb nối tiếp, bạn có thể vô hiệu hóa hoặc xóa nó.


3
Bạn nên đọc qua các dữ liệu tờ không có vấn đề bạn đang làm.
Sói Connor

9

Khi dự án của bạn đang hoạt động và bạn cần triển khai vào môi trường "sản xuất", bạn có thể chọn thay thế Arduino bằng meta ATMega328 hoặc bất kỳ chip gia đình ATTiny nào. Điều này sẽ loại bỏ tất cả những kẻ ăn năng lượng trên bo mạch Arduino mà bạn không cần. Tôi đã tìm thấy:

  • Bảng mạch Arduino của pin khối 9V - 56 mA
  • ATTiny85 trống trên 8 MHz không có chế độ ngủ, v.v. - 10 mA
  • ATTiny85 trần trên 8 MHz ở chế độ ngủ - 0,03 mA

Một số thông tin

Lập trình ATtiny với Arduino

Tập tin ATTiny cho Arduino IDE

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.