CIRCUIT / 分圧・ADC
分圧・ADC計算ツール
抵抗2本でバッテリ電圧をADCの入力範囲に落とすとき、電圧・変換コード・常時流れる電流・出力インピーダンスを一度に確認できます。
使っている式
分圧回路の出力電圧は、下側抵抗が全体に占める割合で決まります。負荷電流が無視できる(ADC入力が ほぼ電流を引かない)前提です。
Vout = Vin × R2 / (R1 + R2)
ADCコード = round( Vout / (Vref / (2^bits − 1)) )
換算係数 = (R1 + R2) / R2
常時流れる電流 = Vin / (R1 + R2)
出力インピーダンス = R1 ∥ R2 = R1·R2 / (R1 + R2)出力インピーダンスを見る理由
マイコンのADCはサンプリング時に内部のコンデンサを充電します。分圧点から見たインピーダンスが 高いと、サンプリング時間内に充電しきれず実際より低い値が読めます。抵抗値を大きくすれば消費電流は 下がりますが、この誤差が増えます。両方をここで同時に見られるようにしてあります。
目安として出力インピーダンスは10kΩ以下、それ以上にしたい場合はサンプリング時間を長く設定するか、 分圧点に0.1µF程度のコンデンサを入れて電荷を供給させます。ただしコンデンサを入れると応答が 鈍るので、電圧監視のような遅い信号にだけ使えます。
入力例
- Li-Po 3S(12.6V満充電)を3.3V ADCで読む:R1 = 24kΩ、R2 = 5.6kΩ。 満充電時のADC入力が約2.38V、出力インピーダンスは約4.5kΩ、常時流れる電流は約0.43mA。
- 放電終止電圧まで見る:3S の放電終止を9.0Vとすると、同じ抵抗でADC入力は 約1.70V。満充電との差が0.68Vなので、12bit ADCなら約840カウントぶんの分解能で見られます。
含んでいない誤差
- 抵抗の許容差。E24系列の±5%を2本使うと、比の誤差は最悪で約±10%になります
- 基準電圧の絶対精度と温度ドリフト。マイコン内蔵レギュレータをVrefにしている場合は特に大きい
- ADCのオフセット・ゲイン誤差、入力リーク電流
- 抵抗の自己発熱による抵抗値変化(この電流域ではほぼ無視できます)
実機では、既知の電圧を1点測って換算係数を校正するのが確実です。抵抗の許容差はそれでまとめて 吸収できます。