MCP3008の高感度水センサー
SPIインターフェースを備えたMCP30088チャンネル10ビットADCでファントムヨーヨー高感度水センサーを使用します。
はじめに
背景
次のプロジェクトでは、MCP3008を使用していくつかのセンサーを監視しています。このプロジェクトでは、Raspberry Pi 2、Windows 10 IoT Core、C#を備えたSPIインターフェイスを備えたMCP30088チャンネル10ビットADCでのPhantomYoYo高感度水センサーの使用の詳細について説明します。
MCP3008の使用
523/1023 * 3.3
正確な電圧測定値を取得することが重要な場合は、Raspberry Piの実際の電圧を測定し、この値を計算に使用して、ADCからより正確な変換を取得することを強くお勧めします。私が私のものを測定したとき、出力は3.301V(ソースコードで見つかった値)であることがわかりました。実際のボードからそれほど遠くはありませんが、他のタイプのボードはさらに異なる場合があります。
もちろん、これは電圧を計算するときに意味がありますが、センサーごとに意味が異なります。 MCP3008のチャネルに接続されているセンサーごとに、具体的な詳細を知り、読み取り値を適切に解釈する必要があります。
MCP3008の配線は簡単です。チップ自体には、ピン1と16を表すノッチが一端に付いています(ここのデータシートを参照してください)。
ピン1〜8は8つの入力ピンであり、チャネル0〜7と呼ばれます。チャネル0はピン1です。ピン16はVddであり、電圧源(3.3Vまたは5Vのいずれか)に接続します。ラズベリーパイ)。ピン9は、RaspberryPiのアースピンに接続します。ピン15と14は、アナログ回路を参照するために使用されます。ピン15はVrefであり、MCP3008がチャネルの1つの最大電圧を決定するために使用します。私の例では、このピンをRaspberryPiの3.3Vソースに接続しました。チャネルの1つに電圧が印加されると、MCPは読み取り値を調整して1023が3.3Vを表し、0が0Vを表すようにします。これにより、上記で使用した計算が機能します。ピン14はアナロググランドピンです。私の例では、RaspberryPiのアースピンに接続しました。アナログ回路をデジタル回路から分離しておく必要がある場合、このピンはアナログ回路のグランドに接続されます。残りの4つのピン(10〜13)は、RaspberryPiとの通信に使用されるSPIシリアルインターフェイスピンです。このプロジェクトに含まれている配線図は、これらのピンをRaspberryPiに接続する方法を示しています。
このプロジェクトでは、この概念を示すために簡単な電圧測定を含めました。水センサーの読み取り値は、チャネルから読み取られた値の代替解釈を示します。
プロジェクトの概要
センサー
このプロジェクトでは、2つの回路を1つに接続しました。 1つ目は、MCP3008ピンの1つ(チャネル0)で電圧を変化させることができる単純なポテンショメータです。これは、MCP3008がどのように機能するかを示すためのものです。 2番目の回路は、MCP3008の2番目のチャネル(チャネル1)に接続された水センサーです。
サーキット
プロジェクトソフトウェア
アプリケーション
MCP3008ライブラリ
ソフトウェアプロジェクトには、MCP3008と対話するための別のプロジェクトも含まれています。このコードをアプリケーションで使用すると、MCP3008チップをプロジェクトに簡単に統合できます。
これを使用するには、最初に次のようにクラスオブジェクトを宣言します。
_ mcp3008 =new Mcp3008(0);
await_mcp3008.Initialize();
Channel.Single0の使用に注意してください。これは、値が1つのチャネルから読み取られることを示します。デバイスが2つのピンの差を読み取るように指定することができます。これは、Mcp3008.Channels.Differential0として指定できます。これは、チャネル0が正でチャネル1が負であるチャネル0とチャネル1の間で測定が異なるものとして行われる必要があることを示します。ソースコードはドキュメントであり、各値を説明するツールチップを提供します。
オブジェクトの使用が終了したら、通常は OnNavigatedFrom イベントはオブジェクトを破棄します。
_ mcp3008.Dispose();
_ mcp3008 =null;
はじめに
回路を組み立てる
このガイドを使用して、ページの下部にある図をガイドとして使用しながら回路を組み立てます(ワイヤーの色はオプションであり、回路をわかりやすくするために選択されています。構築時)
注: このプロジェクトでは、オプションのマルチメータを使用して、ポテンショメータの両端の電圧を測定します。これは、値をMCP3008によって読み取られた値と比較するために行われます。これはオプションであることに注意してください。マルチメータがない場合は、この電圧を比較することはできません。これは、MCP3008によって読み取られた値がマルチメータによって読み取られた値と同じであることを示すために行われます。下の画像に示すように、DC電圧を測定するようにマルチメータを設定します(マルチメータは異なって見える場合があります)。
Fluke87マルチメーター
- 50KΩポテンショメータを位置J56、J58、およびJ60に配置し、調整ノブをブレッドボードの5v側に向けます
- 10KΩ抵抗を I58 の間に配置します および I53
- MCP3008を E31 に配置します E38 および F31 F38 (インデントされた円のあるチップの角は、 E31 に配置されます。 )
- オプション: 黒のオスからオスへのジャンパーの一方の端を G60 の位置に配置します (マルチメータを使用している場合は、黒いリード線をこのワイヤに接続します)
- オプション: 赤いオスからオスへのジャンパーの一方の端を G58 の位置に配置します (マルチメーターを使用している場合は、赤いリード線をこのワイヤーに接続します)
- F60 の間に青いオスとオスのジャンパー線を接続します およびグラウンド
- F58 の間にオレンジ色のオスとオスのジャンパー線を接続します および C31 (MCP3008のチャンネル1)
- F53 の間にオレンジ色のオスとオスのジャンパー線を接続します および 3.3V +
- J31 の間に赤いオスとオスのジャンパー線を接続します および 3.3V
- J32 の間に赤いオスとオスのジャンパー線を接続します および 3.3V
- J33 の間に黒のオスとオスのジャンパー線を接続します およびグラウンド
- J34 の間に緑色のオスとオスのジャンパー線を接続します および A14
- J35 の間に黄色のオスとオスのジャンパー線を接続します および A13
- J36 の間に白人男性と男性のジャンパー線を接続します および A12
- J37 の間に緑色のオスとオスのジャンパー線を接続します および J14
- J38 の間に黒のオスとオスのジャンパー線を接続します およびグラウンド
- 青いメスのメスの端をオスのジャンパーに接続して S 水センサーのピン。オス側を C32 に接続します (MCP3008のチャネル1)
- 赤いメスとオスのジャンパーのメス側を水センサーのピンに接続します。オス側を 3.3V に接続します
- 黒のメスのメスの端をオスのジャンパーに接続して – 水センサーのピン。オス側をアースに接続します
- オプション: 手順5の黒いリード線をマルチメータの共通端子に接続します(最良の結果を得るには、フッククリップタイプのコネクタを使用します)
- オプション: 手順6の赤いリード線をマルチメータの電圧端子に接続します(最良の結果を得るには、フッククリップタイプのコネクタを使用します)
- RaspberryPiとコブラーの間にリボンケーブルを接続します
アプリケーションの起動
F5 を押します 。アプリケーションはデバイスにデプロイされますが、最初は数分かかる場合があります。
以下の動画は、アプリケーションのデモンストレーションです:
注: このアプリケーションは、線形360°ゲージを使用して水の量を表示します。このセンサーには、水の量とセンサーからの読み取り値の間に線形相関やその他の相関関係がないことに注意する必要があります。数滴の場合は小さい値を生成しますが、より多くの水が存在する場合は高い値を生成します。 ADCの概念を理解するために、線形ゲージをさらに使用します。光絶縁AC電圧センサーを配線したのと同じように水センサーを配線して、GPIOピンで拾うことができる高信号または低信号を生成することができます。このデバイスは、ウェットまたはドライ信号を提供するように配線できます。そうは言っても、少量の水と大量の水の違いを検出したいので、この水センサーをADCに取り付けています。このプロジェクトで概説したアプローチは、この目標を達成します。
出典: MCP3008の高感度水センサー
製造プロセス