
今回「
自作ブースト計を作ってみた」の全ての表示は「
A/D変換」で得たデータを表示しています。
「
A/D変換」とは、アナログデータをマイコンが読めるデジタルデータに変換する事だけど、実際にPICマイコンでのアナログデータ換算は、「
電源リファレンス」に対する割合で換算を行っています。
例えば、PICマイコンでよく使う「
10bit分解能」での測定の場合…(10bit = 1024の分解能)
あるアナログデータを5Vの「電源リファレンス」でA/D変換を行って、その変換結果が512という値が返ってきた場合、5Vで1024の分解能をもっているということなので、
5(V) X 512 / 1024 = 2.5(V) だという事。
ってことは、この「
電源リファレンス」ってのが計算のベースになっており、この電圧が計算には重要であるって事がわかります。この「電源リファレンス」の簡単な設定方法の一つに「マイコンに入力されている電源を使う」という設定にする事です。ですが、この方法は電圧の変動によって計算結果も顕著に変わってしまいます。そこで今回使った「
PIC16F1938」には「
固定電圧リファレンス」ってのがあって、あらかじめ校正されたリファレンス電圧が機能として用意されています。「1.024V」「2.048V」「4.096V」から電圧を選ぶ事ができて、マイコンに入力されている電源以下の電圧ならどれでも使用できます。これなら、回路を組んで電圧の実測をしてプログラムを書き換える必要もなく、他の電源に繋げても正確な結果が得られます。
今回の回路は「4.096V」の電圧を使ってデータを計算させています。
以下のような場合、A/D変換をする時にはちょっと工夫が必要です。
①
「電源リファレンス」よりも大きな電圧を測定する場合
…そもそもマイコンに大きな電圧をかけるのはNG
②
「電源リファレンス」に比べ極小の電圧を測定する場合
…上の計算だと分解能は4.9mV程度の分解能しかない
まず、①の「
電圧が大きすぎる」場合ついては今回の「
自作ブースト計を作ってみた」での「電圧計」測定は、バッテリー電圧を測るので12〜14Vと高い電圧を測定します。このままマイコンには入力できません。このような場合、今回は上の図のような「
抵抗分圧」回路を組んでやって電圧を分圧してやりマイコンに入力しました。上の回路では…
10kΩ / (10kΩ + 40kΩ) = 1 / 5(倍)となって14Vの電圧でマイコンへは2.8Vが入力されます。これなら5Vのリファレンスでもまだ約0.02Vの分解能なので小数点第一位表示としても十分な分解能となります。

次に②の「
電圧が小さすぎる」場合についての対策として前のバージョンでは、「
オペアンプ」を使って増幅させました。「
非反転増幅回路」ってやつで入力電圧を数倍に増幅させてやります。「
使用した電子部品たち(オペアンプ)」で少しふれています。
例えば、温度センサ「LM61BIZ」は使用領域0〜30℃だとして0.4〜0.6Vの範囲しか電圧の振り幅がありません。1024の分解能でリファレンスが5Vだとして0.6℃の分解能しかありません。そのままでは、0.5℃刻みでも表示できないってことになります。
んで、図の「
オペアンプ」ってICを使用してやってR1に10kΩ、R2に30kΩの抵抗を付けると、
(1 + R2 / R1)倍という式が成り立つので、約4倍の増幅ができます。OUTPUTには1.6〜2.4Vの範囲が出力されることになります。これで分解能も0.2℃までアップします。
クルマのECUから信号を拾う場合、市販のセンサを使う場合はアナログデータでの換算が必要な場合が多いです。
マイコンでは気軽に使える「A/D変換」ですが、分解能のことやリファレンス電圧のことを考えながら計算しなければならないのでややこしいです。
私はこういう類いの計算が好きなので性に合っていますが…w
Posted at 2013/01/23 19:12:05 | |
トラックバック(0) |
電子回路 | 趣味