文書の過去の版を表示しています。


人体(焦電型赤外線)検出ユニット

焦電型赤外線センサP4488(P2288と同等品)が秋月電子で100円で販売していましたので、これを利用した人体検出ユニットを作成しました。

一般的には、次のようなオペアンプを利用した回路をよく見かけます。
秋月電子通商キット取扱説明書回路図集より抜粋しました。
オペアンプで40倍、40倍の1600倍に増幅し、基準電圧とコンペアし、リレーを一定時間駆動する。

このように結構複雑ですよね。これを何とかシンプルに出来ないものかと考えてみました。

低電圧オーディオ用パワーアンプLM386を2個使用して20倍、20倍の400倍に増幅しています。
この増幅された信号をPICでA/D変換で取り込みソフトウェアで処理しています。
もう少し感度がほしい場合にはLM386の増幅率を30倍、40倍に上げれば良いと思います。
その方法はとても簡単です。
1ピンと8ピンの間を抵抗とコンデンサーで接続するだけで20倍から200倍の倍率を設定する事が出来ます。
例えば、1.2kΩ+10uFのコンデンサで約50倍の増幅率になります。
如何ですか、とてもシンプルでしょ?

プログラムでの処理は、とても簡単です。
約0.5秒間<10msec間隔で50回>で信号を取り込み、100mV以上信号が変化すると人体を検出したとみな
します。

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();
		}
	}
}
 
//**********************************************************************

いつものようにブレッドボードで動作を確認しました。
ICは、左から、LM386、LM386、PIC12F683です。
如何ですか?とても簡単ですよね。

左端が、焦電型赤外線センサP4488で、超高感度焦電センサー用レンズを被せた所です。
右端が、圧電スピーカです。人体を検出すると一定時間ブザーが鳴ります。

こんな簡単な回路でも、数メートル離れている人体を検出し、ブザーを鳴らせる事が出来ます。
プログラムを少し改造すればいろいろな用途に使えそうですね ^_^

著作権表示 copyright notice

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細
This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details
  • elechobby/picdic/pic12f683/7.1588331935.txt.gz
  • 最終更新: 2025/10/17 14:27
  • (外部編集)