簡易近接スイッチ(赤外線方式)

概要

最近の公衆トイレには、自動水洗方式が多く採用されています。 利用者が用を足して離れると、自動で水洗してくれます。 どのような仕組みなのか詳しくは分かりませんが、利用者の検出には、おそらく赤外線による近接スイッチ方式 を使用しているものと考えられます。

そこで今回は、同様の機能(近接スイッチ)を実現してみました。 センサーには、安価で入手可能な、シャープ測距モジュール「GP2Y0A21YK」を使用しました。

<GP2Y0A21YKの概観>

<簡易近接スイッチ(赤外線方式)の仕様>

スイッチの感応距離を自由に設定可能とします。(10cm~80cm)

設定した感応距離以下になると、LEDが点滅し、ブザーが鳴ります。

動作原理

測距モジュール「GP2Y0A21YK」の出力電圧を常時監視し、設定された電圧以上になると、LEDおよび圧電 スピーカを制御します。

動作原理(ハードウェア)

◎距離の測定 「GP2Y0A21YK」は、対象物までの距離に比例(非線形)した電圧を出力するので、この電圧を利用します。

<GP2Y0A21YKの特長>

測定距離=10~80cm

出力=アナログ電圧出力

電源=4.5V~5.5V

消費電流=30~40mA

<GP2Y0A21YKのブロックダイアグラム>

<GP2Y0A21YKの特性>

動作原理(ソフトウェア)

◎距離の測定 「GP2Y0A21YK」の出力電圧を、A/D変換で50回取り込み、その平均値を求め、距離電圧とします。

◎感応距離の設定電圧(リミット) スイッチ(SW)が押下されると、その時の距離電圧をEEPROMに記録し、感応距離の設定電圧とします。 感応距離の場所に、対象物を置いてから、スイッチを押下してください。 EEPROMに記録されるので、次回起動時からは設定が不要となります。

◎制御出力 距離電圧が、設定電圧を上回ると、LEDを点滅させ、ブザーを鳴らせます。

回路図

ソースコード

//********************************************************************** /* ＜簡易近接センサー＞ */ //********************************************************************** #define BYTE unsigned short #define WORD unsigned int #define DWORD unsigned long #define ON 1 #define OFF 0 sbit LED at GPIO.B4; sbit SW at GPIO.B3; //********************************************************************** WORD measurement() { BYTE cnt; WORD ad; // ad = 0; for (cnt = 0; cnt < 50; cnt++) { ad += ADC_Get_Sample(0); } return(ad / 50); } //********************************************************************** void main() { WORD ad, limit; // OSCCON = 0b01110000; CMCON0 = 0b00000111; ANSEL = 0b00000001; TRISIO = 0b00101001; // PWM1_Init(1000); PWM1_Set_Duty(PR2 / 2); PWM1_Stop(); // ADC_Init(); // LED = OFF; limit = EEPROM_Read(0); limit <<= 8; limit |= EEPROM_Read(1); // while (1) { ad = measurement(); if (limit < ad) { LED = ON; PWM1_Start(); Delay_ms(100); LED = OFF; PWM1_Stop(); Delay_ms(100); } if (SW == 0) { limit = ad; EEPROM_Write(0, (limit >> 8) & 0xFF); EEPROM_Write(1, limit & 0xFF); } } } //**********************************************************************

動作確認

「GP2Y0A21YK」には、リード線を半田付けして、ブレッドボードに接続しています。 左側:距離電圧が、設定電圧以下の時は、LEDおよびブザーの制御はしません。 右側:距離電圧が、設定電圧を超えると、LEDが点滅し、ブザーが鳴ります。 如何でしょうか? 本スイッチは「ホームセキュリティ対策」にも、多いに役立ちそうですね

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細 This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details