ESP32 Kapasitif Dokunmatik Sensör Pinleri
ESP32 kapasitif dokunmatik sensör pinleri genellikle, ESP32’yi derin uykudan uyandırmak için kullanılır ve bir çok projede büyük bir kolaylık sağlar. ESP32 dokunmatik pinleri, elektrik yükü taşıyan herhangi bir şeydeki değişiklikleri algılayabilir. Genellikle ESP32’yi derin uykudan uyandırmak için kullanılırlar.
ESP32 dokunmatik pinlerinin değerini okumak için, okumak istediğiniz GPIO’yu argüman olarak kabul eden touchRead(GPIO) işlevini kullanın.
ESP32, 10 kapasitif dokunmatik GPIO’ya sahiptir. Bu GPIO’lar, insan derisi gibi elektrik yükü taşıyan herhangi bir şeydeki değişiklikleri algılayabilir. Böylece GPIO’lara parmakla dokunulduğunda ortaya çıkan varyasyonları tespit edebilirler.
Bu pinler, kapasitif pedlere kolayca entegre edilebilir ve mekanik düğmelerin yerini alabilir. Ek olarak, dokunmatik pinler, ESP32 derin uykudayken bir uyandırma kaynağı olarak da kullanılabilir.
10 farklı dokunma sensörünü bulmak için kartınızın pin çıkışına bir göz atın – dokunmaya duyarlı pinler pembe renkle vurgulanmıştır.
ESP32 GPIO’lar hakkında daha fazla bilgi edinin: ESP32 Pin Referansları
Dokunmatik sensör 0’ın GPIO 4’e, dokunmatik sensör 2’den GPIO 2’ye vb. karşılık geldiğini görebilirsiniz.
Not: Dokunmatik sensör 1, GPIO 0’dır. Ancak, bu özel ESP32 geliştirme kartında (30 GPIO’lu sürüm) pin olarak mevcut değildir. GPIO 0, 36 pinli versiyonda mevcuttur.
Not: Bu öğreticiyi hazırlarken, Arduino IDE’de dokunmatik pin atamasıyla ilgili bir sorun olduğunu fark ettik. GPIO 33, atamada GPIO 32 ile değiştirilir. Bu, GPIO 32’ye başvurmak istiyorsanız, kodda T8 kullanmanız gerektiği anlamına gelir. GPIO33’e başvurmak istiyorsanız T9 kullanmalısınız. Bu sorunu yaşamıyorsanız, lütfen bu notu dikkate almayın.
touchRead()
Dokunmatik sensörü okumak basittir. Arduino IDE’de, okumak istediğiniz GPIO’yu argüman olarak kabul eden touchRead() işlevini kullanırsınız.
touchRead(GPIO);
Arduino Kodu
ESP32’yi Arduino IDE kullanarak programlayacağız, bu yüzden devam etmeden önce ESP32 kütüphanesinin kurulu olduğundan emin olun:
Arduino IDE’ye ESP32 Desteği Kurmak (Windows, Linux, MacOS)
Kütüphaneden bir örnek kullanarak bu fonksiyonun nasıl çalıştığını görelim. Arduino IDE’de Dosya > Örnekler > ESP32 > öğesine gidin ve TouchRead taslağını açın.
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("ESP32 Dokunma Testi");
}
void loop() {
Serial.println(touchRead(4));
delay(1000);
}
Bu örnek, dokunmatik pin 0’ı okur ve sonuçları Seri Monitörde görüntüler.
T0 pini (dokunmatik pin 0), pin çıkışında daha önce gördüğümüz gibi GPIO 4’e karşılık gelir.
Bu kodda, setup() içinde, sensör okumalarını görüntülemek için Seri Monitörü başlatarak başlarsınız.
Serial.begin(115200);
loop(), sensörü okuduğunuz yerdir.
Serial.println(touchRead(4));
touchRead() işlevini kullanın ve okumak istediğiniz pini argüman olarak iletin. Bu durumda örnek, GPIO 4’te dokunmatik sensör 0 olan T0’ı kullanır. Dokunmatik sensör numarasını (T0) veya GPIO numarasını (4) iletebilirsiniz.
Şimdi kodu ESP32 kartınıza yükleyin. Doğru kartın ve COM bağlantı noktasının seçili olduğundan emin olun.
GPIO 4’e bir kablo bağlayın. Dokunmayı algılaması için bu telin metal kısmına dokunacaksınız.
Arduino IDE penceresinde Araçlar’a gidin ve 115200 baud hızında Seri Monitörü açın. Her saniye yeni değerlerin görüntülendiğini göreceksiniz.
GPIO 4’e bağlı kabloya dokunun, değerlerin düştüğünü göreceksiniz.
Değerleri daha iyi görmek için seri çiziciyi de kullanabilirsiniz. Seri monitörü kapatın, Araçlar > SerialPlotter’a gidin.
Dokunmaya Duyarlı LED Yakan Devre
Çıkışları kontrol etmek için bu özelliği kullanabilirsiniz. Bu örnekte, basit bir dokunmatik kontrollü LED devresi oluşturacağız. GPIO’ya parmağınızla dokunduğunuzda LED yanar.
Gerekli Malzemeler
- ESP32 Geliştirme Kartı
- 5mm LED
- 330Ω direnç
- Breadboard
- Kablo
Bir parça alüminyum folyo alın, küçük bir kare kesin ve aşağıdaki şekilde gösterildiği gibi telin etrafına sarın.
Önceki kod çalışırken, seri monitöre geri dönün.
Şimdi alüminyum folyoya dokunduğunuzda değerlerin tekrar değiştiğini göreceksiniz.
Bizim durumumuzda pine dokunmadığımızda normal değer 70’in üzerinde, alüminyum folyoya dokunduğumuzda ise 10’un altına düşüyor.
Böylece bir eşik değeri belirleyebiliyoruz ve okuma o değerin altına düştüğünde bir LED yanıyor. Bu durumda iyi bir eşik değeri örneğin 20’dir.
Devre Şeması
Aşağıdaki şematik diyagramı izleyerek devrenize bir LED ekleyin. Bu durumda LED’i GPIO 16’ya bağlıyoruz.
Arduino Kodu
Aşağıdaki kodu Arduino IDE’nize kopyalayın.
const int touchPin = 4;
const int ledPin = 16;
const int esikdeger = 20;
int dokunmadegeri;
void setup(){
Serial.begin(115200);
delay(1000);
pinMode (ledPin, OUTPUT);
}
void loop(){
dokunmadegeri = touchRead(touchPin);
Serial.print(dokunmadegeri);
if(dokunmadegeri < esikdeger){
digitalWrite(ledPin, HIGH);
Serial.println(" - LED ac");
}
else{
digitalWrite(ledPin, LOW);
Serial.println(" - LED kapat");
}
delay(500);
}
Bu kod tanımladığımız pinden dokunma değerini okur ve değer eşiğin altına düştüğünde bir LED yakar. Bu, parmağınızı alüminyum pedin içine yerleştirdiğinizde LED’in yandığı anlamına gelir.
Özetle
- ESP32, 10 kapasitif dokunmatik GPIO’ya sahiptir.
- Dokunmaya duyarlı bir GPIO’ya dokunduğunuzda sensör tarafından okunan değer düşer.
- Dokunma algıladığında bir şeyin gerçekleşmesi için bir eşik değeri belirleyebilirsiniz.
- ESP32 dokunmatik pinleri, ESP32’yi derin uykudan uyandırmak için kullanılabilir.
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.