RC回路を使って最も簡単にFPGAにセンサーを接続する方法注目デバイスで組み込み開発をアップグレード(23)(2/3 ページ)

» 2024年05月14日 07時00分 公開
[今岡通博MONOist]

 ちなみにこのRC回路につなげるアナログセンサーとしては、抵抗値が変化するタイプと静電容量が変化するタイプの両方に対応できます。今回は、抵抗値が変化するセンサーを前提に話を進めます。

 確かに、静電容量の変化を応用したセンサーもないわけではありません。古くはコンデンサーマイク、タッチセンサー、近接センサー、気圧センサーなどもそうかもしれません。これらについても、機会があれば本連載で紹介できればと思います。

 図3は、Vinに電圧を印加したタイミングを起点として、時間経過とVcの電圧の変化を示したグラフです。前提としては、このグラフのTimeの起点時にはコンデンサーの残留静電はないものと仮定しています。

図3 図3 RC回路における時間経過(Time)tと電圧(Vc)の変化を示したグラフ[クリックで拡大] 出所:Wikipediaより、Ktims、パブリックドメイン

 図3において、VcがVinの63.2%に達するまでの時間がtとなっています。例えば、この時点のVcの電圧をFPGAの入力の閾値とします。そして、直列RC回路図における抵抗Rを抵抗値変化系のセンサーに置き換えたとしましょう。

 抵抗値変化系センサーの抵抗値が大きくなると、閾値を超えるまでの時間がこの図のtよりさらに長くなります。逆に、センサーの抵抗値が小さくなると閾値を超える時間はこれより短くなります。この時間をFPGAでカウントすることで、アナログセンサーの値を同定するのです。

抵抗値が変化するセンサーとしてフォトレジスタを使用

図4 図4 フォトレジスタの外観 出所:Wikipediaより、BenTheWikiMan, Public domain, ウィキメディア・コモンズ経由で

 抵抗値変化系のセンサーはいろいろあります。記事冒頭の「はじめに」で紹介したゼミ生は、FPGAに温度センサーをつなげたかったようなのですが、検証するときに周りの温度を変えたり、センサーに発熱素子を接触させたりするのが大変です。また、温度の変化は緩慢であることが多く、同じ温度を維持するのも大変なので、本稿では光系のセンサーを用いることにします。

 今回は、光センサーとして図4に示すフォトレジスタと呼ばれるデバイスを用います。

 CDSセルや光可変抵抗、光依存性抵抗、フォト感光性抵抗器などの名称で、Amazon.comで検索、購入することができます。暗くすれば抵抗値が上がり、明るくすると抵抗値が下がる、抵抗値可変型の光センサーの一つです。古くからさまざまな場所で使われている光センサーであり、夜になると自動で点灯する街灯の多くはこのセンサーが使われていました。井上陽水さんの楽曲「帰れない二人」の歌詞で、「街の灯りは消えました」というくだりがあるのですが、子ども心に「それちゃんとCDSが働いとるからや!」と呟いたことを思い出しました。

 なおフォトレジスタは、CDSセルの名前にある通り硫化カドミウム(CdS)を使用しているため、環境意識の高い団体、企業、国、地域では歓迎されないことがあります。今回は、本稿の執筆に当たって手元にあった抵抗値可変型センサーの一つをサンプルにしただけです。サーミスターのような温度センサーよりも、検証作業が楽だという以上の意図はありません。

Copyright © ITmedia, Inc. All Rights Reserved.