2017年8月29日火曜日

色々と知ったこと

センサーキットで色々なセンサーを同時に利用しようと考えたときにいくつか気になることが出てきました。



まず、センサーの入力電圧と出力信号の電圧はいったいいくつだろう?
Raspberry piのIOの電圧はどこまで耐えられるのだろう?
データ転送のプロトコルの限界によって接続できるデバイスの個数は意外と少ない?

いままでセンサーを直接触れたことがなかったのでいろいろと知る必要が出てきました。

Raspberry piの出力電圧は+3.3V +5Vの2種類が出力されていますが、入力信号は3.3V以下にする必要があるようです。
このことをあまり気にせずにセンサーキットに付属しているドキュメントの通りにDHT11センサーユニットをRaspberry Piに接続していたのですが、DHT11のデータシートを参照する限り動作電圧は3.5V~5.5Vで、データはVccとなっているので入力電圧が出力される形になっています。手元のセンサーユニットが実際にどのくらいの電圧を出力しているかは不明です。実際の出力電圧を測定して確認するのが確実なのでしょうね。
センサーキットに付属するドキュメント内で同じセンサーユニットでも3.3Vと5Vで使用している記述もあり、いまいち信用できないのですが、3.3VでもDHT11が動作はしているようなので安全のために3.3Vで使用することにしました。
基本的に入力電圧が出力電圧になるようですが、HC-SR501 Infrared PIR experimentは5Vを入力しても出力は3.3V以下の出力になっているようです。
結論として、ドキュメントで確認したうえで、実際に出力を測定してから使用するべきなのでしょう。

複数のセンサーを同時に使用しようとすると物理的な入出力ポートが必要となります。
PCではUSBが一般的なインターフェースになり、同時にさまざまな機器を手軽に利用できるようになりましたが、低レベルなIOポートでも同様にバス接続型のI2Cというインタフェースがありました。
もしバス接続ができない場合はデバイス毎に必要なIOポートが必要となり、物理的なポートがいくらあっても足りなくなってしまいます。
I2Cがよくわからなない時にRaspberry piで利用できるデバイスは排他的な構成になってしまうのではないかと心配しましたが、そんな心配はあまりないようです。とはいえ、データ転送量は有限ですし、I2Cプロトコルはマスター、スレーブ形式で行われ同時にやり取りが行われるのが一つになってしまうという欠点はあります。まぁその欠点が露呈するほどの高度な処理の場合はRaspberry piではなく、もっとパワーのあるPCを使うことになるのでしょうが。

0 件のコメント:

コメントを投稿