Blogs
TTP223 Capacitive Touch Sensor Module (Red)
TTP223 Capacitive Touch Sensor Module (Red)
Single-Key Touch Detection with Digital Output for Arduino and DIY Projects
Introduction
The TTP223 is a capacitive touch sensor module that detects human touch through a small metal pad. This low-power module provides a digital output signal when touched and is commonly used in touch-controlled projects.

Key Features
Touch Detection
Sensitive human touch recognition
Low Power
1.5-5.5V operation with low current consumption
Output Modes
Toggle or momentary output modes
Adjustable
Onboard sensitivity capacitor
Technical Specifications
Operating Voltage | 1.5V – 5.5V DC |
---|---|
Current Consumption | 2.5μA (standby), 8μA (active) |
Response Time | 60ms (typical) |
Output Type | Digital (HIGH/LOW) |
Output Mode | Toggle or momentary (jumper selectable) |
Operating Temperature | -20°C to +70°C |
PCB Dimensions | 15mm × 11mm |
Pin Configuration
Pin Label | Function | Connection |
---|---|---|
VCC | Power Supply (1.5-5.5V) | 3.3V/5V |
GND | Ground | GND |
OUT | Digital Output | Digital Pin |
A | Mode Selection | Jumper to GND/VCC |
Note: The “A” pin controls output mode – connect to GND for toggle mode or VCC for momentary mode
Wiring with Arduino

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Basic Digital Connection: // VCC → 5V // GND → GND // OUT → D2 (or any digital pin) void setup() { pinMode(2, INPUT); Serial.begin(9600); } void loop() { if(digitalRead(2) == HIGH) { Serial.println("Touch detected!"); } } |
Mode Selection
- Locate the solder jumper labeled “A” on the back of the module
- For toggle mode (touch on/off): Connect “A” to GND
- For momentary mode (active while touched): Connect “A” to VCC
- Default configuration is usually momentary mode
Sensitivity Adjustment

- Locate the small capacitor near the touch pad (typically labeled C1)
- To increase sensitivity: Replace with a smaller capacitor value
- To decrease sensitivity: Replace with a larger capacitor value
- Default is usually 2.2nF (222 marking)
Advanced Applications
Touch-Activated Relay
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
const int relayPin = 3; const int touchPin = 2; bool relayState = false; void setup() { pinMode(relayPin, OUTPUT); pinMode(touchPin, INPUT); } void loop() { if(digitalRead(touchPin) { relayState = !relayState; digitalWrite(relayPin, relayState); delay(200); // Debounce } } |
Capacitive Keyboard
1 2 3 4 5 6 7 |
void loop() { if(digitalRead(2)) { Keyboard.press('A'); delay(50); Keyboard.releaseAll(); } } |
Multi-Touch Panel
1 2 3 4 5 6 7 8 9 10 11 |
const int touchPins[] = {2,3,4,5}; const int numPins = 4; void checkTouches() { for(int i=0; i<numPins; i++) { if(digitalRead(touchPins[i])) { Serial.print("Touch detected on pin "); Serial.println(i); } } } |
Troubleshooting
No Response to Touch
- Verify power connections (1.5V minimum required)
- Check output mode jumper setting
- Try increasing sensitivity capacitor value
False Triggers
- Decrease sensitivity with larger capacitor
- Keep away from metal surfaces
- Add ground plane around touch pad
Inconsistent Behavior
- Ensure stable power supply
- Add 0.1μF decoupling capacitor near VCC/GND
- Check for loose connections