碰一下,燈就亮了——用 TTP223 + Arduino 做隱形觸碰開關:當你的指尖成為開關
你只是輕輕碰了一下,燈就亮了
沒有按鈕。
沒有機械結構。
連聲音都沒有。
那一秒,只有你知道開關在哪裡。
這不是魔法。這是 TTP223 電容式觸碰開關——只要你的指尖靠近,它就感應到了。
你可以把這個開關藏在木頭裡、壓克力下方、石材檯面之下,甚至是牆壁裡。沒有人看得到它。但你需要時,它就在那裡等你。
今天這篇文章,要帶你從零開始,用 TTP223 + Arduino 做一個真正的隱形觸碰開關——藏在哪裡,由你決定。
想像幾個畫面
在動手之前,先問自己:
如果開關可以藏在任何地方,你會藏在哪裡?
這些應用,都是真實可以做出來的:
藏在床頭木板裡:深夜起床,手掌輕靠床頭,床頭燈無聲亮起——開關在你指定的那塊木頭裡,沒有人知道它在哪裡。
石材檯面下方:廚房潮濕、滿手食材,把開關埋在石材檯面下,手指濕答答也能精準觸發——再也不怕按鍵進水。
沙發扶手布料下:客廳沙發旁,TTP223 隱在布料下,輕碰扶手就能切換燈光模式,看不到開關,只有你的直覺。
博物館互動牆:觀眾用手指在牆面滑過,畫面隨觸碰位置即時變化,沒有人需要鼓起勇氣去「按」一個按鈕。
科教展啟動開關:學校科教展上,學生碰一下就啟動 Arduino 小車,沒有按鍵磨損問題,作品可以被重複使用一整年。
TTP223 的核心魅力只有一個:看不見,但存在。
上半場:TTP223 為什麼特別?
機械開關的痛
傳統開關需要什麼?
實體按鈕、機械結構、需要露在外面、需要施力按下去——而且,按了十萬次之後,那個機械結構就會疲乏、接觸不良、最終失效。
廚房潮濕不敢按。浴室濕手不敢碰。按鍵「喀喀」聲在安靜的房間裡特別刺耳。
這些,都是機械開關與生俱來的問題。
電容感測的原理
TTP223 是一個電容式觸碰感測晶片。它的工作原理和傳統開關完全不一樣。
你可以把它想像成「地鐵月台的安全門感測」。
傳統機械開關:有人用力推門,月台才知道有人——必須真正物理接觸、施力。
TTP223:月台下方的隱形感測場——人還沒碰到門,只要靠近到一定距離,空氣中的電場變化就被偵測到了。
TTP223 的感測極(相當於月台下的感測天線)與人之間隔著一層非導電材質(木頭、壓克力、玻璃),當手指靠近時,人體本身攜帶的電荷改變了感測極周圍的電場,TTP223 偵測到這個電容值變化,瞬間輸出訊號。
手指不需要真正觸碰導體。只要「接近」到改變電場,TTP223 就感應到了。
TTP223 勝過機械開關的五個優點
1. 沒有機械疲乏
機械開關有按壓次數壽命(通常 10萬~100萬次),TTP223 沒有接點,理論上「永久」使用。按了十萬次之後,它還是和第一次一樣敏銳。
2. 可以藏在任何地方
只要是非導電材質(木頭、壓克力、玻璃、石材、塑膠),都可以放在底下觸發。表面看不到任何按鍵,設計自由度極高。
3. 完全防水
機械開關怕水,TTP223 只要介質表面乾燥即可觸發。廚房、浴室、戶外潮濕環境,它都不怕。
4. 安靜無聲
機械開關有「喀喀」聲,TTP223 完全無聲——開關動作時,房間裡一點聲音都沒有。
5. 訊號乾淨,無彈跳
機械開關按下時會有彈跳(bounce)現象,需要軟體防抖。TTP223 輸出乾淨的數位訊號,接到 Arduino 直接讀取,零 debounce。
圖說:TTP223 觸控開關模組,體積極小,僅需三條線就能與 Arduino 連接(Source: Wikimedia Commons)
下半場:動手做
材料清單
| 材料 | 規格建議 | 用途 |
|---|---|---|
| TTP223 觸控模組 | 有小板(TTP223-BA6) | 核心感測元件 |
| Arduino Uno 或 Nano | 含 USB 供電 | 控制核心 |
| **LED(藍色) | 5mm | 觸發後的輸出回饋 |
| 220Ω 電阻 | 1/4W | 限制 LED 電流 |
| 杜邦線 | 母對公、公對公 各數條 | 連接線 |
| 麵包板 | 400 孔 | 快速搭建原型 |
| 觸控感測片 | 10mm×10mm 銅片或鋁片 | 實際觸控區域(可用PCB空板代替) |
| 100nF 濾波電容 | 陶瓷電容 | 電源去耦,降低雜訊 |
| 壓克力板(可選) | 3~5mm 厚 | 覆蓋在感測片上測試 |
淘寶關鍵字:
TTP223 觸控模組、Arduino Nano ATmega328P、TTP223 BA6 觸碰開關
圖說:Arduino 與外部元件的連接方式參考圖。TTP223 的 VCC 接 5V,GND 接 GND,OUT 接 Arduino 的數位腳位(Source: Wikimedia Commons)
電路接線
TTP223 模組只需要三條線:
| TTP223 腳位 | 連接到 |
|---|---|
| VCC | 5V(支援 2.0V~5.5V) |
| GND | GND |
| OUT/DOUT | Arduino 任意數位腳(如 D2) |
觸控感測片:用杜邦線連接到 TTP223 模組的 CS 感測腳。感測片面積建議 10mm×10mm 以上,太小會讓靈敏度不足。
電路安全提醒
⚠️ 供電要注意:
TTP223 支援 2.0V~5.5V,與 Arduino 5V 或 3.3V 系統皆可相容。與 Arduino 共用 5V 電源時,直接連接 VCC 即可。
⚠️ 電源去耦(重要):
在 TTP223 的 VCC 與 GND 之間加一顆 100nF 陶瓷電容(靠近模組本體),可以濾除電源雜訊,避免誤觸發。如果與馬達、LED 等元件共用電源,這點特別重要。
⚠️ 感測片佈局:
- 感測片周圍不要有金屬結構(太靠近 PCB 邊緣、金屬機殼),否則寄生電容變大,會造成固定誤觸發。
- 感測片的引線越短越好,超過 20cm 可能容易受到干擾。
⚠️ ESD 防護(重要):
- 人體隨時帶有靜電,觸摸感測片時可能產生瞬間高電壓。TTP223 對 ESD 敏感,操作時可先觸碰金屬水管或接地放電,避免損壞晶片。
⚠️ 防止接線錯誤:
- TTP223 的 VCC 和 GND 千萬不要接反,一旦反接會立即燒毀模組,無法恢復。建議在通電前用三用電表確認極性。
兩種觸摸模式
TTP223 有兩種工作模式,切換方式非常簡單:
模式一:直接模式(Direct Mode)——預設模式
- TOG 腳(Toggle 腳)接地
- 觸碰時:輸出 HIGH;放開:輸出 LOW
- 適合:感應燈(手靠近持續亮起,離開自動熄滅)
模式二:觸發模式(Toggle Mode)
- TOG 腳接 VCC
- 第一次觸碰:輸出 HIGH 並維持;第二次觸碰:輸出 LOW
- 適合:開關(碰一下亮,再碰一下滅,狀態維持)
💡 小技巧:AHLB 腳位可以反轉輸出極性——接 VCC 輸出 normal(觸發 HIGH),接地輸出 inverted(觸發 LOW)。出廠預設是 normal 模式。
程式碼
// TTP223 觸控開關 — 基本應用
// 觸碰感測片,LED 亮起;放開,LED 熄滅
const int touchPin = 2; // TTP223 OUT 腳位
const int ledPin = 13; // Arduino 內建 LED
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.println("TTP223 觸控開關已啟動");
}
void loop() {
int touchState = digitalRead(touchPin);
// TTP223 輸出 HIGH = 有觸碰;LOW = 無觸碰
if (touchState == HIGH) {
digitalWrite(ledPin, HIGH); // 燈亮
Serial.println("偵測到觸碰 ✓");
} else {
digitalWrite(ledPin, LOW); // 燈滅
}
delay(50); // 小延遲,避免過度頻繁讀取
}
進階應用:觸碰切換模式(Toggle)
如果想要「碰一下亮,再碰一下滅」的切換效果:
// TTP223 Toggle 模式
// 第一次觸碰:LED 亮;第二次觸碰:LED 熄滅
const int touchPin = 2;
const int ledPin = 13;
bool ledState = false;
bool lastTouch = LOW;
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int touch = digitalRead(touchPin);
// 觸碰訊號由 LOW 變 HIGH 時代表一次有效觸碰
if (touch == HIGH && lastTouch == LOW) {
delay(50); // 軟體去抖動
if (digitalRead(touchPin) == HIGH) {
ledState = !ledState;
digitalWrite(ledPin, ledState ? HIGH : LOW);
Serial.println(ledState ? "LED 亮起" : "LED 熄滅");
}
}
lastTouch = touch;
delay(50);
}
測試方式
- 燒錄第一支程式,打開序列埠監視視窗(9600 baud)
- 用手指輕觸感測片(直接觸碰或隔著 3~5mm 壓克力均可)
- 觀察:手指靠近時 LED 亮起,離開時熄滅
- 若訊號不穩定,檢查:
- 感測片是否太靠近金屬
- 供電是否與其他元件共用造成干擾
- 是否需要加 100nF 濾波電容
做出來之後:你可以藏在哪裡?
這個電路組好之後,你可以把它封裝起來,藏在很多地方:
| 藏匿位置 | 觸控介質 | 效果 |
|---|---|---|
| 木桌/木門下方 | 木頭(<10mm) | 碰一下桌面就能觸發 |
| 壓克力展示板後方 | 壓克力(<5mm) | 隱形啟動按鈕 |
| 石材檯面下方 | 石頭(3~5mm) | 廚房 / 浴室潮濕環境首選 |
| 牆壁布料下 | 布料(墊子、毛毯) | 腳踏墊式觸控開關 |
| 3D 列印外殼內 | PLA/ABS(<3mm) | 自製隱形遙控器按鈕 |
那一下觸碰,是你的
到這裡,你已經從無到有,做出了一個真正看不見的開關。
你知道了 TTP223 怎麼感應你指尖的電場,知道了 Arduino 怎麼讀取那個訊號,知道了電容感測為什麼比機械開關更適合隱藏式安裝。
那個「碰一下,燈就亮了」的瞬間——不是魔法。
是你的指尖,啟動了這一切。
想省時間?直接買套件組
自己湊零件麻煩?
這裡整理了一個清單,讓你收到就能直接開始:
淘寶搜尋關鍵字:
TTP223 觸控模組 BA6Arduino Nano ATmega328PArduino 入門套件 電子零件TTP223 觸控開關 套件
推薦組合:
- TTP223 模組 × 3(客廳、臥室、廚房各一)
- Arduino Nano × 1
- 5mm LED × 3 + 220Ω 電阻 × 3
- 麵包板 + 杜邦線
性價比參考: 這組材料在淘寶約 NT$150~250,組好可做三組隱形開關,平均一組不到 NT$100。
也歡迎期待 Part 2——我們會把 TTP223 與藍牙結合,做成一個手機遙控觸發系統,手指碰一下觸控板,手機就收到通知。
那一下觸碰,從此屬於你。
📁 本文電路圖、程式碼均為原創內容,如需轉載請標註出處。



Top comments (0)