ESP32 kapasitif dokunmatik sensör pinleri (capacitive touch pins); harici bir dokunmatik sürücü çipine ihtiyaç duymadan, doğrudan insan vücudunun taşıdığı kapasitans değişimlerini yüksek hassasiyetle algılayabilen yerleşik bir donanımdır.
Nesnelerin İnterneti (IoT) ve akıllı ev otomasyon projelerinde fiziksel butonlar yerine dokunmatik yüzeylerin tercih edilmesi, hem estetik açıdan şık bir görünüm sunar hem de mekanik aşınmaları tamamen ortadan kaldırır.
Bu pinler, basit dokunmatik arayüzlerin (butonların) yerini alabileceği gibi, güç tüketiminin kritik olduğu pilli projelerde ESP32’yi derin uykudan (deep sleep) uyandırmak için de mükemmel birer kesme (interrupt) tetikleyicisidir. Bu rehberimizde, kapasitif dokunma algılamasının arkasındaki şarj/deşarj fiziğini, PCB üzerindeki donanımsal tasarım kurallarını, gürültü filtreleme tekniklerini ve derin uyku entegrasyonunu en ince mühendislik ayrıntılarıyla ele alacağız.

Yazılım tarafında dokunmatik değerleri okumak için, okumak istediğiniz GPIO numarasını parametre olarak alan dahili `touchRead(GPIO)` fonksiyonu kullanılır. Bu fonksiyon, anlık dokunma seviyesini sayısal bir değer olarak döner.
ESP32 Kapasitif Dokunmatik Sensör Fiziksel Çalışma Prensibi
ESP32’nin içinde yer alan kapasitif dokunmatik algılama donanımı, bir anahtarlamalı kondansatör (switched-capacitor) şarj/deşarj devresine dayanır. Sistem, ilgili GPIO pinine bağlı olan dokunma pedinin sığasını (kapasitansını) sabit bir dahili akım kaynağı ile sürekli olarak belirli bir voltaj sınırına kadar şarj ve deşarj eder. Bu şarj/deşarj çevriminin frekansı, pindeki toplam sığa ile belirlenir.
İletken bir plaka (bakır ped) havada dururken kendi üzerinde çok küçük bir boşta kalma sığasına (
) sahiptir. İletken yapıda olan insan parmağı pede yaklaştığında veya dokunduğunda, parmak ile toprak (şase) arasında oluşan parazitik sığa (
) devreye girer. Bu durum pindeki toplam sığayı üst üste binerek artırır:
![]()
Elektriğin temel sığa-akım denklemi
‘dir. Sabit şarj akımı (
) altında, sığa (
) arttığı için pindeki gerilimin yükselme süresi (
) uzar. ESP32, belirli bir zaman penceresi (ölçüm penceresi) boyunca kaç adet şarj/deşarj çevrimi gerçekleştiğini dahili bir sayaç ile sayar. Pilde sığa arttığında (parmak dokunduğunda) şarj süresi uzayacağı için, ölçüm penceresi içine sığan çevrim sayısı (okunan ham sayısal değer) keskin bir şekilde düşer.
Örneğin, boşta duran bir dokunmatik pinden okunan değer tipik olarak
seviyelerindeyken, parmak dokunduğu anda bu değer sığa artışından dolayı
seviyelerine geriler. Yazılımda bu düşüşü bir eşik değer (threshold) ile takip ederek dokunma durumunu algılarız.
ESP32 Kapasitif Dokunmatik GPIO Pin Haritası
ESP32 SoC üzerinde 10 adet bağımsız kapasitif dokunmatik giriş kanalı yer alır. Geliştirme kartınızın pin yapısına göre bu pembe renkli dokunmatik kanalları kolayca bulabilirsiniz:

ESP32 entegresinin tüm donanımsal pin kısıtlamalarını ve genel amaçlı giriş/çıkış sınırlarını incelemek isterseniz ESP32 Pin Referansı Kılavuzumuzu inceleyebilirsiniz.
Dahili dokunmatik sensörlerin fiziksel GPIO karşılıkları aşağıdaki gibidir:
- T0: GPIO 4
- T1: GPIO 0 (Strapping pini – boot kısıtlamalarına dikkat edilmelidir)
- T2: GPIO 2 (Dahili mavi LED’e bağlıdır)
- T3: GPIO 15 (Strapping pini)
- T4: GPIO 13
- T5: GPIO 12 (Kritik strapping pini – boot anında HIGH olmamalıdır)
- T6: GPIO 14
- T7: GPIO 27
- T8: GPIO 33
- T9: GPIO 32
Yazılımsal Pin Yer Değiştirme Sorunu (T8 / T9): Bazı eski Arduino Core kütüphane sürümlerinde, GPIO 32 ve GPIO 33 için dokunmatik kanal tanımlamalarında küçük bir yazılım hatası mevcuttur. Eğer yazılımınızda GPIO 32’yi okumak istediğinizde yanıt alamıyorsanız kodunuzda T8 yerine T9 (veya tam tersi) olarak çağırarak bu yazılımsal eşleme hatasını kolayca bypass edebilirsiniz.
Dahili Dokunma Sensörlerini Okuma ve Grafik Analizi
Arduino IDE kullanarak ESP32 programlamaya başlamadan önce, gerekli tüm araç zinciri kurulumlarını eksiksiz tamamladığınızdan emin olmak için Arduino IDE’ye ESP32 Desteği Kurmak rehberimizi inceleyebilirsiniz.
Aşağıdaki basit kod bloğu, GPIO 4 (
) kanalından kapasitif dokunma verisini okuyarak seri port üzerinden bilgisayara aktarır:
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("ESP32 Dokunma Testi Baslatildi");
}
void loop() {
// GPIO 4 (T0) pinindeki dokunmatik degeri oku ve yazdir
Serial.println(touchRead(4));
delay(200);
}Kod yükleme işlemini tamamladıktan sonra, GPIO 4 pinine basit bir erkek jumper kablo bağlayın. Kablonun açıkta kalan metal ucuna parmağınızla dokunduğunuzda, okunan değerlerin aniden düştüğünü göreceksiniz:

Değerlerdeki bu dinamik değişimi görsel olarak izlemek için Arduino IDE menüsünden Araçlar > Seri Çizici (Tools > Serial Plotter) ekranını açabilirsiniz.
Uygulama Projesi: Dokunma Kontrollü LED Yakan Devre
Bu uygulamamızda, bir kablo ucuna sarılmış küçük bir parça alüminyum folyoyu kapasitif dokunma pedi olarak kullanacağız. Parmağımızı bu iletken pede yaklaştırdığımızda, ESP32 bunu algılayarak GPIO 16’ya bağlı olan LED’i yakacaktır.
Gerekli Malzemeler
- ESP32 Geliştirme Kartı
LED ve
akım sınırlama direnci- Breadboard ve bağlantı kabloları
- Küçük bir parça alüminyum folyo (dokunma pedi olarak)

Alüminyum folyo pedine dokunduğumuzda sığa artışı çok daha yüksek olacağı için okunan değerler tek başına kabloya dokunmaya kıyasla çok daha keskin bir düşüş gösterir:

Bizim yaptığımız testlerde, pede dokunulmadığında değer 70 seviyesindeyken, dokunulduğu anda hızla 10’un altına inmektedir. Bu durumda kararlı bir çalışma için eşik değerini (threshold) 20 olarak seçmek mükemmel bir mühendislik tercihidir.
Devre Şeması

Arduino Proje Kodu
const int touchPin = 4; // Dokunmatik girişi T0 (GPIO 4)
const int ledPin = 16; // LED baglantisi GPIO 16
const int esikDeger = 20; // Kalibre edilmis esik degeri
int okunanDeger;
void setup(){
Serial.begin(115200);
delay(1000);
pinMode(ledPin, OUTPUT);
}
void loop(){
okunanDeger = touchRead(touchPin);
Serial.print("Dokunma Degeri: ");
Serial.print(okunanDeger);
// Eger okunan deger esigin altina düstüyse dokunma algilanmistir
if(okunanDeger < esikDeger){
digitalWrite(ledPin, HIGH);
Serial.println(" - LED ACIK (Dokunuldu)");
}
else{
digitalWrite(ledPin, LOW);
Serial.println(" - LED KAPALI");
}
delay(100); // Kararlilik icin ufak gecikme
}
PCB Tasarımı ve Donanımsal Kararlılık Kuralları
- Optimum Dokunma Pedi Boyutu: PCB üzerindeki bakır dokunma pedinin boyutu en az
, en fazla
olmalıdır. Çok küçük pedler parazitik sığayı yeterince değiştiremezken, çok büyük pedler aşırı harici gürültü toplar. - Şase (GND) Koruması ve Mesafesi: Dokunma pedinin ve pedden ESP32 pinine giden sinyal yolunun hemen yanına veya altına toprak düzlemi (ground plane) yerleştirilmemelidir. Yakın mesafedeki şase hatları, boşta kalma sığasını (
) aşırı artırarak parmağın yaratacağı bağıl sığa değişim oranını (
) düşürür ve hassasiyeti ciddi ölçüde azaltır. Sinyal yolları ile şase hattı arasında en az
boşluk bırakılmalıdır. - ESD (Elektrostatik Deşarj) Koruması: İnsan parmağında biriken statik elektrik, pede dokunulduğu anda ESP32’nin hassas kapı oksit tabakasına zarar verebilir. Bunu önlemek için dokunma pedi ile ESP32 pini arasına seri olarak
değerinde bir koruma direnci bağlanması elzemdir.
Kapasitif Dokunmatik Sinyali ile Derin Uyku Wakeup Ayarları
Kapasitif dokunma pinleri, ESP32 derin uyku modundayken Ultra Düşük Güç (ULP) ortak işlemcisi tarafından sürekli izlenebilir. Bu sayede, butona basmaya gerek kalmadan sadece dokunmatik yüzeye dokunarak sistem uyandırılabilir. Yazılım tarafında derin uyku uyanma kaynağını aktif etmek için aşağıdaki API fonksiyonları kullanılır:
// Dokunmatik pin üzerinden uyanmayi aktif et
esp_sleep_enable_touchpad_wakeup();
// Uyanma esigini tanimla
touchAttachInterrupt(T0, callbackFonksiyonu, esikDeger);Bu sayede ESP32 derin uykudayken sadece birkaç mikro-amper (
) akım çeker ve parmak dokunduğu anda anında uyanarak normal çalışma moduna döner.
Özetlemek gerekirse; ESP32’nin dahili kapasitif dokunmatik sensör birimi, ek donanım maliyeti olmadan şık, modern ve kararlı kullanıcı arayüzleri oluşturmanızı sağlar. Şarj/deşarj fiziğine uygun eşik kalibrasyonları ve parazitleri engelleyen PCB tasarım pratikleri ile endüstriyel kalitede dokunmatik sistemler tasarlayabilirsiniz.
ESP32 Veri sayfasına buradan ulaşabilirsiniz.
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.

