ArduinoUNOにeneloopで電源供給
電源ポートに挿さる乾電池ソケット付きの電源を買おうと思ったのですが、
「スタンドアロンで動かすのでUSBポート使わないじゃないか」と思い付き、
手持ちのeneloop stick boosterで
SANYO eneloop USB出力付ハンディ電源(単3形2個セット) KBC-D1BS
- 出版社/メーカー: 三洋電機
- 発売日: 2010/10/21
- メディア: エレクトロニクス
- 購入: 27人 クリック: 388回
- この商品を含むブログ (45件) を見る
動くんじゃないの?と繋いでみました。
そしたらちゃんとArduino UNOの電源LEDが点いたので、
今度は「単三Eneloop2本でどのくらい持つのか?」を試したくなりました。
まず、Arduino UNOにSDカードソケット付きEthernet Shieldを挿して、
- 出版社/メーカー: スイッチサイエンス
- メディア: エレクトロニクス
- 購入: 4人 クリック: 17回
- この商品を含むブログ (1件) を見る
「1秒に1増える変数の値をSDカード上のLOG.txtに書き込む」スケッチを書き込みました。
#include <SPI.h> #include <SD.h> int data = 0; void setup() { //----- Digital Pin -----// pinMode(13, OUTPUT); //----- Serial port -----// Serial.begin(9600); //----- SD card -----// Initilize SD card Serial.println("Initilizing SD card..."); if (!SD.begin(4)) { Serial.println("Failed!"); return; } Serial.println("Suceeded!"); } void loop() { String dataString = ""; dataString += "OK:"; dataString += String(data); Serial.println(dataString); //OK:(電源入れてからの秒数) File dataFile = SD.open("log.txt", FILE_WRITE); if (dataFile) { digitalWrite(13, HIGH); dataFile.println(dataString); dataFile.close(); Serial.println("success writing log.txt"); } else { Serial.println("error opening log.txt"); } digitalWrite(13, LOW); data++; // data値は1秒に1増える delay(1000); }
動作確認用にシリアルポートの通信がいくつか書かれていますが、
気にしないでください。
で、一回PCからUSBケーブルを抜き、eneloop stick boosterに繋いで電源ON。
これで電源が落ちた時にLOG.txtを見れば何秒まで動作していたかが分かるという寸法です。
こんな感じ。(あ、SDカード挿してない…)
電源ON後はほっといて、寝ました。
朝起きてArduino UNOが電池切れで停止していることを確認し、
SDカードを抜いて中のLOG.txtを確認してみました。
すると、
となっており、約10500秒なので、1時間3600秒だから3時間弱動いていた計算になります。
ここまでやっておいてなんですが、この値はArduinoUNO側の構成によって変わります。
私が考えているのは電源コードレスで、Bluetoothを使ってPCとシリアル通信しようと考えているので、
その場合はBluetoothモジュールの消費電力によって変わるでしょう。
でも、ま、たぶん大きくは変わらないってことで、
電源ONしてすぐに動作停止ってことはないことが分かりました。