超聲波洗手液電路通過反射的超聲波檢測人手的存在,并暫時觸發繼電器電磁泵,將消毒液分配到用戶的手上。
該項目使用流行的HC-SR04超聲波傳感器模塊來實現所需的傳感功能。
使用 HC-SR04
HC-SR04超聲波傳感器模塊由幾個專用超聲波換能器組成,額定工作頻率約為40 kHz。
該模塊具有 4 個引腳布局,用于配置到預期的驅動器電路中。
電源引腳排列用 Vcc 和 Gnd 引腳表示。其中Vcc是模塊的正5V輸入,Gnd應該與輸入電源的負線連接。
觸發引腳與 10 us 脈沖一起工作,激活兩個傳感器以發送和接收反射的超聲波。
當檢測到一系列反射信號時,“Echo”引腳變為高電平,用于啟動外部繼電器或電磁閥或任何首選負載。
為了處理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);
}
警告:作者提出的超聲波洗手液電路尚未經過實際測試。
-
電路圖
+關注
關注
10325文章
10718瀏覽量
528377 -
超聲波傳感器
+關注
關注
18文章
578瀏覽量
35904 -
HC-SR04
+關注
關注
9文章
82瀏覽量
42581
發布評論請先 登錄
相關推薦
評論