ESP32で電圧測定をしてみるも、ちょっと問題が(内臓ADコンバータをanalogReadで使用)
野暮用ですが、そろそろリポバッテリー用の電圧計を作らねば。
当面の目標は2セルか3セルのリポバッテリーの電圧状態を定期的に検知したいのですが、、、
もっとどんどん進むかと思っておりましたが、思いのほか勉強する事が多くなかなか進みませぬ。
電圧計を作るにはADコンバータの使い方からですし
わざわざマイコンを使うのですから、もっと機能を付けたくなりますし
しかし現状は、やっとこさトランジスタがどういうものかを知った程度で。
なんか前途多難ですn
なんとか気持ちを奮い立たせて、まずは低電圧でADコンバータを使ってみようと思います。
いきなり壊さない様に、まずは3.3Vからのチキンハート。
3.3Vですので、ESP32に内蔵のADコンバータにそのまま突っ込んでも大丈夫とは思いますが、、
将来的には12V以上の計測が目標ですので、分圧してやってみます。
まずは分圧
上限は3.3Vですのでどんな配分でも構わないと思いますが、、
先日Lチカした時に使った220Ωと330Ωの抵抗をそのまま使います。
抵抗の紙束から外すと見分けるのが大変ですので、なるべく再利用しようかと。
新しいの外すと、どれがどれだか判らなくなりそうですしおすし
一応テスターで計っておきます。
220Ωが217Ω(実測)、330Ωが328Ω(実測)でした。
電源を用意
ESP32のボードから出ている3.3Vピンは3.27V(実測)
外付け電源の3.3Vは3.22V(実測)でした。
配線、回路図
適当に前回Lチカで使ったGPIO32を挿しておきます。
電源が外にあるとラクでいいですね
330Ωと220Ωの順番で繋いでるので、GPIO32には3.3Vに対し1.32Vの電圧がかかる、、、筈
※ 220Ω / (330Ω + 220Ω) = 1.32V
たぶん、、、
何でも屠る感じの人が言ってた。
ESP32のADコンバータとスケッチを用意
さて、どんな感じで値が取れるのかさっぱりですので、とりあえずスケッチはシンプルに
さてじゃいきますか
うぇーい、、
なんぞこれ
多分ですけど
多分ですけど
GNDに落としてないので、俗に言う「浮いてる」ってやつじゃないですかねぃ
なるほど、固定しないとIOピンってのはこんなになるんですな・・・
恐ろしい
これでどうや。
なんとなく値が安定した様な感じに。
平均で1392~1393くらいかな。
計算式はソースにありますがこんな感じ。
3.3V / 4096 * 1392 = 1.121484375
1.121484375 / ( R2 / R1 + R2 ) = 2.8037109375 V
※実測値:3.22V
んー? 0.42Vもテスターと違うンゴねぇ・・・
とりあえずこれは置いておいて、ESP32の3.3Vピンからも測ってみます。
1438~1440くらいなので1439くらいかな
3.3V / 4096 * 1439 = 1.1593505859375
1.1593505859375 / ( R2 / R1 + R2 ) = 2.89837646484375 V
※実測 3.27V
こちらもおよそ0.4V(0.38V)ほどテスターよりも低い。
何だかどちらもだいぶ低く出てますね。
ブレッドボード上の接触が悪いのもあるのでしょうけれど、ちょっと釈然としない数値。
折角ですので5Vも計測してみましたので載せておきます。3.3V(外部) 3.3V(ESP32) 5V(外部) 5V(ESP32) analogRead 1392 1439 2205 2303 計算電圧 2.80V 2.90V 4.45V 4.65V 実測電圧 3.22V 3.27 4.77V 4.91V 実測差 0.42V 0.38V 0.32V 0.26V
んー、なんだろう
ブレッドボードの接触が悪いのは仕方ないとしても、なんか釈然としませぬね
電圧が高くなれば少し差が減る感じですが、、
なんか係数的なものがズレてるんでしょうか
これだけの差があると、ちょっと誤差とは言えず実用は出来ないでするね。
もうちょっと調べてみます・・・
ディスカッション
コメント一覧
まだ、コメントがありません