Cung cấp năng lượng cho Arduino từ pin 9V


16

Chiều hôm qua tôi đã để Arduino của tôi chạy trên pin 9V kiềm mới (kết nối với Vin, - được kết nối với GND). Sáng hôm nay (16 giờ sau), màn hình LCD không còn hiển thị nữa và khi tôi đo độ bay hơi, tôi thấy pin đã cạn kiệt đến mức ngạc nhiên - điện áp nhàn rỗi của nó chỉ còn 7 V.

Thiết bị của tôi là Arduino Uno với LCD 2x16 với đèn nền LCD và 2 cảm biến DS18B20. Có phải bình thường cho thiết bị như vậy làm cạn kiệt pin 9V này nhanh không?

Tôi đã đọc câu trả lời cho 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 là gì? câu hỏi và tôi nghĩ những gì tôi thấy có thể liên quan đến điều này, tuy nhiên tôi không chắc chắn. Nếu có, có một số sơ đồ phổ biến làm thế nào để kết nối Arduino để được cung cấp năng lượng bằng pin hiệu quả?


Tôi sẽ thử gắn đồng hồ vạn năng và đo dòng điện từ pin với toàn bộ và với màn hình và cảm biến bị ngắt kết nối. Đừng cố tối ưu hóa arduino nếu đó là thứ gì đó chiếm phần lớn năng lượng.
BowlOfRed

@bowlofred "đo dòng điện từ pin" - Sẽ làm được, dù sao tôi cũng cần mua một tế bào 9V mới trước. :)
Suma

1
Pin 9V rất nhỏ, chỉ khoảng 500mAh. Chỉ riêng đèn nền LCD sẽ giết chết nó trong vài giờ.
hobbs

Cách tiếp cận triệt để hơn để tiết kiệm năng lượng: 1. Sử dụng bảng TI MSP430 thay vì Arduino; 2. Sử dụng bộ điều chỉnh phi tuyến tính; 3. Sử dụng LCD không có đèn nền (như trong máy tính).
Vi.

@bowlofred Toàn bộ điều hiện tại là 61 mA. Không có đèn nền, nó là 57 mA, không có LCD và không có cảm biến, nó là 56 mA.
Suma

Câu trả lời:


21

Sự tiêu thụ năng lượng

Các bo mạch Arduino sử dụng một chút năng lượng so với các hệ thống nhúng khác có chức năng tương tự.

Có ba yếu tố chính:

  • Bộ điều chỉnh tuyến tính 5V NCP1117 ( datasheet ) trong Arduino UNO R3 ( sơ đồ ) có dòng điện hoạt động khoảng 6mA.

  • ATMega328P ( bảng dữ liệu ) thu hút khoảng 5mA @ 8 MHz và 5V, và có thể nhiều hơn gấp đôi ở mức 16 MHz.

  • user2973: ATMega16U2 được sử dụng cho giao tiếp USB cũng rút ra khoảng 13mA.

Đèn LED và các thiết bị ngoại vi khác cũng vẽ một số hiện tại. Trong mạch của bạn, đèn nền LCD có thể cũng vẽ 4mA.

Khi giảm 9V xuống 5V thông qua bộ điều chỉnh tuyến tính, gần một nửa công suất bị mất bởi bộ điều chỉnh do giảm 4V. Duncan bình luận rằng đây gần như tăng gấp đôi tĩnh điện bốc thăm từ 9V cũng như sức mạnh cần thiết cho mỗi mA của 5V, từ 4 / 9ths về sức mạnh bị lãng phí dưới dạng nhiệt do điều chỉnh điện áp. Một bộ điều chỉnh chuyển mạch hiệu quả sẽ đưa ra 5V với ít năng lượng lãng phí, giúp giảm hiệu quả hiện tại của pin xuống 4/9 giây.

Pin Duracell 9V ( bảng dữ liệu ) giảm từ 9V xuống 7V trong khoảng 7,5 giờ với mức rút 50mA. Do đó, một phỏng đoán sơ bộ là mạch của bạn rút ra khoảng 25mA, âm thanh về bên phải dựa trên mô tả về mạch của bạn.

Lưu ý, tuổi thọ pin kiềm là phi tuyến tính đối với hiện tại. Đối với dòng điện rất nhỏ (<1mA), tuổi thọ của kiềm tiếp cận với pin lithium.

Bắt xuống

Dưới đây là một số mẹo để giảm mức tiêu thụ hiện tại:

  • Bộ điều chỉnh: Thay thế bộ điều chỉnh bằng một bộ điều chỉnh dòng điện thấp hoặc tốt hơn là bộ điều chỉnh chuyển mạch (cũng với dòng điện hoạt động thấp). Một bộ điều chỉnh chuyển mạch sử dụng 'xung' của dòng điện và một số cuộn cảm và tụ điện bên ngoài để cung cấp một đầu ra điện áp ổn định hợp lý. Nó không lãng phí năng lượng như giảm điện áp của bộ điều chỉnh tuyến tính và hiệu quả ở mức cao 90% là có thể.

    • Có các bộ chuyển đổi buck (bước xuống) lấy pin làm đầu vào, sau đó kết nối trực tiếp với 5V và GND, bỏ qua VIN và bộ điều chỉnh. Cái này từ Pololu cả hai bước lên và xuống, và có dòng tĩnh 0,1mA.
    • Ngoài ra, bạn có thể sử dụng một số pin kiềm 1,5V và bộ chuyển đổi tăng cường (tăng cường) để có được điện áp lên đến 5V (ví dụ: sản phẩm này từ Sparkfun). Có vẻ như bộ chuyển đổi boost thường được dự trữ nhiều hơn.
    • Cuối cùng, bạn có thể mua pin lithium có thể sạc lại với tấm chắn sạc. Ưu điểm này là không phải mua pin mới, và lớn hơn một chút so với pin 9V, pin lithium có dung lượng lớn hơn nhiều. Một sản phẩm thực sự tuyệt vời là bộ chống nước seeeduino stalker bao gồm mạch sạc, pin, bảng điều khiển năng lượng mặt trời và các tính năng khác.
  • ATMega328P: Thay vì sử dụng delaycho thời gian và quay trong loopkhông ngừng chờ đợi một cái gì đó xảy ra, tái viết mã của bạn để nó đi vào giấc ngủ ở giữa cảm biến đọc, vv Có một vài thư viện điện năng thấp ra khỏi đó mà sử dụng bộ đếm thời gian cơ quan giám sát cho thức dậy định kỳ từ giấc ngủ đó là tiện dụng. Bạn có thể nhận mức tiêu thụ hiện tại của ATMega328P dưới 0,1mA trong khi ngủ.

  • LCD: Tắt đèn nền hoặc thậm chí toàn bộ LCD. Thêm một nút vào thiết kế mà người dùng có thể ấn để kích hoạt màn hình LCD và tắt nó sau một lượng không hoạt động.

  • Thiết bị ngoại vi: Hầu hết các chip ngoại vi cũng có chế độ ngủ làm giảm đáng kể mức tiêu thụ năng lượng của chúng. Hủy bỏ đèn LED điện và các chỉ số khác không cần thiết.

  • ATMegu16U2: user2973 bình luận Có vẻ như con chip này khá ngốn điện ( user2973 ). Nó có thể được gỡ bỏ để tiết kiệm năng lượng và chỉ sử dụng UART thay thế, nhưng điều đó có vẻ như quá mức cần thiết. Có các bo mạch Arduino Pro chỉ là Arduino trần mà không có giao diện USB có thể được sử dụng thay vì UNO.

  • Pin: Các tế bào kiềm khác có dung lượng lớn hơn nhiều. Ví dụ, một 1,5V AA có hơn 2000mAh cho dòng điện thấp. Sử dụng các tế bào AA cộng với bộ chuyển đổi tăng có thể tăng thời gian trước khi thay pin. Sử dụng các tế bào D (16000mAh) và nó sẽ chạy khá lâu. : D

Tóm lược

Với việc cung cấp năng lượng và mã hóa phù hợp, bạn có thể có được tuổi thọ hợp lý từ pin. Sử dụng các nguyên tắc trên, tôi đã tạo ra một bảng phái sinh Arduino đo một vài cảm biến và lưu các bài đọc vào thẻ SD cứ sau nửa giây. Nó có thể tồn tại trong khoảng 4 tháng với 2 pin AA, do đó chắc chắn có thể có năng lượng thấp và vẫn tồn tại trong hệ sinh thái Arduino.

Con chip tôi sử dụng cho công suất thấp trong bo mạch của mình là LTC3525-3.3V. Nó có điện áp đầu vào thấp đến 0,8V và tăng lên đến 3,3V và cũng có sẵn phiên bản 5V. Tôi đã thiết kế một PCB cho con chip này vì không có đột phá sẵn sàng và trong bảng dữ liệu có các thiết kế tham chiếu. Các phê bình chính để chọn chip này là nó vẫn có hiệu quả cao ở dòng điện rất thấp. Một số bộ chuyển đổi khác cần một bản vẽ hiện tại tối thiểu nhỏ.

Người tiêu dùng năng lượng lớn nhất trên bảng kết thúc là thẻ micro SD. Nó có thể thay đổi giữa 0,1mA và 1,5mA của dòng không tải tùy thuộc vào nhà sản xuất. Tôi đã tìm thấy thẻ Verbatim và Lexar để tiêu thụ ít năng lượng nhất. Tôi sẽ cập nhật câu hỏi EE.SE này với kết quả kiểm tra mức tiêu thụ năng lượng thẻ micro SD của tôi.


1
Câu trả lời thấu đáo. Lưu ý: mức tiêu thụ điện của usb thành nối tiếp atmega16u2 sẽ rất đáng kể sau khi giải quyết các vấn đề khác.
dùng2973

@ user2973 bạn có biết nó có thể là gì không? Tôi có thể lấy các đặc điểm điển hình ra khỏi bảng dữ liệu, nhưng tôi đã không đưa nó vào vì tôi không biết phần sụn có ngủ trong đó không. Nếu nó chỉ chạy bình thường thì nó là 12mA @ 5V, đây là một kết quả đáng kể.
geometrikal

@geometrikal, làm thế nào để bạn cung cấp năng lượng cho Arduino với 2 pin AA? Đó chỉ là 3 volt, dưới mức tối thiểu. Là nguồn cung cấp năng lượng mà bạn đề cập đến một nguồn cung cấp buck / boost? (Câu trả lời nổi bật bằng cách <bình chọn>.)
Duncan C

1
@geometrikal, bạn có phiền khi đăng một liên kết đến một trong những nguồn cung cấp năng lượng mà bạn đề cập, như liên kết từ SparkFun không? Tôi chỉ thực hiện một số tìm kiếm và không thể tìm thấy nó. Đối với cuộc sống lâu dài, nguồn cung cấp kiểu buck có vẻ rất quan trọng, vì dòng điện nhàn rỗi từ một bộ điều chỉnh điện áp thông thường là rất đáng kể.
Duncan C

1
@geometrikal, bạn đã nói "... Ngoài ra, khi giảm 9V xuống 5V thông qua bộ điều chỉnh tuyến tính, gần như mất điện do bộ điều chỉnh do giảm 4V" Không làm tăng gần gấp đôi mức rút điện POWER từ 9V cũng như công suất cần thiết cho mỗi mA của 5V? (Vì 4/9 năng lượng bị lãng phí dưới dạng nhiệt bởi bộ điều chỉnh điện áp.) Có vẻ như chạy nó ra khỏi bộ chuyển đổi buck như TSR 1-2450 sẽ tốt hơn
Duncan C

3

Tôi nghĩ rằng Arduino Uno không phù hợp cho các dự án như vậy. Một số thành phần trên bảng vẽ quá nhiều ampe, như @geometrikal chỉ ra chính xác. Nếu bạn gặp phải một thách thức, tôi sẽ khuyên bạn nên đưa dự án của mình lên một cấp độ khác và đi barebones.

Sparkfun có một bài viết hay về cách tăng tuổi thọ pin, sử dụng ATmega328 mà bạn cũng có trên Arduino Uno của mình: https://www.sparkfun.com/tutorials/309

Tìm cách để tạo ra một mạch chỉ với các thành phần mà bạn thực sự cần, và để vi điều khiển của bạn ngủ càng nhiều càng tốt.


1

Một lựa chọn khác là tìm kiếm một phần cứng (Arduino Clone) đã được thiết kế cho nó, như bảng này: https://bitbucket.org/talk2/whisper-node-avr/overview

Kết hợp phần cứng như vậy với các kỹ thuật mã tiết kiệm năng lượng, bạn sẽ có thể chạy các dự án trong thời gian khá dài trên pin!

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.