超音波ハンドサニタイザー回路

問題を排除するために楽器を試してください





超音波ハンドサニタイザー回路は、反射した超音波を介して人間の手の存在を検出し、リレーソレノイドポンプを瞬間的にトリガーして、ユーザーの手に消毒液を分配します。

このプロジェクトでは、必要なセンシング機能に人気のHC-SR04超音波センサーモジュールを使用しています。



HC-SR04の使用

HC-SR04超音波センサーモジュールは、約40kHzの周波数で動作および応答するように定格された2つの特殊な超音波トランスデューサーを使用して構築されています。

モジュールには、目的のドライバ回路に構成するための4つのピン配列があります。



電源のピン配列は、VccピンとGndピンで示されます。ここで、Vccはモジュールの正の5V入力であり、Gndは入力電源の負のラインに接続されていると想定されています。

トリガーピンは、反射された超音波を送受信するために2つのトランスデューサーをアクティブにする10usパルスで動作します。

一連の反射信号が検出されると、「エコー」ピンがハイになり、外部リレー、ソレノイド、または任意の優先負荷を開始します。

HC-SR04とArduinoのインターフェース

HC-SR04モジュールを処理し、高精度の超音波近接検出器として機能させるには、Arduinoなどのマイクロコントローラーユニットが必要です。

以下に示すコードで適切にプログラムすると、ArduinoはHC-SR04と互換性があり、意図した手の近接検出と消毒剤ディスペンシングメカニズムのアクティブ化が可能になります。

ArduinoとHC-SR04およびリレーステージのインターフェース配線図を次の図に示します。

運用の詳細

この超音波ハンドサニタイザー回路の操作手順は簡単で、次の点で理解できます。

Arduinoは、HC-SR04モジュールのトリガーパルスに10 usのアクティベーションパルスを提供します。これにより、モジュールは、ユーザーの手であるターゲットから反射パルス列を送受信できます。

この反射データは、HC-SR04モジュールのエコーピンからrduinoに送信されます。

Arduinoは信号を処理し、ボードのピン7で安定したDC出力を可能にします。これは、10kの抵抗と100uFのコンデンサを介してリレードライバステージに接続されています。

Arduinoのピン#7は、HC-SR04モジュールが設定された近接範囲内でユーザーの手を検出し続ける限り、高いままであると想定されています。

これは、この期間中、リーイーもオンのままになることを意味しますが、これは望ましくありません。

リレーとattachwdディスペンシングメカニズムまたはポンプが数秒間だけ作動することを確認するために、コンデンサがBC547のベースと直列に配置されます。

人間の手の存在によりピン#7がハイになると、BC547は、ベースの100uFが完全に充電されている間だけ導通します。これは、数秒以内に発生します。

100uFが完全に充電されると、BC547ベースはベースドライブから禁止され、導通を停止してリレーをオフにし、付属の手指消毒剤ディスペンシングメカニズムを無効にします。

手を離すと、HC-SR04はEcho信号のArduinoへの送信を停止し、Arduinoはピン#7を論理ゼロに反転させます。

この時点で、100uFのベースコンデンサはArduinoのピン#7と右側の10kの接地抵抗を介して放電を開始します。

プログラムコード

HC-SR04とArduinoを使用した上記の超音波ハンドサニタイザー回路のプログラムコード全体を以下に示します。


const int trigger = A1
const int echo = A2
int vcc = A0
int gnd = A3
int OP = 7
long Time
float distanceCM
float distance = 15 // set threshold distance in cm
float resultCM
void setup()
{
pinMode(OP,OUTPUT)
pinMode(trigger,OUTPUT)
pinMode(echo,INPUT)
pinMode(vcc,OUTPUT)
pinMode(gnd,OUTPUT)
}
void loop()
{
digitalWrite(vcc,HIGH)
digitalWrite(gnd,LOW)
digitalWrite(trigger,LOW)
delay(1)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time=pulseIn(echo,HIGH)
distanceCM=Time*0.034
resultCM=distanceCM/2
if(resultCM<=distance)
{
digitalWrite(OP,HIGH)
delay(4000)
}
if(resultCM>=distance)
{
digitalWrite(OP,LOW)
}
delay(10)
}

警告: 提案された超音波手指消毒回路は、著者によって実際にテストされていません。アイデアはからインスピレーションを得ました この記事 、およびディスペンサーポンプまたはソレノイドに必要な瞬間的なオン/オフ機能を有効にするために適切に変更されます。




前:ボディハムセンサー警報回路 次へ:この回路を使用してトランジスタペアをすばやく一致させる