センサーの入力切り替え方法とA/D変換について

このQ&Aのポイント
  • センサーの入力切り替え方法とA/D変換について調べています。マルチプレクサやボルテージフォロアを使用し、センサーの信号を効率的に処理したいと考えています。しかし、マルチプレクサ用の74HC153ではアナログ信号を扱えないため、他の方法を探しています。
  • また、PICのA/D変換ポートの入力インピーダンスが2.5kΩ程度しかないため、ボルテージフォロアを挿入して入力インピーダンスを高くする予定です。具体的にはTL072などの高入力インピーダンスのOPアンプを使用する予定です。
  • センサーの入力切り替えやA/D変換に関してアドバイスや他の方法があれば教えてください。よろしくお願いします。
回答を見る
  • ベストアンサー

センサーの入力切り替え

PICに関する質問です。 いくつかあるセンサーを切り替えて、PIC16F88で“多チャンネル”A/D変換を行いたい と考えています。(ひとまず8CHあれば安心です) タイトルのように、 センサー → マルチプレクサ(センサーを1つ選択) → ボルテージフォロア → PICでA/D変換    ⇒⇒⇒一定時間ごとに次のセンサーへ切り替える という流れでセンサーの信号を扱いたいのですが、マルチプレクサ用の74HC153などは アナログ信号が扱えないようです。センサーはアナログ信号ですので、どのようにして 切り替えを行えばいいものでしょうか? よろしくお願いします。 なお、PICのA/D変換ポートは入力インピーダンスが最大2.5kΩ(保障されている値、頑張っても10kΩ)程度しかありません。 そのため、十分に高い力インピーダンスを得るためにボルテージフォロアを途中に挿入しようという 心づもりです。(TL072など入力段がFETでできた高入力インピーダンス OPアンプを使用)

質問者が選んだベストアンサー

  • ベストアンサー
  • inara1
  • ベストアンサー率78% (652/834)
回答No.4

入力信号の範囲が 1.5V~3.5V ということなので、TL072 をボルテージフォロアに使った回路図を添付します。アナログ信号のライン(緑色)は、外来ノイズが混入しないように、なるべく短く配線してください。入力選択(b0~b5)の 6bit でチャンネルを選択します。74HC138 は b3~b5 のパターンに応じて Y0 ~Y7 のうちの1つだけを L レベルにするものです。74HC4051 は、INH端子が L レベルのときに、A、B、C入力のパターンに応じたスイッチだけがONになります(INH端子が H レベルのときは全てのスイッチがOFF)。アナログ入力を8chしか使わないときは、入力選択の上位bit(b3~b5)を GND に接続し、9ch 以降の部分のTC74HC4051APは実装しないでいいです。 TC74HC4051AP    価格(100円) http://www.sengoku.co.jp/mod/sgk_cart/search.php?toku=&cond8=or&dai=&chu=&syo=&cond9=&k3=0&list=2&pflg=n&multi=&code=5Z23-3DHM    データシート http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LogicIC/TC74HC4051AF_TC74HC4053AP_ja_datasheet_071001.pdf TC74HC138AP    価格(60円) http://www.sengoku.co.jp/mod/sgk_cart/search.php?toku=&cond8=or&dai=&chu=&syo=&cond9=&k3=0&list=2&pflg=n&multi=&code=6Z2W-2DG8    データシート http://www.semicon.toshiba.co.jp/docs/datasheet/ja/LogicIC/TC74HC138AF_TC74HC138AP_ja_datasheet_071001.pdf

ojaga100
質問者

お礼

ご丁寧な説明・そして回路図ありがとうございました。 たいへん感謝しております。 昨日回路図をアップするつもりでしたが、結局今日になってしまいました。 申し訳ありません。実は先ほど作ってみたので、せっかくですから掲載させていただきます。 (sky dirive へ リンクしています) http://cid-6a87cf7910396869.photos.live.com/browse.aspx/meter?permissionsChanged=1&1

その他の回答 (3)

  • inara1
  • ベストアンサー率78% (652/834)
回答No.3

状況は分かりました。 jpegの回路図をお願いします。ソースコードは不要です(mikroCは読めないので)。 その回路図にアナログマルチプレクサ(64チャンネルまで拡張可能)とボルテージフォロアの回路を付け足します。電源電圧は +5V だけですね?

  • inara1
  • ベストアンサー率78% (652/834)
回答No.2

PIC16F88 には最大 7個のアナログポートを使えるので、アナログ信号が7チャンネル以内なら、プログラムで入力を切り替えることができますが、8チャンネル以上の信号をAD変換する必要があるため、外付けのアナログマルチプレクサが必要ということでしょうか。そうであれば、8入力のアナログマルチプレクサ [1] を複数使うことで、8の倍数の入力信号(アナログ)の中から1つの信号を選択することができます。 [1] TC74HC4051AP    価格(100円) http://www.sengoku.co.jp/mod/sgk_cart/search.php?toku=&cond8=or&dai=&chu=&syo=&cond9=&k3=0&list=2&pflg=n&multi=&code=5Z23-3DHM    データシート http://www.semicon.toshiba.co.jp/openb2b/relateddocument.jsp?did=360&lang=ja&pid=TC74HC4051AP&returnFlag=1 センサ信号の電圧範囲はどれくらいですか?TL072の電源電圧を 5V で使うと、入力できる電圧範囲は 1.5V~3.5V程度になりますが、その範囲の信号なのでしょうか。5Vとか0V付近の信号まで扱うのであれば、入出力がフルスィングのCMOSオペアンプを使うか、TL072の電源を両電源( -2V、7V )とする必要があります。 8チャンネルの入力から1つを選択するためには 3bit(3本)、16チャンネルなら 4bit(4本)のデジタル信号が必要ですが、デジタル出力のポート数は確保できますね?AD変換する信号は1つですから、アナログマルチプレクサの出力に1個のボルテージフォロアを入れるだけで済みます。詳しい情報が分かれば具体的な回路を紹介します。

ojaga100
質問者

補足

お返事ありがとうございます。 言葉足らずの部分がありましたので、ご質問と一緒に記載させていただきます。 わたくしは大学の“課外実験”で「水素センサー」を相手にしています。 水素がセンサーに作用すると、電気化学的な反応で電圧が生じるようです。 いかにも電流を取り出せそうにない …測定器のインピーダンスを十分高くしておきたい タイプののセンサーです。 PICは入力インピーダンスが低いようだったので、心配を抱きつつも、今日初めてマイコンとセンサーを つなぎました。AD変換の結果はシリアル通信でPCに表示するようにしてあるのですが、センサーの出力が 勝手にゼロとして表示されてしまう時がしばしばありました。 ※ちなみに、2本の抵抗(たとえば10kΩ)を2本直列にして電源電圧(5v)を分圧した場合は 途中で勝手に測定値がゼロボルトに落ちることはなく、正常に測定できます。 マイコンのシステム自体はひとまず動いているようです。 考えられる対策として「オペアンプを使ってPICへの入力インピーダンス十分高くしてみる」という 発想に至りました。 もしこれが直接的な原因でないとしても、理想的な電圧計に近づけることは決して損ではないと思って います。 チャンネルの切替としては、AN0~6を切り替えながらAD変換して、 そのデータをシリアル通信でPCに送っています。 ですがこの場合ですと、アナログ入力の切替―AD変換部はPIC内部で完結しているので、 センサーとADコンバーターの間にオペアンプをはさんでインピーダンス変換をすることができません。 そこで、チャンネル0~6の切り替えをマルチプレクサに任せ、その出力をオペアンプにつなぎ、 インピーダンス変換をしたうえでPICのアナログ入力へとつなげればようのではないかと考えました。 今後使用するチャンネルが増える場合も多少は想定していますが、それよりもむしろ (1)いくつかのチャンネルの測定をしたい(切替の必要) (2)インピーダンス変換をしたい をかなえるためにマルチプレクサの導入を考えております。 チャンネル数としては、今のところ8つもあれば十分ですので、 チャンネル切替での信号線不足に悩むことはないはずです。 もし悩むことになっても、汎用ロジックを使って頑張って増設したいと思います。 入力信号としては3Vまで扱えれば十分です。 >TL072の電源電圧を 5V で使うと、入力できる電圧範囲は 1.5V~3.5V程度になります というのは確認不足でしたが、幸いにして問題なさそうです。 回路図とソースコード(mikroCで作成)も後ほど掲載いたします。 いろいろと詳細な情報が抜けていてすみませんでした。 他にも何かあれば、よろしくお願いします。

回答No.1

こんばんは。 センサーの種類(出力形態)によると 思います。 どういったセンサーをつかうのですか? 電圧出力、電流出力、PD、ロードセル、熱電対? あと、切り替えるスピードは? 1秒?1msec?

ojaga100
質問者

補足

お返事ありがとうございます。 センサーは電圧出力です。 切替スピードは1mS です。

関連するQ&A

  • デジタルとアナログのインピーダンス

    手元に本には、A/D変換用LSIの設計では、アナログ入力は高いインピーダンスとし、デジタル出力は低いインピーダンスとなっている。 と書かれているのですが、このインピーダンスというのはグラウンドと信号線間のインピーダンスのことだと思うのですが、なぜこのようにするのでしょうか? またこれはA/D変換用LSI以外の一般的なデジタルとアナログ回路に対しても言えることなのでしょうか?

  • 非接触回転速度センサ OH182/E について

    非接触回転速度センサ OH182/Eを使用したいと思っています。 PIC16F877のA/D変換で、変化を見たいとおもっているのですが、うまくいきません。 A/D変換自体は、プログラム的には、問題ありません。 現在、OH182/Eに入力12Vを入れて、出力を分圧してPIC16F877に入れています。 金属の棒を上下させたりして、センサからの出力を取得していますが、 変化が起こりません。 どのように配線するとうまく変化を読み取れるでしょうか? ご存知の方、ご教授よろしくお願いいたします。

  • マイコンでの距離センサの入力について質問です!

    赤外線距離センサGP2Y0AをAVRにつなげて,物体を感知させたいと思っています. このセンサはアナログ出力をするのですが,距離は知る必要はないので,A/D変換を使わずに接続したいです. ディジタルで値を読み取りたいと思っています. ただ,マイコンに直接接続しても動きません・・・泣 どうすればよいでしょうか??

  • PIC16F877A、AD変換について教えて下さい

    PIC16F877Aのデータシートの126ページ以下の式が記載されていますが どう計算したら記載どおりの答えになるのかがわかりません。 1、TC = -CHOLD ( RIC + RSS + RS ) 1n( 1 / 2047 ) 2、-120pF ( 1kΩ + 7kΩ + 10kΩ ) 1n( 0.0004885 ) 3、-120pF ( 18kΩ ) 1n( 0.0004885 ) 4、-2.16μS(-7.6241) 5、16.47μS ここでどうやったら3番から4番になるのかがわかりません。 分解して教えていただけると助かります。 また、該当ページの「注意3」という部分に 「アナログ信号用の推奨インピーダンスは10kΩ以下です。 これは、ピンのリーク使用を満たすために必要です。」 と記載がありますがAD変換するポートには 10k以下の抵抗をつけてくださいということでいいんでしょうか? よろしくお願いします。

  • アナログ出力の3軸加速度センサ、3軸ジャイロセンサの出力を一つのPIC

    アナログ出力の3軸加速度センサ、3軸ジャイロセンサの出力を一つのPICで取れるものはありますでしょうか?少なくとも加速度センサで3ch、ジャイロセンサで6ch(outで3ch,vrefで3ch)の9chの入力端子が必要で、ジャイロセンサ信号のout-vref差電圧計測をできるものが見つかりません。よろしくお願いします。

  • アナログ・デジタル変換とデジタル・アナログ変換

    ネットかなり調べたのですが全然見つからないので教えてください。 (1)高周波信号をA-D変換するときはF/V変換方式が最適で良いのでしょうか? (2)荷重抵抗を用いたD-A変換回路はどうしてグラフが歪むのでしょうか? (3)アナログ加算回路を用いたD-A変換回路は荷重抵抗を用いた場合と違ってなぜ歪まないのでしょうか? 私はアナログ加算回路はオペアンプを使用していることにより入力インピーダンスが無限大なため入力源の電位に影響を与えないため歪まないのではないかと考えているのですが。 よろしくお願いします。

  • 車速センサーについて。

    日産ホーミーにカーナビを取り付けたいのですが、 車速センサーがアナログ式のようなんです。 カーナビ自体は当然のことながら入力はパルス信号じゃないとだめなんですよね? カーナビが動作するような信号を取り入れるにはどうしたらいいのでしょうか? 誰か教えてください。

  • 3軸加速センサーのオフセット値について

    3軸加速センサーのオフセット値について 秋葉原でKXM52-1050型番の3軸加速センサーを購入しPICのA/D変換にてとりあえず電圧に変換しましたがオフセット値設定の方法(プログラムの処理又は物理的に?)がわかりません。よろしくお願いします。 ハード: センサー名:XM52-1050 pic:pic16f88 電圧:+5V ソフト:CCS社 Cコンパイラ 測定値: X最大 3.612 X最小 1.455 Y最大 3.632 Y最小 1.497 Z最大 3.7  Z最小 1.78 単位V オフセット値:0gの時と思っています、この辺もアドバイス願えたらと思っています。

  • 光ファイバにはデジタル信号を入力しなければいけない?

    入力のアナログ波形を光ファイバに通して離れたところにまた元のアナログ波形が現れるかという実験をしました。そこでまず、A/D変換をしてデジタルのパルス信号にしてから光ファイバに通さないといけないと言われました。なぜでしょうか?

  • 照度センサーを改造してPICマイコンに入力

    明るさが一定の明るさを下回ると内蔵の24Vのリレーが作動する という照度センサーがあるのですが、 そのリレーはS9014というTO-92のNPNのトランジスタのコレクタでコイルをON/OFFしていて そのトランジスタは不明のIC(多分ロジックIC)の出力が ベース抵抗経由でトランジスタのベースに繋がりドライブされています。 (S9014 Vceo50V Ic150mA) これを使ってPICにHigh/Lowを入力したくて、ベース抵抗の後を 別途用意した2SC945のベースに繋いで、 エミッタをGNDに、コレクタをPICの入力端子に、 その入力端子を5.6kオームの抵抗経由で+5Vにつないであります。 (PICへは、明るいとLow、暗いとHighが入力されます。) これで明るさによってPICの入力の状態が変化してプログラムも 一見正常に動くのですが、一旦OFFになった後、ずっと照度が上がらずに 10時間くらい経過すると、PICにLowが入ってその際のプログラムが 実行されてしまいます。 照度センサーのベース抵抗の後は10メートルくらいのケーブルで延長して PICの基板に入力してありますがこのあたりに何かあるでしょうか? S9014とC945の違いもありますが。 プログラムに問題はなく、信号の状態が不安定だと思うのですが、 これはどのような対処をすれば誤作動をなくすことができるでしょうか? よろしくお願い致します。