文書の表示以前のリビジョンバックリンクPDF の出力全て展開する/折り畳むODT 出力文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== 人体(焦電型赤外線)検出ユニット ====== ===== 概要 ===== 焦電型赤外線センサP4488(P2288と同等品)が秋月電子で100円で販売していましたので、これを利用した人体検出ユニットを作成しました。 ===== 動作原理 ===== 一般的には、次のようなオペアンプを利用した回路をよく見かけます。 秋月電子通商キット取扱説明書回路図集より抜粋しました。 オペアンプで40倍、40倍の1600倍に増幅し、基準電圧とコンペアし、リレーを一定時間駆動する。 {{:imgpaste:202004:htmikan-20200428-160724.png}} このように結構複雑ですよね。これを何とかシンプルに出来ないものかと考えてみました。 ===== 回路図 ===== 低電圧オーディオ用パワーアンプLM386を2個使用して20倍、20倍の400倍に増幅しています。 この増幅された信号をPICでA/D変換で取り込みソフトウェアで処理しています。 もう少し感度がほしい場合にはLM386の増幅率を30倍、40倍に上げれば良いと思います。 その方法はとても簡単です。 1ピンと8ピンの間を抵抗とコンデンサーで接続するだけで20倍から200倍の倍率を設定する事が出来ます。 例えば、1.2kΩ+10uFのコンデンサで約50倍の増幅率になります。 如何ですか、とてもシンプルでしょ? {{:imgpaste:202004:htmikan-20200428-160902.png}} ===== ソースコード ===== プログラムでの処理は、とても簡単です。 約0.5秒間<10msec間隔で50回>で信号を取り込み、100mV以上信号が変化すると人体を検出したとみな します。 <code c humanSensor.c> //********************************************************************** /* <人体センサー> 2007.5.4 */ //********************************************************************** void Pwm_Change_DutyEx(unsigned int duty_ratio) { CCPR1L = duty_ratio >> 2; CCP1CON.F6 = duty_ratio & 0b00000001; CCP1CON.F7 = (duty_ratio & 0b00000010) >> 1; } //********************************************************************** void main() { static unsigned int min, max, ad0, temp, cnt; // OSCCON = 0b01000000; // クロックは1Mhz CMCON0 = 0b00000111; // コンパレータは使用しない。 ANSEL = 0b00000001; // AN0を使用する。 TRISIO = 0b00001011; GPIO = 0b00000000; OPTION_REG = 0b10000000; PIE1.TMR1IE = 1; PIR1.TMR1IF = 0; T1CON = 0b00000001; INTCON = 0b01000000; // Pwm_Init(1000); // 1Khz Pwm_Change_DutyEx((PR2 * 4) / 2); // Delay_ms(2000); // while (1) { min = 1024; max = 0; for (cnt = 0; cnt < 50; cnt++) { // 約0.5秒間<10msec間隔で50回>取り込む。 temp = Adc_Read(0); if (min > temp) min = temp; if (max < temp) max = temp; Delay_ms(10); } ad0 = max - min; // if (ad0 > 20) { // 100mV以上信号が変化すると人体を検出したとみなす。 Pwm_Start(); Delay_ms(100); Pwm_Stop(); } } } //********************************************************************** </code> ===== 動作確認 ===== いつものようにブレッドボードで動作を確認しました。 ICは、左から、LM386、LM386、PIC12F683です。 如何ですか?とても簡単ですよね。 {{:imgpaste:202004:htmikan-20200428-161120.png?500}} 左端が、焦電型赤外線センサP4488で、超高感度焦電センサー用レンズを被せた所です。 右端が、圧電スピーカです。人体を検出すると一定時間ブザーが鳴ります。 {{:imgpaste:202004:htmikan-20200428-161156.png?500}} こんな簡単な回路でも、数メートル離れている人体を検出し、ブザーを鳴らせる事が出来ます。 プログラムを少し改造すればいろいろな用途に使えそうですね ^_^ <callout type="warning" title="著作権表示 copyright notice"> このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。[[elechobby:picdic:picdic|詳細]] This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.[[elechobby:picdic:picdic|Details]] </callout> elechobby/picdic/pic12f683/7.txt 最終更新: 2025/10/17 14:29by 127.0.0.1