在某些應用程序中,需要用戶輸入來控制設備的功能。嵌入式和數字電子產品中使用了不同種類的用戶輸入方法。觸摸傳感器就是其中之一。觸摸傳感器是與微控制器接口的重要且廣泛使用的輸入設備,它使輸入數據更簡單。觸摸傳感器有個別地方可以使用,無論是手機還是液晶顯示器開關。然而,市場上有許多類型的傳感器可用,但電容式觸摸傳感器是觸摸傳感器領域中廣泛使用的類型。
在這個項目中,相同的觸摸傳感器將與 Arduino UNO 接口。Arduino 是一種廣受歡迎且易于使用的開發板。
觸摸傳感器
將用于本項目的觸摸傳感器是電容式觸摸傳感器模塊,傳感器驅動器基于驅動器IC TTP223。TTP223 IC 的工作電壓為 2 V 至 5.5 V,觸摸傳感器的電流消耗非常低。由于價格低廉、電流消耗低且易于集成支持,采用 TTP223 的觸摸傳感器在電容式觸摸傳感器領域很受歡迎。
在上圖中,傳感器的兩側都顯示了引腳圖清晰可見的位置。它還有一個焊接跳線,可用于根據輸出重新配置傳感器。跳線為 A 和 B。默認配置或在焊錫跳線的默認狀態下,觸摸傳感器時輸出從 LOW 變為 HIGH。但是,當設置跳線并重新配置傳感器時,當觸摸傳感器檢測到觸摸時,輸出會改變其狀態。觸摸傳感器的靈敏度也可以通過改變電容來配置。
下圖顯示了不同跳線設置下的不同輸出 -
對于本項目,傳感器將用作出廠發布條件下可用的默認配置。
設備可以通過使用觸摸傳感器以及與微控制器連接來控制。在這個項目中,觸摸傳感器將用于使用 Arduino UNO 和 Relay 來控制燈泡的開或關。
了解繼電器
要連接繼電器,重要的是要對繼電器的引腳描述有一個清晰的認識。繼電器的引腳排列如下圖所示 -
NO常開,NC常接。L1 和 L2 是 Relay 線圈的兩個端子。未施加電壓時,繼電器關閉,POLE 與 NC 引腳連接。當在線圈端子上施加電壓時,繼電器的 L1 和 L2 接通,POLE 與 NO 連接。因此,可以通過改變繼電器的操作狀態來打開或關閉 POLE 和 NO 之間的連接。強烈建議在應用前檢查繼電器規格。繼電器在 L1 和 L2 兩端具有工作電壓。有些繼電器使用 12V,有些使用 6V,有些使用 5V。不僅如此,NO、NC 和 POLE 還具有電壓和電流額定值。對于我們的應用,我們在開關側使用具有 250V、6A 額定值的 5V 繼電器。
所需組件
Arduino UNO
標準立方繼電器 - 5V
2k電阻-1個
4.7k 電阻器 - 1 個
BC549B晶體管
TTP223 傳感器模塊
1N4007 二極管
帶燈座的燈泡
面包板
通過 USB 電纜連接 Arduino 的手機充電器。
很多連接線或 berg 線。
Arduino 編程平臺。
2k電阻,BC549B,1N4007,繼電器可以用繼電器模塊代替。
電路原理圖
將觸摸傳感器與 Arduino 連接的示意圖很簡單,如下所示,
晶體管用于打開或關閉繼電器。這是因為 Arduino GPIO 引腳無法提供足夠的電流來驅動繼電器。在繼電器開啟或關閉的情況下,需要 1N4007 來阻斷 EMI。該二極管用作續流二極管。觸摸傳感器與 Arduino UNO 板連接。
該電路構建在帶有 Arduino 的面包板上,如下所示。
正確的面包板連接可以在下面的示意圖中看到。
使用觸摸傳感器對 Arduino UNO 進行編程以控制燈泡
最后給出了帶有工作視頻的完整程序。在這里,我們將解釋代碼的幾個重要部分。Arduino UNO 將使用 Arduino IDE 進行編程。首先,包含 Arduino 庫以訪問 Arduino 的所有默認功能。
#include
定義將連接繼電器和觸摸傳感器的所有引腳號。這里,觸摸傳感器連接到引腳 A5。內置的 LED 也被使用,它直接連接到板上的引腳 13。繼電器連接到引腳 A4。
/* * 引腳說明 */ int Touch_Sensor = A5; 整數 LED = 13; 詮釋繼電器 = A4;
定義引腳模式,即引腳功能應該是輸入還是輸出。此處輸入觸摸傳感器。繼電器和 LED 引腳輸出。
/* * 引腳模式設置 */ void setup() { pinMode(Touch_Sensor, INPUT); pinMode(LED,輸出); pinMode(繼電器,輸出); }
聲明了兩個整數,其中“條件”用于保存傳感器的條件,無論它是否被觸摸。“狀態”用于保持 LED 和繼電器的狀態,開或關。
/* * 程序流程描述 */ int condition = 0; 整數狀態 = 0;//保持開關狀態。
觸摸傳感器在被觸摸時將邏輯 0 更改為 1。這是由digitalRead()函數讀取的,并且值存儲在條件變量中。當條件為 1 時,LED 和繼電器的狀態發生變化。然而,為了準確檢測觸摸,使用了去抖動延遲。去抖動延遲,延遲(250);用于確認單次觸摸。
無效循環(){ 條件=數字讀取(A5);// 從 Arduino 的 A5 引腳讀取數字數據。 如果(條件 == 1){ 延遲(250);// 去抖動延遲。 如果(條件 == 1){ 狀態 = ~state; // 改變開關的狀態。 數字寫入(LED,狀態); 數字寫入(繼電器,狀態); } } }
測試觸摸傳感器 TTP223 的工作情況
該電路在面包板上進行測試,并連接了一個低功率燈泡。
注意本項目使用230-240V交流電壓,建議使用燈泡時要小心。
/*//=============================================== =================================//
* TTP223 與 Arduino 接口
* 日期:- 3-04-2019
* 作者:- 蘇拉夫古普塔
* 對于:- circuitdigest.com
*///=============================================== ================================//
#include
//#define ON 1
//#定義關閉 0
/*
* 引腳說明
*/
int Touch_Sensor = A5;
整數 LED = 13;
詮釋繼電器 = A4;
/*
* 程序流程說明
*/
整數條件 = 0;
整數狀態 = 0;//保持開關狀態。
/*
* 引腳模式設置
*/
無效設置(){
pinMode(觸摸傳感器,輸入);
pinMode(LED,輸出);
pinMode(繼電器,輸出);
}
無效循環(){
條件=數字讀取(A5);// 從 Arduino 的 A5 引腳讀取數字數據。
如果(條件 == 1){
延遲(250);// 去抖動延遲。
如果(條件 == 1){
狀態=?狀態;// 改變開關的狀態。
數字寫入(LED,狀態);
數字寫入(繼電器,狀態);
}
}
}
-
燈泡
+關注
關注
0文章
109瀏覽量
24025 -
觸摸傳感器
+關注
關注
0文章
122瀏覽量
23064 -
Arduino
+關注
關注
188文章
6470瀏覽量
187150
發布評論請先 登錄
相關推薦
評論