Arduinoで電圧計を作ってみる その3

前回作ったArduino電圧計を、ケースに入れて完全に単体で動くようにしました。

arduino 電圧計1 
これが完成した電圧計です。
青色7セグLED採用。
左下の赤いのは電源ボタンです。

arduino 電圧計2
電源ボタンはモーメンタリ式の物で、押している間だけ電圧が表示されるシンプルな電圧計となっています。

arduino 電圧計3
(中身)表面のレイアウトは割とシンプルですが・・・

arduino 電圧計5
(中身)裏面はこんなですw

パーツリスト

パーツ名 個数 記号 価格
ATMega328P  1   250円
7セグLED  1   250円
78L05  1   15円
2SC1815  4   20円(@4)
チップ抵抗1kΩ 12    
チップ抵抗10kΩ  1    
抵抗30kΩ  1    
抵抗100kΩ  1    
電解コンデンサ 100uF  2   20円(@10)
チップセラコン 0.1uF  1    
セラコン 1uF  1   10円
セラコン 10uF  1   20円
ユニバーサル基板  1   70円
プラねじセット  1   50円
スイッチ  1   85円
ケース  1   195円
ケーブル・その他      

約1000円程かかってますね。
デジタル電圧計としては、そこそこの値段ですね。もう少し安いと思ってましたが・・・w

回路図

arduino 電圧計回路図2

基本的に 12Vバッテリーの電圧を計る為の物なので、VIN と BATTERY +、GND と BATTERY -が共通で、電源電圧を測る設計です。
電源電圧は、レギュレータIC78L05を使っているので 8V~20V となります。
レギュレータを低ドロップタイプの物を使えば、5.5V程度~で動作が可能となりますが、上限は分圧抵抗の比率から21.6Vが限界です。
※当初、トランジスタ(2SC1815)を使った回路だったのですが、あまり意味が無いと言うことが分かったのでトランジスタ無しに修正しました。(2011/10/11)

ちなみに、この回路の動作中に流れる電流は、テスターの実測値で17.5mA程でした。
電源電圧を計る上で多少誤差の素になってるかも・・・

ATMega328P

Arduinoの醍醐味は、買って来た空のATMega328Pにブートローダーを書き込めば、自作Arduinoが作れてしまうこと。
今回は、Arduino Pro 8MHz のブートローダーを書き込み、Fuseを内蔵8MHz発振に指定することで、外付けの発振子を省略しました。
今回の様な用途では、これで十分です。

Arduinoのブートローダーの書き込み方法は

外付けAVRライタ無しでBootloaderを書き込む

を参考にしました。

内蔵8MHzオシレータ利用の際のFuse情報は、

内蔵8MHzでArduino互換 – ikkei blog

を参考にしました。

ArduinoはATMega328Pだけで無く、ATMega168やATMega8にも対応したブートローダーがIDEに同梱されているので、さらに数十円節約することも可能です。
また、ATMega88用にも、コンパイルさえすればブートローダーを作成する事が可能らしいです。

ATmega88(P)用ブートローダ

スケッチ(プログラム)

電圧計のスケッチ(プログラム)は、前回の物をそのまま使っています。

前回、100k + 30k の抵抗で分圧を行った際、無調整で誤差無く計れたのですが、これは偶然だったようです。
今回は、テスターで計った値と微妙に誤差が出てしまったので、テスターで計った電圧と、analogRead()で返される値で調整しました。

int getVoltage()<br />
{<br />
    double value;<br />
    value=analogRead(A0);<br />
<br />
//    value*=0.021158854166666666666666666666667;    //    = 5V / 1024 / 30k&Omega; * 130k&Omega;<br />
    value*=0.020971993410214168039538714991763;    // 12.73 / 607;<br />
    Serial.println(value);<br />
<br />
    return value*100;<br />
}

テスターの読みが12.73の時に、analogRead()で返される値が607だったので、単純に割って数値を出しています。

チップ抵抗

7セグLEDに繋がっている1kの抵抗と、リセット用の10kの抵抗は、省スペースの為に1608サイズのチップ抵抗を使いました。
1608サイズのチップ部品の半田付けは、最初は手間取りましたが、慣れれば十分に手半田が可能だと思います。

手半田した1608チップ抵抗
拡大すると・・・あまりキレイじゃ無いですねorz

1608サイズのチップ部品なら、この様に2.54mmピッチの基板のホールとホールの間に、抵抗を置くことが可能で、2012サイズだと、ホールとホールの間に置くのが若干厳しくなる感じです。(置けないことは無いですが)

最後に

電圧計の作成にかなりの時間を費やしてしまいましたが、分からない事が多くて検索しまくったり試行錯誤の連続で、これを作るだけでも大変勉強になりました。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>