在本篇文章中,我們將學習如何使用Arduino和觸摸傳感器TTP223設計基于觸摸的門鎖系統。該門鎖系統是用于開關電路的簡單項目,即借助簡單的觸摸即可打開/關閉伺服電機。只需觸摸一下即可將門鎖定或解鎖。我們將觸摸傳感器TTP223用作開關,并使用LCD來顯示門鎖的狀態,以及使用LED來指示開/關狀態。
該項目的應用領域是家庭和辦公室,只需觸摸即可打開和關閉門。將觸摸傳感器TTP223與Arduino連接用作解鎖門的開關。
TTP223電容式觸摸傳感器
電容式觸摸傳感器模塊基于專用TTP223觸摸傳感器IC。該模塊提供了一個11 x 10.5mm的集成觸摸感應區域,傳感器范圍約為5mm。當觸發傳感器時,板載LED將點亮。觸發后,模塊輸出將從其空閑的低電平切換到高電平。通過焊接跳線允許將其工作模式重新配置為低電平有效或觸發輸出。
TTP223是1鍵觸摸板檢測器IC,適用于檢測電容性元件的變化。它功耗非常低,工作電壓僅為2.0V?5.5V??焖倌J较碌捻憫獣r間最大約為60mS,低功耗模式下@ VDD = 3V的響應時間為220mS。靈敏度可以通過外部電容(0?50pF)來調節。
TTP223電容式觸摸傳感器的工作原理
電容式屏幕不使用手指的壓力來改變電流。取而代之的是,它們可以與任何帶有電荷的物質一起使用-包括人體皮膚。
當手指敲擊屏幕時,微小的電荷會轉移到手指上,從而形成電路,在屏幕的該點產生電壓降。該軟件處理該電壓降的位置并命令隨后的動作。
所需的組件
● Arduino Uno開發板
● TTP223電容式觸摸傳感器
● 1602 LCD顯示屏
● SG90伺服電機
● LED指示燈
● 面包板
● 連接線
連接電路圖
將TTP223觸摸傳感器的信號引腳連接到Arduino數字引腳7。將伺服電機信號引腳連接到Arduino數字引腳3。通過330歐姆電阻將LED連接到Arduino數字引腳5。
如圖所示,將LCD連接到Arduino的模擬引腳A0、A1、A2、A3、A4、A5。
項目工作過程
代碼上傳后,液晶顯示屏將顯示
Touch Based
Door Lock System
伺服電機將復位到原始位置。
如果觸摸了觸摸傳感器,則液晶顯示屏將顯示:
Status: Unlocked
Touch to Lock
同時,伺服電機將旋轉180度,LED點亮。
如果再次觸摸觸摸傳感器,則液晶顯示屏將顯示:
Status: Locked
Touch to Unlock
同時,伺服電機將反向旋轉180度,并且LED會熄滅。
源代碼/程序
以下是使用Arduino和觸摸傳感器TTP223的基于觸摸的門鎖系統的代碼。,編譯并上傳到Arduino UNO開發板。
#include
#include
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);
const int servoPin = 3; // Servo pin
const int touchPin = 7; // Pushtouch pin
int ledPin = 5;
int touchState = 0;
int directionState = 0;
Servo myservo;
int pos = 0;
void setup() {
lcd.begin(16,2);
lcd.print(" Touch Based");
lcd.setCursor(0, 1);
lcd.print("Door Lock System");
myservo.attach(3);
pinMode(touchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop(){
touchState = digitalRead(touchPin);
if (directionState == 0){
if (touchState == HIGH) {
directionState = 1;
for(pos = 0; pos < 180; pos += 1)
digitalWrite(ledPin,1);
lcd.clear();
lcd.print("Status: Unlocked");
lcd.setCursor(0, 1);
lcd.print("Touch to Lock");
{
myservo.write(pos);
delay(15); // waits 15ms to reach the position
}
}
} else if (directionState == 1) {
if (touchState == HIGH) {
directionState = 0;
for (pos = 180; pos>=1; pos -=1)
digitalWrite(ledPin,0);
lcd.clear();
lcd.print("Status: Locked");
lcd.setCursor(0, 1);
lcd.print("Touch to Unlock");
{
myservo.write(pos);
delay(15);
}
}
}
}
編輯:hfy
-
觸摸傳感器
+關注
關注
0文章
122瀏覽量
23060
發布評論請先 登錄
相關推薦
評論