超声波洗手液电路通过反射的超声波检测人手的存在,并暂时触发继电器电磁泵,将消毒液分配到用户的手上。
该项目使用流行的HC-SR04超声波传感器模块来实现所需的传感功能。
使用 HC-SR04
HC-SR04超声波传感器模块由几个专用超声波换能器组成,额定工作频率约为40 kHz。
该模块具有 4 个引脚布局,用于配置到预期的驱动器电路中。
电源引脚排列用 Vcc 和 Gnd 引脚表示。其中Vcc是模块的正5V输入,Gnd应该与输入电源的负线连接。
触发引脚与 10 us 脉冲一起工作,激活两个传感器以发送和接收反射的超声波。
当检测到一系列反射信号时,“Echo”引脚变为高电平,用于启动外部继电器或电磁阀或任何首选负载。
HC-SR04 与 Arduino 接口
为了处理HC-SR04模块,并使其能够作为精密超声波接近探测器工作,我们需要一个微控制器单元,如Arduino来完成这项任务。
当使用下面给出的代码进行适当编程时,Arduino 将与 HC-SR04 兼容,用于预期的手部接近检测和消毒剂分配机制的激活。
Arduino与HC-SR04和继电器级的接口接线图如下图所示:
操作细节
这种超声波洗手液回路的操作步骤很简单,可以通过以下几点来理解:
Arduino 为 HC-SR04 模块触发脉冲提供 10 us 激活脉冲,使模块能够发送和接收来自目标(用户手)的反射脉冲序列。
这些反射的数据从 HC-SR04 模块的回波引脚发送到 rduino。
Arduino 处理信号并在电路板的引脚 7 上实现稳定的直流输出,该引脚通过 10k 电阻器和 100uF 电容器与继电器驱动器级连接。
只要 HC-SR04 模块继续在设定的接近范围内检测到用户的手,Arduino 的引脚 #7 应该保持高电平。
这意味着在此期间,re;ay 也将保持打开状态,这是我们不希望的。
为了确保继电器和连接的分配机械或泵仅工作几秒钟,将电容器与 BC547 的底座串联。
当引脚#7由于人手的存在而变高时,BC547 仅在其基本 100uF 充满电的情况下传导,这在几秒钟内发生。
一旦 100uF 充满电,BC547 底座就会被禁止与底座驱动器联系,它会停止导通,关闭继电器并禁用连接的洗手液分配机构。
当手被移开时,HC-SR04停止向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);
}
警告:作者提出的超声波洗手液电路尚未经过实际测试。
全部0条评论
快来发表一下你的评论吧 !