太陽光発電などの
自然エネルギーを使って発電する際
具体的に電圧はどのくらい出ているのか、
気になるところです。
一回一回、テスターで
測っているのも大変なので、
Arduinoを使って24時間、
自動で電圧を監視させてみました。
自然エネルギーなどを使った発電は
IoTセンサーとかに利用できるので、
自動電圧計があると、
いろいろと試行錯誤するときに便利だと思います。

使ったものは以下になります。
- Arduino UNO
- 電圧を測定したいもの(太陽光電池など)
- デスクトップPC
※ノートPCの場合は9V1.3AのACアダプターも必要です(秋月電子・スイッチサイエンス等で販売されています) 。
ノートPC(USB給電)で、
Arduinoを動かそうとすると、
測定した電圧が不安定で
上手く読み取れませんでした(後述)。
具体的な動作は、
電圧をArduinoで読み取って、
それをPCに送るだけです。
とってもシンプルですね。
Arduinoの給電方法
Arduinoを動かすには、
電源の供給が必要です。
電源供給の仕方は2種類あって、
大きく以下の方法になります。
- PCからUSBケーブルで供給
- ACアダプター
ここで注意が必要です。
デスクトップPCからUSBケーブルを
接続して供給する場合には大丈夫です。
しかしノートパソコンの場合だと
供給電圧が不安定なので、
Arduinoの動作に影響が出ます。
電圧を測定するので、
ある程度の正確度は必要になります。
測定値に雑音が載りすぎないようにするために、
しっかりと供給してあげましょう。
ちなみに、ノートPCから電源を供給させて、
乾電池の電圧を測定したら、
めちゃめちゃな結果になって、
正しい結果が得られませんでした。
実際つなげるとこんな感じです。
Aruduinoと乾電池の間に
外部抵抗値を挟んで、
電流を抑制した方が良いです。

もし測定したい電圧が
5V(定格電圧)を超える可能性があるなら、
Arduinoと測定したい装置との間に
外部抵抗を入れて、分圧させてください。
Arduinoの分解能は
10bit(2の10乗=1024)で、
5[V]÷1024=約4.8[mV]なので、
読み取れる限界は5mVまでです。
もっと高精度で読み取りたい場合は、
テスターを使うのが手っ取り早いかもしれません。
電圧自動測定のためのプログラム
Arduinoに書き込むプログラムは以下です。
5分毎に電圧を読み取ってます。
右上の虫眼鏡のボタンをクリックすれば、
シリアルモニタが開くので、測定値が見れます。

途中で値を5でかけて1024で割っています。
この処理をしないと、
シリアルモニタに表示される値は
0~1024の数字になってしまいます。
この0~1024という数字は、
それぞれが0.00~5.00[V]に
対応しているので、
変換しない場合は一目では読み取りにくいです。
※Serial.println(val, 3); とすれば、
少数第三位まで出力出来ます。
Serial.println()は、デフォルトだと
少数第2位までしか出力してくれません。
Arduinoで複数の電圧を測定する場合のソースコード
次はもし太陽光電池を2台同時に
24時間測定したい場合の話しです。
色々調べてみたんですが、
これが一番簡単なのではないかな
っと思っています。
アナログピンA0に一つ目をつなげたので、
2台目は別のアナログピンを使います。
私はA5を使いました。
グラウンドもアナログピン側に
2つ用意されいるので、アノード極を
もう一つのグランドに挿しましょう。
プログラムも上の内容と
まったく同じことを追記するだけです。
したがってこんな感じで、シンプルです。

それぞれの電池を5分毎に測定し、
各々が測定したら2分30秒待たせます。
ちなみに一度に2つの電圧を読み取って、
そして5分待っても大丈夫です。
測定が終わったら、
シリアルモニタで表示された値を、
Excelにコピペします。
そしてExcelのフィルター機能を使って、
値を1台目と2台目に分ければ完成です。
これで同時にいくつか電圧監視ができます!
最後まで読んでいただいてありがとうございます。