何日も実行し続けるArduinoの省電力の5つのヒント

何日も実行し続けるArduinoの省電力の5つのヒント

ArduinoボードはDIYテクノロジーの様相を変えました。ミニチュアArduino信号機の作成などの単純なプロジェクトは、基本的な電子機器やプログラミングについて初心者に教えるのに最適です。





Arduinoはホームプロジェクトに最適で、バッテリーパックを取り付けることで移動中に使用できます。問題は、最も分厚いバッテリーでさえ、小さなArduinoボードでもすぐに使い果たされることです。





コンピューターからコンピューターへの転送方法

Arduinoを本当に長期間実行したい場合は、いくつかの調整と変更を行う必要があります。





1.Arduino低電力ソフトウェアライブラリ

Arduinoの消費電力を変更できるソフトウェアライブラリがいくつかあります。 Arduinoを一定時間ディープスリープ状態にすることで、操作間の電力を節約できます。これは、気象観測所などの遠隔地でセンサーの読み取りを行うマイクロコントローラーや、大型デバイスのサブ回路の検知に特に役立ちます。

NS 低電力ライブラリ Githubユーザーによるrocketscreamは、電力を節約するのに最適な使いやすいライブラリの例です。ライブラリのサンプルコードの一部に基づいて、次のコードを検討してください。



#include 'LowPower.h'
// setup() your sensors/LEDs here
void loop()
{
// This next line powers the arduino down for 8 seconds
//ADC means analogue to digital conversion, and BOD for brown out detection
//both are turned off during the sleep period to save power
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

//After each sleep, you can instruct the Arduino to carry out its tasks here - for example, take a temperature reading and send it to a server.
}

このコードは良いスタートです。すでに組み込まれている方法を使用して消費電力を削減するだけでなく、潜在的にコストのかかるものをオフにします アナログからデジタルへの変換 (アイドル状態でも電力を使用できます)と 電圧低下検出 入力電圧が低くなりすぎると、Arduinoの実行中のコードを停止します。

これは、Arduinoが引き出す電力量を削減し始めるためのシンプルですが効果的な手段です。しかし、これよりもはるかに深く進むことができます!





2.Arduino内蔵の省電力

Arduinoプログラミング言語には独自の組み込みがあります 寝る 省電力に役立つように設計された機能。スリープ機能と連携して使用 割り込み 句、Arduinoが再び目を覚ますことができるようにします。

Arduinoには、スリープサイクルを中断するために設計された特定のピンがあり、セットアップ機能を使用してそれらにアクセスできます。





#define interruptPin 2
void setup()
{
//interrupt pin MUST be Arduino pin 2 or 3 on Uno
//set the pin to pull up mode
pinMode(interruptPin, INPUT_PULLUP);
}

これが割り込みピンとして設定されたので、Arduinoを安全にスリープ状態にすることができます。これを行う簡単な方法は、2つの小さな関数を作成することです。

void sendToSleep()
{
//enable sleeping - note this primes sleep, not starts it!
sleep_enable();
//attach the interrupt, specify the pin, the method to call on interrupt,
//and the interrupt conditions, in this case when the pin is pulled low.
attachInterrupt(interruptPin, wakeUpAgain, LOW);
//actually activate sleep mode
sleep_cpu();
//code continues on from here after interrupt
Serial.println('Just awoke.');
}
void wakeUpAgain()
{
//stop sleep mode
sleep_disable();
//clear the interrupt
detachInterrupt(interrputPin);
}

上記のコードは、Arduinoをスリープモードに送信する簡単な方法であり、接続することで再びウェイクアップできます ピン2GND ピン。 Arduino Unoがスリープモードにある間、総消費電力は約11mA削減されます。代わりに、Pro Miniを使用すると、通常の25mAの電力使用量からわずか0.57mAに低下することが期待できます。

割り込みは、消費電力を下げるための優れた方法です。 Kurksブログには、それらに関する詳細な投稿がいくつかあります 、初心者のための割り込みをわかりやすく説明するのに役立ちます。

3.Arduinoのクロック速度を遅くします

Arduinoのクロック速度によって、1秒間に実行できる操作の数が決まります。ほとんどのArduinoボードは8または16MHzプロセッサで動作しますが、Teensy3.6などの一部の派生ボードは最大180MHzの処理速度を誇っています。これが多くの理由です DIYハッカーはTeensyボードを使用するのが好きです 彼らのDIYプロジェクトでArduinoを超えて。

この処理能力はすべて電力コストがかかり、フルクロック速度を採用する多くのユースケースではやり過ぎです。これは、ソフトウェアを介してクロック速度を調整することが違いを生む可能性がある場所です。

あなたに警告しないのは私を失望させるでしょう、 クロック速度を変更すると、ブートローダーの問題が発生する可能性があります 間違って行うと、スケッチをアップロードできないArduinoが残る可能性があります。

クロック速度を変更したい場合は、Arduino IDEでツールを作成して、CPU周波数をその場で変更できるようにします。 PieterPの詳細ガイド あなたが始めるのを助けることができます。

4.電力を消費するArduinoコンポーネントを交換します

Arduino Unoは初心者に最も人気のあるボードであり、ほとんどのArduinoキットは公式モデルまたはクローンモデルのいずれかを提供します。その大きなフォームファクターとホットスワップ可能なマイクロチップにより、実験に最適です。また、3.3vコンポーネントのオンボード電圧変換に加えて、入力電圧の広い容量により、ほぼすべての目的に適合します。

この機能のすべてが、電力使用量の点で安くなるわけではありません。これを念頭に置いて、電力を節約するためにArduinoUnoを物理的に変更するためにできることがいくつかあります。

Arduino Unoの電圧レギュレーターは、ボード上で最大の単一電力ドレインを引き起こします。入力電源からボード自体に安全に最大7vまで降下する必要があるため、これは特に驚くべきことではありません。レギュレーターをより効率的なものに交換することでこれを回避しようとする人もいますが、これは実際には問題を解決しません。

DefProcエンジニアリングのPatrickFennerは、Unoの省電力戦略をカバーする彼のブログ投稿で優れたソリューションを考え出しました。電圧レギュレーターを完全にDC-DCバックコンバーターに置き換えることで、彼はマイクロコントローラーの消費電力を半分にすることができました。

5.独自のArduinoを作成する

プロジェクトに必要な電力のみを使用する確実な方法は、マイクロコントローラーを独自の仕様に合わせて設計することです。過去に、公式ボードの数分の1のコストで独自のArduinoを構築する方法を示しました。

回路のサイズと範囲をより細かく制御できるだけでなく、これにより、スタンバイでの消費電力を15.15mAに、スリープモードでの消費電力をわずか0.36mAに下げることができます。これらの数字はから取られています 信じられないほど詳細な投稿 NickGammonによる彼のフォーラム。

この投稿は、Arduinoの省電力の他の多くの側面をカバーしており、モバイル電源からもう少し時間を絞り出そうとするときに参照する素晴らしいリソースです。

大きなアイデアと小さなパワーフットプリントにArduinoを使用する

あなたが取り組んでいるとき あなたの最初の初心者Arduinoプロジェクト 、消費電力はおそらくそれほど問題ではありません。

あなたのアイデアが大きくなり、より多くの考えが必要になるにつれて、セットアップを合理化する方法を学ぶ価値があります。適切なArduinoボードを確実に入手することと、それを最大限に活用するようにセットアップすることの間で、真にユニークで便利なデバイスを作成するために長い道のりを歩むことができます。頑張って、いじくりまわしてください!

xbox360ハードドライブをインストールする方法
共有 共有 つぶやき Eメール FBIがHiveランサムウェアに対して警告を発した理由は次のとおりです

FBIは、特に厄介なランサムウェアについて警告を発しました。これが、Hiveランサムウェアに特に注意する必要がある理由です。

次を読む
関連トピック
  • DIY
  • バッテリー寿命
  • Arduino
  • ハードウェアのヒント
著者について イアン・バックリー(216件の記事が公開されました)

Ian Buckleyは、ドイツのベルリンに住むフリーランスのジャーナリスト、ミュージシャン、パフォーマー、ビデオプロデューサーです。マッドサイエンティストになることを期待して、執筆中やステージ上にいないときは、DIYの電子機器やコードをいじっています。

イアン・バックリーのその他の作品

ニュースレターを購読する

ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。

購読するにはここをクリックしてください
カテゴリ Diy