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