電子工作36 – 安価な集電型赤外線センサRE-210を使ったLEDセンサライトの製作
概要
前記電子工作35で使用した集電型赤外線センサNaPiOnは使いやすく優れているが約1000円と高価。そこで今回は1個100円の安価なRE-210というセンサを使ってみることにした。このセンサにはアンプが内臓されていないので別に信号増幅のための回路が必要になる。前回と同様に12F629でコントロールしLEDセンサライトを製作した。
センサとレンズ
下に使用した集電型赤外線センサRE-210(P4488、P2288と同等品)とその上にかぶせるフレネルレンズMIL-100(50%出力視野角11度、300円)を示す。このレンズは超高感度集電センサ用とされていて20−30mの検知性能を持つという。今回のシステムにこのレンズを装着して測定してみたら2−3m位が検知限界であった(NaPiOnセンサの場合、実測した検知可能距離は6−7mほど)。確かにレンズは重要で、ないと10cmほど離れると手を振っても反応しなくなる。
回路
まずWeb上に公開されている情報やセンサメーカ(日本セラミック)の資料を参考にセンサ信号増幅回路を組み。 次いでその回路からの出力を12F629を使って処理してLEDランプを点灯させるようにした。全回路を下に示す。
センサRE-210の増幅回路からのオシロで観察した出力(2つの反対向きダイオード(1S2075)の結合点での出力)を下に示す。センサの前で手を動かしたりすると通常4.3Vの電圧がデジタル的に1.2Vに低下する。最初これを捕えて12F629のプログラムで処理して人体を検知しようとしたが失敗した。 原因は12F629の中でLレベルに使おうとした電圧1.2Vは高過ぎてHレベルと見なされたからである。(後日09.7.15 Rail-to-Railアンプ LMC660CNを使ってみたらLレベルが0.55Vまで下がった。Vdd=5Vの時のLレベルは0.15xVdd=0.75Vと定義づけられているので0.55VはLレベルと見なされるはずである。Hレベルは5Vであった。このアンプを使うとインバータ74HC004は除ける)。
そこで電圧レベルを反転させるインバータ74HC004を入れ反転と波形の調整を試みた。その結果、74HC004のピン2からの出力は下図のように通常はLレベル(0V)で、センサが人体の存在を確認するとHレベル(5V)にデジタル的に上昇することがわかった。このような綺麗なパルスパターンは前記の電子工作35で扱ったのと同じで処理しやすい。
回路の説明
1) センサが人体などを検知して上図のHレベルパルスを発生する時LED(R)は点滅する。駆動用のトランジスタなしでもOKであった。
2) SW2の切り替えで、常時(昼夜)センサが反応するモードのほか、CdSを組込んで暗くなってからだけセンサが反応しLEDランプが点灯するモードも選べるようにした(暗くなるにつれてGP2への入力電圧が上がり約3V以上で点灯)。この感度はある程度VR=20Kで調整可能。
3) このセンサの特性から電子工作35のある一定時間センサの前で動かないとLEDランプが点灯しないようにする機能は使えないようなので省いた(GP0―>GND)。
4) LEDランプの点灯時間(約10秒、40秒)をSW1で選択できる機能はそのまま残した。
5) 待機時(LEDランプOFF)の消費電流は約40mAである。
6) 理由不明だが電源を入れて動作するまで1分位かかることがある。
回路を組込んだ実験ボード。中央の白いものがレンズ、その下にセンサがある。その脇右下のICはアンプLM324N。右上にインバータ74HC004。12F629は左下でソケットに差し込まれている。下部真ん中でLEDランプが1個白く点灯中。SW1とSW2は右下に見える。
プログラム
このプログラムは電子工作35のプログラムLamp629C.bas を改変して作成した。すなわち、ある一定時間センサの前で動かないとLEDランプが点灯しないようにする機能に相当する部分を除き、CdSを使って暗くなった時のみ動作する機能を加えた。
'****************** プログラミング備忘録 *******************
'Lamp629D.bas 2000.7.8
'This demo program functions as follows: when RE-210 (sensor) is activated,
'an interrupt occurs, executing the LEDs light-up routine (GPIO.4)
'and then enters into the sleep mode
'Main themes here are how to use the interrupt function, a cheap sensor and Sleep mode (@sleep), Succeeded!!
'******** Pin connection ******************
'Pin 1: Vdd (5.0V) – AC adaptor + 317 regulator
'Pin 8: Vss (GND)
'Pin 6: GPIO.1: input - connected to Sensor section, LED (red) and GND via R=33K
'Pin 3: GPIO.4: output - connected to 3 illuminating LEDs via R=47 ohm
'Pin 2: GPIO 5: input - connected to SW1 which leads to Vdd or GND via R=10K Lightup Time
'Pin 4: GPIO.3: input - connected to Vdd via R=10K
'Pin 7: GPIO.0: input - connected to GND via R=10K
'Pin 5: GPIO.2: input - connected to CdS SW2 which selects Day&Night or Night Only operation
'********** ここからがプログラム本体 ***************
LED var GPIO.4 'LEDs on GPIO.4
LupTimeSW var GPIO.5 'Read H(Vdd Long time) or L(0V Short time)
Nightonly var GPIO.2 'Read CdS-SW - H (day&night) or variable (night only) 新たに加えた
SensIn var GPIO.1 'Input from Sensor
CMCON=7 'Disable Comparators, GP0 & GP1 -> digital
TRISIO=%101111 'GP0, GP1 (Interrupt), GP2 (Cds), GP3, GP5 (LupTime, - inputs
WPU=%000000 'No weak pull-up of any GPIO port
OPTION_REG.7=1 'No weak pull-up
IOC.1=1 'Detect input at GP1 - Essentiall !!
INTCON.7=1 'Enable the use of interrupt 割込み利用
INTCON.3=1 'Enable the port input-level change interrupt
LightupLoop:
LED=0
INTCON.0=0 'Clear GPIF
@Sleep 'Have good sleep! - This is a key command
INTCON.0=0 'Clear GPIF
'*** Main routine ***
if Nightonly=1 then 'GP2への入力はHか? SW2でDay&Night を選択した場合、またはNight Onlyを選択して十分暗い場合には'GP2への入力はHレベルになる
Goto Lightup
Else
Goto LightupLoop ‘GP2への入力はLレベルだったらLightupLoopへ戻り、Hレベル入力を待つ
Endif
Lightup: ‘点灯時間の設定をチェックするルーチン
If LupTimeSW=0 Then ShortTime
If LupTimeSW=1 Then LongTime
ShortTime:
High LED
Pause 11100 '約10 sec の点灯時間
Low LED
Goto LightupLoop
LongTime:
High LED
Pause 44400 '約40 sec の点灯時間
Low LED
Goto LightupLoop
'********** ここまでがプログラム ***************
'Note:
'AKI Programmer's configurations:
'FOSC - INTOSC(GP4:I/O); WDTE - Disable; PWRTE - Enable
'MCLR - MCLRpin ; BODEN - Diable; CP - Disable; CDP - Disable.
'2009.6.21
結論·余談
1) 増幅回路を組むのが多少煩わしいが、この安価なセンサRE-210が十分実用目的に利用できることが分った。
2) 今回のシステムの検知距離は2−3mほどであった。夜間外光がないと距離が延びるようだ。検知距離を大きく延ばす方法があるかもしれない。
3) インバータがなかなか良い仕事をした。
4) プログラムもいたって簡単、既製のものにちょっと手を加えただけでOKだった。
5) 材料費が合計で500円ほど。
6) さて何に使うか。音声チップと組み合わせてジジイの物忘れ防止にでもツカウベガ!
(09.7.15)
1) Rail-to-RailアンプLMC660CNを使うと、消費電流が大きい(?)74HC004が要らなくなりバッテリ駆動できるかもしれない。ただしこのアンプ¥200−260と高い。
2) 秋月のキット“超高感度/一般広角両用タイプ焦電型赤外線センサキット Ver.2”では消費電流が待機時1mA、動作時20mAという。今回のものは待機時で約40mAである。PIC使用以外は原則秋月キットと同じなので手を加えれば省電流化が可能かも?