PIR(パッシブ赤外線)またはモーションセンサーは、動く人体や物体の動きを検出するために使用されます。誰かがPIRセンサーの範囲に入ると、出力ピンでHighになります。以前、PIRを他のマイクロコントローラーとインターフェースしました。
- PIRセンサーを使用したArduinoモーションディテクター
- 電子メールアラートを備えたIOTベースのRaspberryPiホームセキュリティシステム
- AVRマイクロコントローラーを備えた自動階段ライト
今日は、PIRをPICマイクロコントローラーPIC16F877Aと簡単にインターフェースできます。この回路では、移動する物体がPIRセンサーの範囲内に入ると、ブザーが鳴り始めます。
必要な材料
- PicKit 3
- PIRセンサー。
- PIC16F877A IC
- 40ピンICホルダー
- パフォーマンスボード
- 20MHzクリスタルOSC
- メスとオスのバーグスティックピン
- 33pfコンデンサ-2Nos、100ufおよび10ufキャップ。
- 680オーム、10Kおよび560オームの抵抗器
- 任意の色のLED
- 1はんだ付けキット
- IC 7805
- 12Vアダプター
- ブザー
- 接続線
- ブレッドボード
PIRセンサー:
PIRセンサーは、安価で低電力で使いやすいモーション検出センサーです。PIRセンサーは赤外線のみを受信し、放射はしません。そのため、パッシブと呼ばれています。PIRは熱の変化を感知し、変化がある場合はOUTPUTでHIGHになります。PIRセンサーは焦電またはIRモーションセンサーとも呼ばれます。
人体が体温によってIRを放出するのと同様に、すべての物体は加熱されるとある程度の赤外線を放出します。空気と物体の間の摩擦のために、すべての物体によって生成される赤外線。PIRセンサーの主成分は焦電センサーです。これに加えて、BISS0001(「マイクロパワーPIRモーションディテクターIC」)、いくつかの抵抗器、コンデンサー、およびPIRセンサーの構築に使用されるその他のコンポーネント。BISS0001 ICはセンサーから入力を受け取り、それに応じて出力ピンをHIGHまたはLOWにする処理を行います。
PIRセンサーの詳細については、こちらをご覧ください。モーションが検出されたときに出力ピンがハイになる距離感度と期間を調整することもできます。これらの2つのパラメータを調整するための2つのポテンショメータノブがあります。
回路図
PICマイクロコントローラー:
するためにはPIRを接続するためのPICマイクロコントローラをプログラム、我々は必要になります IDE(統合開発環境)プログラミングが行われ、。 コンパイラ、 私たちのプログラムはHEXファイルと呼ばれるMCU読める形式に変換されます。アン IPE(統合プログラミング環境)私たちのPICマイコンに私達のHEXファイルをダンプするために使用されています、。
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
コンパイラ: XC8
Microchipは、これら3つのソフトウェアすべてを無料で提供しています。公式ページから直接ダウンロードできます。私はあなたの便宜のためにリンクも提供しました。ダウンロードしたら、コンピュータにインストールします。問題が発生した場合は 、最後にあるビデオをご覧ください 。
PICに私たちのコードをダンプまたはアップロードするには、我々が必要となります のPICkit 3. ザ・ てPICkit 3 プログラマ/デバッガをMPLAB IDE(v8.20以降)を実行しているPCで制御され、シンプルで低コストのインサーキットデバッガでのソフトウェアWindowsプラットフォーム。 PICkit 3 プログラマ/デバッガは、開発エンジニアのツールスイートの不可欠な部分です。これに加えて、Perfボード、はんだ付けステーション、PIC IC、水晶発振器、コンデンサなどの他のハードウェアも必要になります。ただし、チュートリアルを進めながら、それらをリストに追加します。
MCUで使用可能なICSPオプションを使用してPIC16F877Aをプログラミングします。
コードを書き込むには、以下の手順に従います。
- MPLABIPEを起動します。
- PicKit 3の一方の端をPCに接続し、もう一方の端をパフォーマンスボードのICSPピンに接続します。
- 接続ボタンをクリックして、PICデバイスに接続します。
- Blink HEXファイルを参照し、[プログラム]をクリックします。
PICマイクロコントローラーを初めて使用する場合は、まず以下のチュートリアルを実行して、PICの使用方法とプログラミング方法を学習してください。
- PICマイクロコントローラ入門:PICとMPLABXの紹介
- PICマイクロコントローラーを使用した最初のプログラムの作成と構成ビットのセットアップ
- PICマイクロコントローラーでLEDが点滅
コードと説明
まず、PICマイクロコントローラで構成ビットを設定し、その後で起動する必要が 無効メイン 機能。
以下のコードでは、 「XC.h」 はピンと周辺機器のすべてのフレンドリ名を含むヘッダーファイルです。また、以下のコードで水晶発振器周波数、PIR、およびブザーピンの接続を定義しました。
#include
void main()では、「 TRISB = 0X00」 を使用して、 PORTB ピンがOUTPUTとして使用されることをMCUに指示し、 「TRISC = 0Xff」 を使用して、PORTBピンがINPUTとして使用されることをMCUに指示します。また、 「PORTB = 0X00」 は、RB3のすべての出力をLowにするようにMCUに指示するために使用されます。
TRISB = 0X00; TRISC = 0Xff; PORTB = 0X00; // RB3のすべての出力をLOWにします
以下のコードに従って、PIRがHIGHになると、ブザーはHIGHになるか、オフのままになります。
while(1)// InfinieのWhileループに入る{if(PIR == 1){Buzzer = 1; __delay_ms(1000); //待つ} else {Buzzer = 0; }}}
デモビデオ付きの完全なコードは、このプロジェクトの最後にあります。
PICマイクロコントローラーを使用したPIRセンサーの動作:
このプロジェクトには複雑なハードウェア設定はありません。ここでも、LED点滅チュートリアルで作成したものと同じ PICマイクロコントローラーボード(以下に示す)を使用しています。接続図に従って、PIRセンサーモジュールをPICマイクロコントローラーボード に接続するだけ です。接続が完了したら、前のチュートリアルで説明したようにPicKit 3プログラマーを使用してコードをダンプし、出力を楽しんでください。
プログラムをアップロードした後、PIRセンサーは出力を提供する準備ができています。IRを放出する人間または物体がPIRの範囲内に入ると、出力がHIGHになります。そして、その出力に基づいてブザーが作動します。PIR出力が高い場合、ブザー入力は高くなり、その逆も同様です。
PIRモジュールに固定された2つのポテンショメータを使用して、検出距離と時間遅延を制御できます。PIRセンサーの詳細については、リンクをたどってください。