👆 سنسور لمسی TTP223 (TTP223 Capacitive Touch Sensor)

اسم انگلیسیTTP223 Capacitive Touch Sensor
در ووکوی (Wokwi)نسخه‌ی آماده‌ای سراغ نداریم
دسته🌡️ سنسورها
در شبیه‌ساز فارسیمود ساده (بدون کد) و مود آردوینو · رایگان

سنسور لمسی TTP223 (Capacitive Touch Sensor) یک ماژول کوچک با یک صفحه‌ی مسی گرد است که بدون هیچ قطعه‌ی متحرکی، نزدیک شدن انگشت را حس می‌کند. بدن ما مثل یک خازن کوچک عمل می‌کند؛ تراشه‌ی TTP223 تغییر ظرفیت صفحه را می‌بیند و پایه‌ی SIG را HIGH می‌کند. حتی از پشت یک ورق نازک پلاستیک یا شیشه هم کار می‌کند، پس می‌شود آن را زیر بدنه‌ی دستگاه پنهان کرد. با آن چراغ خواب لمسی، کلید بی‌صدا، زنگ لمسی یا دکمه‌ای که آب و گرد و خاک به آن آسیبی نمی‌زند می‌سازی.

سنسور لمسی در ووکوی (Wokwi)

تا جایی که می‌دانیم ووکوی نسخه‌ی آماده‌ی این قطعه را ندارد. خروجی TTP223 فقط یک سیگنال دیجیتال است که هنگام لمس HIGH می‌شود؛ پس در ووکوی یک wokwi-pushbutton بین 5V و پین 2، همراه یک مقاومت ۱۰ کیلو از پین 2 به GND، همان رفتار را می‌سازد. اگر با ESP32 کار می‌کنی، پین‌های لمسی خود ESP32 بدون هیچ ماژولی لمس را حس می‌کنند؛ پین لمسی ESP32 با touchRead را ببین.

{
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
    { "type": "wokwi-pushbutton", "id": "btn1", "top": -110, "left": 100, "attrs": { "color": "green" } },
    { "type": "wokwi-resistor", "id": "r1", "top": -40, "left": 100, "attrs": { "value": "10000" } },
    { "type": "wokwi-resistor", "id": "r2", "top": -40, "left": 260, "attrs": { "value": "220" } },
    { "type": "wokwi-led", "id": "led1", "top": -120, "left": 300, "attrs": { "color": "yellow" } }
  ],
  "connections": [
    [ "btn1:1.l", "uno:5V", "red", [] ],
    [ "btn1:2.l", "uno:2", "green", [] ],
    [ "r1:1", "uno:2", "green", [] ],
    [ "r1:2", "uno:GND.1", "black", [] ],
    [ "uno:9", "r2:1", "orange", [] ],
    [ "r2:2", "led1:A", "orange", [] ],
    [ "led1:C", "uno:GND.1", "black", [] ]
  ]
}

در تینکرکد فارسی سنسور TTP223 در نسخه‌ی Plus شبیه‌سازی می‌شود و مدار آماده‌ی چراغ لمسی را دارد.

سیم‌کشی با آردوینو

پایه‌ی قطعهوصل به
SIGپین 2
VCC5V (ماژول ۲ تا ۵٫۵ ولت را قبول می‌کند)
GNDGND
آند LED چراغ (از راه ۲۲۰ اهم)پین 9 (PWM)
کاتد LEDGND

پشت بیشتر ماژول‌ها دو جای لحیم کوچک با اسم A و B هست. A سطح خروجی را برعکس می‌کند (لمس = LOW) و B ماژول را به حالت «تاگل» می‌برد که با هر لمس خروجی عوض می‌شود و می‌ماند. برای کد این صفحه هر دو را باز بگذار؛ یعنی حالت پیش‌فرض: لمس = HIGH و فقط تا وقتی انگشت روی سنسور است.

کد نمونه

یک چراغ لمسی واقعی دو حرکت را از هم جدا می‌کند: لمس کوتاه چراغ را روشن یا خاموش می‌کند و نگه‌داشتن بیشتر از ۸۰۰ میلی‌ثانیه، نور را یک پله عوض می‌کند. سه پله‌ی نور با analogWrite روی پین 9 ساخته می‌شوند؛ اگر PWM برایت تازه است، توضیحش را بخوان.

// TTP223 on pin 2: short tap = lamp on/off, long press = next brightness.
const int TOUCH_PIN = 2;
const int LAMP_PIN = 9;                 // PWM pin, LED through 220 ohm
const unsigned long LONG_MS = 800;
const int LEVELS[3] = {40, 120, 255};

bool lampOn = false;
int level = 2;
bool wasTouched = false;
bool longDone = false;
unsigned long touchStart = 0;

void showLamp() {
  analogWrite(LAMP_PIN, lampOn ? LEVELS[level] : 0);
}

void setup() {
  Serial.begin(9600);
  pinMode(TOUCH_PIN, INPUT);            // the TTP223 drives the line itself
  pinMode(LAMP_PIN, OUTPUT);
  showLamp();
}

void loop() {
  bool touched = digitalRead(TOUCH_PIN) == HIGH;

  if (touched && !wasTouched) {         // a finger just arrived
    touchStart = millis();
    longDone = false;
  }
  if (touched && !longDone && millis() - touchStart >= LONG_MS) {
    longDone = true;                    // long press: next brightness
    level = (level + 1) % 3;
    lampOn = true;
    showLamp();
    Serial.print("Brightness level ");
    Serial.println(level);
  }
  if (!touched && wasTouched && !longDone) {   // a short tap was released
    lampOn = !lampOn;
    showLamp();
    Serial.println(lampOn ? "Lamp on" : "Lamp off");
  }
  wasTouched = touched;
  delay(10);
}

متغیر longDone نمی‌گذارد بعد از یک نگه‌داشتن طولانی، رها کردن انگشت هم به‌عنوان لمس کوتاه حساب شود.

اشتباه‌های رایج

آموزش‌های مرتبط

سؤال‌های رایج

سنسور لمسی TTP223 مقاومت پول‌آپ می‌خواهد؟

نه. خروجی SIG را خود تراشه HIGH یا LOW می‌کند؛ کافی است پایه را با pinMode روی INPUT بخوانی.

پدهای A و B روی ماژول TTP223 چه کار می‌کنند؟

با لحیم کردن A، خروجی برعکس می‌شود و لمس LOW می‌دهد. با لحیم کردن B، ماژول به حالت تاگل می‌رود و هر لمس خروجی را عوض می‌کند و نگه می‌دارد. حالت پیش‌فرض هر دو باز است.

TTP223 در تینکرکد فارسی رایگان است؟

سنسور لمسی TTP223 در تینکرکد فارسی در نسخه‌ی Plus شبیه‌سازی می‌شود. در ووکوی هم نسخه‌ی آماده ندارد و یک دکمه با مقاومت پول‌داون جایش را می‌گیرد.

📖 طرز کار، مشخصات فنی و نکته‌های خرید این قطعه در دانشنامه‌ی تینکرکد فارسی: سنسور لمسی TTP223 آمده است.

آموزش‌هایی که از این قطعه استفاده می‌کنند

👆

پین لمسی ESP32: ساخت کلید لمسی بدون هیچ قطعه‌ای با touchRead

قطعه‌های دیگرِ سنسورها

🧩

ماژول سنسور لرزش SW-420

SW-420 Vibration Sensor Module

📏

سنسور فاصله اولتراسونیک (HC-SR04)

HC-SR04 Ultrasonic Sensor

🌡️

سنسور دما و رطوبت DHT11 / DHT22

DHT22 / DHT11 Temperature & Humidity Sensor

🌞

سنسور نور LDR (فتورزیستور)

Photoresistor (LDR)

🚶

سنسور حرکت PIR

PIR Motion Sensor (HC-SR501)

🌡️

سنسور دما TMP36 / LM35

TMP36 / LM35 Temperature Sensor

همه‌ی ۱۰۵ قطعه ← · آموزش مدار

سنسور لمسی TTP223 را در شبیه‌ساز امتحان کن 🚀