Pil ömrünü uzatmak için Arduino'nun güç tasarrufu seçenekleri nelerdir (veya nasıl kullanırım)?


40

Güneş ve pille çalışan projeler için güç tüketiminin azaltılması bir zorunluluktur.

Bir zamanlayıcı kullanma hakkında bir şey bilmiyorum ve mikrodenetleyiciyi hiçbir şey yapmadığında uyku moduna geçirmek için ara verdim.

Ayrıca, daha fazla güç tasarrufu sağlamak için bazı çevre birimlerini devre dışı bırakabileceğinizi de okudum.

Bunları açıklayan bir sayfa: Güç Tasarruf Teknikleri

Benim sorum:

  • Güçten tasarruf etmek için başka hangi teknikler var?
  • Bu AVR özelliklerini kullanmayı kolaylaştıran herhangi bir kitaplık var mı?

Yanıtlar:


33

Not: Cevabım kabul edilse bile, okuyucunun (siz) gerçekten herhangi bir Arduino kurulu ile enerji tasarrufu yapmak istiyorsanız, Anindo'nun cevabını gerçekten okuması gerektiğini belirtmek isterdim. Tasarımınızdaki bu öğeleri ele aldığınızda, cevabımı okumalı ve MCU'yu düşük güç moduna nasıl ayarlayacağınız konusunda endişelenmelisiniz.

Bunu söyledikten sonra, Arduino'nun güçten tasarruf etmesini sağlamak için birkaç teknik vardır. Birkaçını listeleyeceğim ve daha sonra hepsini daha detaylı açıklayan bir sayfaya yönlendireceğim.

  1. Denetleyici önemli bir şey yapmazken (örneğin bir sensörün bir okuması ile diğeri arasında), denetleyiciyi komutla aşağıdaki uyku modlarından birine yerleştirebilirsiniz set_sleep_mode (SLEEP_MODE_PWR_DOWN). Her modun yanında, her modun yaklaşık güç tüketimi bulunur.

    • 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. Bozulma algılamasını devre dışı bırakın (düşük voltaj algılandığında denetleyiciyi kapatan devre).

  3. ADC'yi kapatın (analog-digita dönüşümü)

  4. Dahili saati kullanın

Ardından, denetleyiciyi uyku moduna geçirdiğinizde, denetleyiciyi uyandırmak ve onunla bir şeyler yapmak için aşağıdaki bir veya daha fazla mekanizmayı kullanmanız gerekir:

  • Bir sinyal ile uyanın

  • Bir zamanlayıcı ile uyanın

Bu yaptığım bir özet -

Bu makale çoğunlukla ATmega328P için geçerlidir ancak teknik, diğer Arduino uyumlu kontrolörler için de geçerlidir. TheDoctor'un dediği gibi, kontrol cihazınızın bu tekniklerden herhangi birini ve daha kesin olarak nasıl yapılacağından emin olmak için veri setini kontrol etmeniz gerekecektir.


2
Www.gammon.com.au/power sayfamı referans aldığınız için teşekkür ederiz . Üzerinde belirtilen tüm tekniklerin kullanılması, yaklaşık 100 nA (0,1 AA) tüketmenize olanak sağlamalıdır. Büyük bir etkiye sahip olabilecek diğer teknikler daha düşük bir frekansta ve daha düşük bir voltajda çalışmaktır. Artı, Anindo Ghosh'un voltaj regülatörleri kullanmadığı hakkında söylediklerini. Sıcaklık ve nem sensörünü yaptım - pil ile birkaç yıl sonra hala güçlü olan bu tekniklerin çoğunu kullanan pil destekli .
Nick Gammon

@NickGammon - Adil olmak gerekirse, mükemmel makalenizin daha iyi bir referansı hakettiğini düşünüyorum, bu yüzden cevabımı bu ölçüde düzenledim. Harika yazı için teşekkür ederim - çok açık ve eksiksiz! Ve Arduino'ya hoş geldiniz. Seni burada görmek güzel.
Ricardo,

24

Gerçekçi bir şekilde, bir Arduino kartındaki en büyük güç harcı, üzerindeki lineer voltaj regülatörüdür.

  1. Kart üzerindeki mikrodenetleyici, LED'ler veya diğer çevre birimleri, akım çekdiği sürece, lineer regülatör, difference between supply and board voltagex'e eşit güç harcar current drawn.

    Bu nedenle, ilk düzeltme karttaki güç göstergesi LED'inin bağlantısını kesmek ve diğer LED'lerin mümkün olduğunca kullanılmaması olacaktır. İkinci olarak, panoya, dahili regülatöre güç sağlamak için yeterli olan en düşük voltajı verin.

  2. Orijinal tasarımlarda, kullanılan voltaj regülatörleri düşük sakin akımla övünmez. Bu, pano içerisinde hiçbir güç çeken bir şey olmasa bile, regülatörün kendisi her zaman adil bir miktar güç harcar.

    Kolay bir düzeltme, yerleşik regülatörün, son derece düşük sakin akım için derecelendirilmiş bir LDO (düşük bırakmalı doğrusal regülatör) ile değiştirilmesidir. Çeşitli satıcı sitelerinde yapılan parametrik aramalar, muhtemel alternatifleri sağlayacaktır.

  3. Yukarıdaki adımlarla bile, Arduino kartı, seçilen LDO bunu destekliyorsa, LDO'yu düşük güç moduna ayarlamak için bir mekanizma sağlamamaktadır. Enerji tasarruflu tasarımlar tipik olarak adil bir miktar enerji tasarrufu sağlamak için voltaj regülatörleri üzerindeki bir "uyku modu" pimini kullanır - burada bir seçenek yoktur.

Mikrodenetleyici seviyesinde uygulanan tüm olası güç tasarrufu modları ve püf noktalarında bile, Arduino kutudan çıkan ultra düşük güçte bir cihaz olarak tasarlanmamıştır. Birkaç önemsiz uygulama ile denemeler yaptıktan sonra, voltaj regülatörü ve LED'lerin geri kalanını tüketeceği için, uygulamaya bağlı olarak gerçekçi olanın en iyisini elde etmenin uygulamaya bağlı olarak% 10 ila% 30 güç tasarrufu olduğunu buldum.


2
panoya, dahili regülatöre güç vermek için yeterli olan düşük voltajı verin veya 5V'luk bir USB kablosu ile besleyin .
Anonim Penguen

13

200 sayfalık veri sayfasını okuyabilir ve ardından kafa karıştırıcı bit kaydırma ve yazma işlemleriyle uğraşabilirsiniz, ancak bu kütüphaneyi öneririm: http://playground.arduino.cc/Code/Enerlib

Ayrıca, bir Uno veya USB-seri çipli herhangi bir tane kullanıyorsanız, bunu devre dışı bırakabilir veya kaldırabilirsiniz.


3
Sen olmalıdır olursa olsun veri sayfası üzerinden okumak neler yaptığını.
Connor Wolf

9

Projeniz çalıştığında ve "üretim" ortamına konuşlandırmanız gerektiğinde, Arduino'yu çıplak bir meta ATMega328 veya ATTiny ailesi yongalarından herhangi biri ile değiştirmeyi seçebilirsiniz. Bu, ihtiyacınız olmayan Arduino kartındaki tüm güç yiyicilerden kurtulacak. Buldum:

  • 9V blok batarya Arduino kurulu - 56 mA
  • ATTiny85 uyku modu vb olmadan 8 MHz'de çıplak - 10 mA
  • ATTiny85 uyku modunda 8 MHz'de çıplak - 0.03 mA

Biraz daha bilgi

Arduino ile ATtiny programlayın

Arduino IDE için ATTiny dosyaları

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.