工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

MCP3008の高感度水センサー

SPIインターフェースを備えたMCP30088チャンネル10ビットADCでファントムヨーヨー高感度水センサーを使用します。

はじめに

背景

次のプロジェクトでは、MCP3008を使用していくつかのセンサーを監視しています。このプロジェクトでは、Raspberry Pi 2、Windows 10 IoT Core、C#を備えたSPIインターフェイスを備えたMCP30088チャンネル10ビットADCでのPhantomYoYo高感度水センサーの使用の詳細について説明します。

MCP3008の使用

ADCはアナログ-デジタルコンバーターです。アナログ信号は数値に変換され、アプリケーションに読み込まれます。 MCP3008は10ビットADCです。つまり、チャネル上の値を表すために10ビットを使用します。値は0〜1023の数値として表されます(合計1024の可能な値)。次に、この数値は意味のある値に変換されます。たとえば、チャネルの1つで電圧を測定し、チャネルから読み取った値が523であるとします。最大電圧は3.3Vであることがわかっています。チャネルの電圧は、次の式を使用して計算されます

値/最大値* Vref

取得した電圧を解決する

523/1023 * 3.3

これは 1.687V の値を示します 。この値は、最初に読み取り値を正規化し、次に正規化された読み取り値に既知の最大値である3.3Vを掛けて計算しました。

正確な電圧測定値を取得することが重要な場合は、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)に接続された水センサーです。

ファントムヨーヨーウォーターセンサーには3つのピンがあります。最初のピンはアースされており(デバイスでは「-」のラベルが付いています)、RaspberryPiのアースピンに接続されます。次のピンは電源(デバイスでは「+」のラベルが付いています)で、Raspberry Piの3.3Vピンに接続されます(デバイスは5Vにも接続できます)。 3番目の最後のピンは信号です(デバイスに「s」のラベルが付いています。このピンには、デバイスの水の量に応じて変化する電圧信号があります。このデバイスは水位センサーではないことに注意してください。単に変化を感知します。デバイスと接触する水の量。ソースピンは、MCP3008の入力の1つに接続されます。

サーキット

センサーをサポートする回路は本当にシンプルです。デバイスは、追加のコンポーネントを必要とせずに、ボードRaspberryPiに直接接続します。


プロジェクトソフトウェア

アプリケーション

このプロジェクト用に作成したアプリケーションはユニバーサルWindowsアプリケーションです。 メインビューに2メートルを表示します。最初のメーターは、ポテンショメーター回路で測定されている電流電圧を示しています。 2つ目は、0〜100の値に正規化された水センサーからの読み取り値を示しています。ソフトウェアでは、水センサーのキャリブレーションも可能です。ソースコードへのリンクは、ページの下部にあります。

MCP3008ライブラリ

ソフトウェアプロジェクトには、MCP3008と対話するための別のプロジェクトも含まれています。このコードをアプリケーションで使用すると、MCP3008チップをプロジェクトに簡単に統合できます。

これを使用するには、最初に次のようにクラスオブジェクトを宣言します。

プライベートMcp3008_mcp3008 =null;

OnNavigatedTo イベントは次のコードを追加します:

_ mcp3008 =new Mcp3008(0);

await_mcp3008.Initialize();

チャネル0から電圧を読み取るには、次のコード行を使用します。

フロート電圧=_mcp3008.Read(Mcp3008.Channels.Single0).AsScaledValue(3.3f);

Channel.Single0の使用に注意してください。これは、値が1つのチャネルから読み取られることを示します。デバイスが2つのピンの差を読み取るように指定することができます。これは、Mcp3008.Channels.Differential0として指定できます。これは、チャネル0が正でチャネル1が負であるチャネル0とチャネル1の間で測定が異なるものとして行われる必要があることを示します。ソースコードはドキュメントであり、各値を説明するツールチップを提供します。

オブジェクトの使用が終了したら、通常は OnNavigatedFrom イベントはオブジェクトを破棄します。

_ mcp3008.Dispose();

_ mcp3008 =null;

はじめに

回路を組み立てる

このガイドを使用して、ページの下部にある図をガイドとして使用しながら回路を組み立てます(ワイヤーの色はオプションであり、回路をわかりやすくするために選択されています。構築時)

注: このプロジェクトでは、オプションのマルチメータを使用して、ポテンショメータの両端の電圧を測定します。これは、値をMCP3008によって読み取られた値と比較するために行われます。これはオプションであることに注意してください。マルチメータがない場合は、この電圧を比較することはできません。これは、MCP3008によって読み取られた値がマルチメータによって読み取られた値と同じであることを示すために行われます。下の画像に示すように、DC電圧を測定するようにマルチメータを設定します(マルチメータは異なって見える場合があります)。

Fluke87マルチメーター
  • 吟遊詩人の左端(数字は1から始まる)にT字型のコブラーを置きます。左端の2つのピンは E3 にあります および F3 ボード上の。右端の2つのピンは E22 にあります および F22
    • 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とコブラーの間にリボンケーブルを接続します



    アプリケーションの起動

    デバッグを選択します 、 ARM 構成とリモートマシン 。次に、プロジェクトを右クリックして、[プロパティ]、[]の順に選択します。 [デバッグ]をクリックします 鬼ごっこ。次に、Raspberry Pi 2のIPアドレスを[リモートマシン]フィールドに入力し、[認証を使用する]のチェックを外します 。

    F5 を押します 。アプリケーションはデバイスにデプロイされますが、最初は数分かかる場合があります。

    以下の動画は、アプリケーションのデモンストレーションです:

    注: このアプリケーションは、線形360°ゲージを使用して水の量を表示します。このセンサーには、水の量とセンサーからの読み取り値の間に線形相関やその他の相関関係がないことに注意する必要があります。数滴の場合は小さい値を生成しますが、より多くの水が存在する場合は高い値を生成します。 ADCの概念を理解するために、線形ゲージをさらに使用します。光絶縁AC電圧センサーを配線したのと同じように水センサーを配線して、GPIOピンで拾うことができる高信号または低信号を生成することができます。このデバイスは、ウェットまたはドライ信号を提供するように配線できます。そうは言っても、少量の水と大量の水の違いを検出したいので、この水センサーをADCに取り付けています。このプロジェクトで概説したアプローチは、この目標を達成します。

    出典: MCP3008の高感度水センサー


    製造プロセス

    1. 芝生のスプリンクラー
    2. 麺棒
    3. 食器洗い機
    4. イメージセンサーは低電力、高フレームレートを特長としています
    5. Raspberry Pi 1-Wireデジタル温度計センサー(DS18B20)
    6. MCP3008を使用したアナログセンサー入力ラズベリーパイ:配線/インストール/基本プログラム
    7. MCP3008の高感度水センサー
    8. ソフトセンサーがロボットの指先感度を向上
    9. ToughMet® 3TS チューブ TS105 (C72900)
    10. 灌漑用高圧ポンプ
    11. 自動ウォーターポンプとは?