ハンダ面で引き回してるスズメッキ線とICソケットの足のハンダ付がうまく行っていなかった
こういうミスを避けるにはハンダ付けの経験値をあげていくしかないかな
ハンダ付けし直してハードウェアは完成(^q^/
あとはファームウェア(AVRのプログラム)をA/Dコンバータの読み取り値から
実際の電圧値と電流値に変換して表示するように変更するだけだ
ATMega328PのA/Dコンバータのbit数が10bitなので
基本的にはVccの値を1024分割したものを読み取り値に掛ければいい
正負電圧をATMega328PのGNDからVccの範囲で計測するために
-2.5V目標でATMega328PのGNDをずらしているので(このブログでは仮想GNDとかV-GNDと呼んでいる)
実際のGNDの読み取り値は512近辺になる
理屈としての計算式は以下の様になる
電圧
(電圧読み取り値 - GND電位読み取り値) * Vcc / 1024 / 電圧分圧比
電流
(電流をシャント抵抗で電圧に変換した読み取り値 - GND電位読み取り値) * Vcc / 1024 / 増幅率 / シャント抵抗値
使っている抵抗の抵抗値をLCRメーターで計っておいた(http://dad8893.blogspot.jp/2014/11/blog-post_76.html)ので抵抗値の誤差も計算に入れて実際にプログラミングする前にテスターでの測定値との誤差の確認をした
実用するつもりの単三×10本×2
負荷なしの値だ
よく使いそうな±2.5V、±3.3V、±5V、±9Vで計測
±12Vも調べたかったが電池がヘタっていて出力できなかった
薄紫色のところが誤差
電池がヘタってくるとV-GNDの値がふらつくので単三×9本×2でも計測した
ATMega328PのADCで計れるのは5V÷1024で4.9mV程度までなのでこの程度の誤差はしかたない(かな?)
仕様により(http://dad8893.blogspot.jp/2014/11/blog-post_23.html(^q^; 正負両方使った場合電流値は測定できないので
正側に負荷を接続して電流値も確認した
100Ω負荷で、20mA、50mA、100mAを測定
これもまずまず
負荷を10Ωにしてさらに測定
150mAと300mAを流したつもりで測定したが
黄色でマーキングした通りちょっとまずい値が出た(^q^;
測定用の負荷抵抗が10Ω/1W(たぶん)だったのが悪かったのかもしれない
可変両電源キットがMAX 0.5Aなので負荷が重い時の追試が必要かな(^q^;
https://github.com/ryood/Variable_Power_Supply/blob/master/%E5%AE%8C%E6%88%90%E5%BE%8CLCD%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%E5%80%A420141212.xlsx
完成おめでとうございます!
返信削除もしこれをネタに本を上げたら、アナログ系とデジタル系を同時に学ぶ入門書ができそう。
負荷大時の誤差増は原因が想像つかないですね。
中読んでませんが、今月発売のトラ技が電源系なのでなにか参考になるやも。
http://toragi.cqpub.co.jp/Portals/0/backnumber/2015/01/p079-081.pdf
ありがとうございます(^q^/
返信削除誤差が大きくなる原因は特定出来ました
ArduinoではなくてAVR直接も初めてだったし
測定用のアナログ回路も初めて
ついでに角穴をあける板金加工も初めてでした(^q^;
まさに入門編です
トラ技は読みたいなあと思いつつ
読んでる暇がないのでなかなか手付かずです