在這個項目中,我們將觸摸傳感器與 8051 微控制器 AT89S52 連接。如果您是 8051 微控制器的新手,那么您可以從LED 閃爍開始 8051。
什么是電容式觸摸傳感器?
電容式觸控作用于我們身體上可用的靜電荷。屏幕已經(jīng)充滿了電場。當我們觸摸屏幕時,由于流經(jīng)我們身體的靜電荷形成閉合電路。此外,軟件決定要執(zhí)行的位置和動作。電容式觸摸屏不適用于手套,因為手指和屏幕之間不會有任何傳導(dǎo)。
此項目中使用的觸摸傳感器
本項目使用的觸摸傳感器為電容式觸摸傳感器模塊,傳感器驅(qū)動基于驅(qū)動IC TTP223。IC TTP23的工作電壓為 2.0V 至 5.5V ,觸摸傳感器的電流消耗非常低。由于價格低廉、電流消耗低且易于集成支持,采用 TTP223 的觸摸傳感器在其細分市場中廣受歡迎。
在上圖中,傳感器的兩側(cè)都顯示了引腳圖清晰可見的位置。它還有一個焊接跳線,可用于根據(jù)輸出重新配置傳感器。跳線為 A 和 B。默認配置或在焊錫跳線的默認狀態(tài)下,觸摸傳感器時輸出由低變?yōu)楦摺5?,當設(shè)置跳線并重新配置傳感器時,當觸摸傳感器檢測到觸摸時,輸出會改變其狀態(tài)。觸摸傳感器的靈敏度也可以通過改變電容來配置。
下圖顯示了不同跳線設(shè)置下的不同輸出 -
對于這個項目,傳感器將在出廠發(fā)布條件下可用的默認配置中使用。在這個項目中,觸摸傳感器將用于控制使用 AT89S52 微控制器的交流燈泡。
繼電器與 8051 微控制器連接。繼電器的引腳排列如下圖所示 -
NO常開,NC常接。L1 和 L2 是 Relay 線圈的兩個端子。未施加電壓時,繼電器關(guān)閉,POLE 與 NC 引腳連接。當電壓施加在線圈端子上時,繼電器的 L1 和 L2 接通,POLE 與 NO 連接。因此,可以通過改變繼電器的操作狀態(tài)來打開或關(guān)閉 POLE 和 NO 之間的連接。
所需材料
AT89S52 8051 微控制器
標準立方繼電器 - 5V
11.592 MHz 晶振
33pF 電容器 - 2 個
2k電阻-1個
4.7k 電阻器 - 1 個
10uF電容
BC549B晶體管
TTP223 傳感器
1N4007 二極管
帶燈座的燈泡
面包板
很多跳線或 berg 線。
AT89S52 編程環(huán)境,帶有 Programmer Kit 和帶有編譯器的 IDE
電路原理圖
使用觸摸傳感器和 8051 控制光的示意圖如下圖所示,
晶體管用于打開或關(guān)閉繼電器。觸摸傳感器與 AT89S52 微控制器單元相連。該電路是使用面包板構(gòu)建的。
編程 Atmega AT89S52 微控制器
最后給出完整的 8051 代碼。在這里,我們解釋了代碼的幾個部分。如果您是 8051 微控制器的新手,那么首先學(xué)習(xí)如何對 8051 微控制器進行編程。
以下代碼行用于將繼電器和觸摸傳感器與 8051 微控制器集成。REGX52 是 AT89S52 微控制器單元的頭文件。還聲明了一個延遲函數(shù)。
#include// RELAY Pin sbit RELAY = P1^0; // 引腳 P1.0 被命名為 RELAY // 觸摸傳感器引腳 sbit Touch = P1^1; // Pin P1.1 被命名為 Touch Sensor //函數(shù)聲明 void delay(char ms);
觸摸和繼電器初始化為 0。觸摸傳感器將邏輯 0 更改為 1。如果在激活觸摸傳感器時語句為真,則繼電器的狀態(tài)會發(fā)生變化。然而,為了準確檢測觸摸,使用了去抖動延遲。
// 主函數(shù) void main(void) { 繼電器 = 0; 觸摸 = 0; while(1){ if (Touch == 1){ delay(15); // 去抖動延遲 if (Touch == 1){ RELAY = !RELAY; //切換繼電器引腳 延遲(30); } } } }
下面,編寫延遲函數(shù)。該函數(shù)以毫秒格式接受輸入,并使用兩個for循環(huán)生成延遲。這種延遲不太準確,但可以接受,主要取決于時鐘周期時序。
/*延遲相關(guān)函數(shù)*/ void delay(char ms){ 整數(shù)a,b; 對于(a=0;a<1295;a++){ 對于 (b=0; b
這個觸摸控制的燈電路在面包板上進行了測試,并連接了一個低功率燈泡。
/* 名稱:touchsensor.c
* 目的:用于電路文摘。與 8051 (AT89S52) 連接的觸摸傳感器
* 作者:蘇拉夫古普塔
* 日期 : 22-03-19
* 修訂:無
*/
#include
// 繼電器引腳
位繼電器 = P1^0; // 引腳 P1.0 被命名為 RELAY
// 觸摸傳感器引腳
sbit 觸摸 = P1^1; // Pin P1.1 被命名為 Touch Sensor
//函數(shù)聲明
無效延遲(字符毫秒);
// 主功能
無效主要(無效)
{
繼電器 = 0;
觸摸 = 0;
而(1){
如果(觸摸 == 1){
延遲(15);// 去抖動延遲
如果(觸摸 == 1){
繼電器=!繼電器;// 切換繼電器引腳
延遲(30);
}
}
}
}
/*延時相關(guān)函數(shù)*/
無效延遲(字符毫秒){
整數(shù)a,b;
對于(a=0;a<1295;a++){
對于 (b=0; b
}
}
-
微控制器
+關(guān)注
關(guān)注
48文章
7552瀏覽量
151426 -
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108005 -
觸摸傳感器
+關(guān)注
關(guān)注
0文章
122瀏覽量
23064
發(fā)布評論請先 登錄
相關(guān)推薦
評論