ESP32 ile Basma Düğmesi – Arduino IDE

Esp32 Ile Basma Dugmesi Arduino Ide



ESP32, çıktılar oluşturmak için farklı harici çevre birimleriyle arabirim oluşturabilen bir IoT kartıdır. ESP32, düğmeler gibi cihazlardan girdi alır ve alınan girdiye göre yanıtlar üretir. Basmalı butonlar, bir LED'i kontrol etmek veya motorların hızını korumak gibi birden fazla sensörü ve cihazı kontrol etmek için kullanılabilir. İşte bu derste, ESP32 ile basmalı düğme arayüzünü tartışacağız.

Bu ders için içerik tablosu aşağıdadır:







1: Push Button'a Giriş



2: Düğmenin Çalışması



2.1: Düğme Çalışma Modları





3: Basmalı Buton ile ESP32 Arayüzü

3.1: ESP32'de Dijital Giriş Çıkış Pinleri



3.2: ESP32'de Dijital Girişler Nasıl Okunur?

3.3: Dijital Okuma İşlevini Kullanarak Basmalı Buton ile ESP32 Arayüzü Oluşturma

3.4: Donanım Gerekli

3.5: Şematik

3.6: Basmalı Butonlu ESP32 Arabirim Kodu

3.7: Çıktı

1: Push Button'a Giriş

Basma düğmesi, farklı makinelerin veya işlemlerin durumlarını kontrol etmek için bir mekanizmaya sahip basit bir düğmedir. Basmalı buton, plastik veya metal gibi sert bir malzemeden yapılmıştır ve üst yüzeyi genellikle kullanıcıların basmasına izin verecek şekilde düzdür.

ESP32 projelerinde, pimin giriş ve çıkış durumlarını kontrol etmek için basma düğmesi yaygın olarak kullanılır. Geçiş anahtarları ve basmalı düğmeler biraz farklı prensiplerde çalışır. Basma düğmesi genellikle serbest bırakıldığında duran iki konumlu bir cihazken, geleneksel veya geçiş anahtarı basıldığında durur.

Basmalı butonun çalışma prensibini detaylı olarak inceleyelim:

2: Düğmenin Çalışması

Bir basma düğmesinin normalde 4 pimi vardır. Bu 4 pin bir çift şeklinde birleştirilir, örneğin iki üst pin dahili olarak bağlanır, benzer şekilde diğer ikisi de dahili olarak bağlanır.


Hangi iki pimin bağlı olduğunu bilmek için bir multimetre (DMM) alın ve devamlılık testi , şimdi pozitif probu düğmenin herhangi bir ayağına takın ve ardından multimetrenin negatif probunu diğer ayaklarla teker teker takın. Her iki uç arasında bağlantı tamamlanırsa multimetreden bip sesi duyulabilir. İçten bağlı olan bu iki ayak devreyi tamamlayacaktır.

2.1: Düğme Çalışma Modları

Düğmeyi bir devrede kullanmak için dahili olarak bağlı her bir çiftten bir pime ihtiyacımız var. Buton pinlerini dahili olarak bağlı olan aynı çiftten alırsak, bunlar zaten bağlı olduğundan kısa devreye neden olur, buton mekanizmasını atlar.

Bu mekanizmaya dayalı olarak basma düğmesi aşağıdaki iki modda çalışabilir:


Aşağıdaki resimde gösterilen modun bir örneğini ele alırsak. Butona basılmadığında dahili bağlantının açık olduğunu görebiliriz. Butona basıldığında dahili A ve B terminallerinin bağlanacağını ve devrenin tamamlanacağını görebiliriz.


Artık butonların çalışmasının arkasındaki temel prensibi tamamladık. Daha sonra ESP32 ile basit bir buton arayüzü oluşturacağız ve onu kullanarak bir LED'i kontrol edeceğiz.

3: Basmalı Buton ile ESP32 Arayüzü

Basmalı düğmeyi ESP32 ile arayüzlemeden önce, giriş olarak kullanılabilecek GPIO pinlerinin bilinmesi gerekir. Şimdi ESP32'deki dijital giriş çıkış pinlerini ele alacağız.

3.1: ESP32'de Dijital Giriş Çıkış Pinleri

ESP32'nin toplam 48 Her biri belirli bir işleve sahip olan pinler, 48 pin arasından bazıları fiziksel olarak açıkta değildir, bu da onları harici amaçlar için kullanamayacağımız anlamına gelir. Bu pimler, farklı işlevler için ESP32'nin içine entegre edilmiştir.

ESP32 kartının sahip olduğu 2 farklı varyantı vardır. 36 iğneler ve 30 pimler. Burada her iki kart arasındaki 6 pinlik fark, bir kart üzerinde SPI iletişimi için mevcut olan 6 entegre SPI flaş pininden kaynaklanmaktadır. 36 ESP32 kartının pin varyantı. Ancak bu 6 SPI pini giriş çıkışı gibi başka amaçlar için kullanılamaz.

Aşağıda verilen pin çıkışı 30 pim ESP32 kartı:


Tüm GPIO'lar arasında sadece 4 pin ( 34, 35, 36 ve 39 ) yalnızca girişken, diğer tüm pinler hem giriş hem de çıkış için kullanılabilir. Yukarıda bahsedildiği gibi 6 SPI pini giriş veya çıkış için kullanılamaz.

3.2: ESP32'de Dijital Girişler Nasıl Okunur?

Basmalı buton girişi, bir işlevin tanımlandığı bir GPIO pininde okunabilir. pinMode() önce Arduino kodu içinde tanımlanması gerekir. Bu işlev, GPIO pinini giriş olarak ayarlayacaktır. pinMode() İşlev sözdizimi aşağıdaki gibidir:

pinModu ( GPIO, GİRİŞ ) ;


Tanımlanmış bir GPIO pininden veri okumak için digitalRead() fonksiyon çağrılacaktır. Bir GPIO pinindeki basmalı düğmeden veri almak için kullanılabilecek komut aşağıdadır:

dijitalOkuma ( GPIO ) ;

3.3: Dijital Okuma İşlevini Kullanarak Basmalı Buton ile ESP32 Arayüzü Oluşturma

Şimdi ESP32'yi buton ile arabirim olarak kullanacağız. dijital okuma herhangi bir GPIO pininde işlev. Basmalı düğmeden girdi alındığında bir LED AÇIK veya KAPALI olacaktır.

3.4: Donanım Gerekli

Gerekli bileşenlerin listesi aşağıdadır:

    • ESP32 Kartı
    • LED
    • 220 Ohm direnç
    • 4 Pimli Buton
    • Breadboard
    • Jumper tellerini bağlama

3.5: Şematik

Aşağıdaki görüntü, ESP32'li basmalı düğmenin şematik diyagramıdır. Burada giriş, GPIO pin 15'teki basmalı düğmeden okunur ve LED, GPIO pin 14'e bağlanır.

3.6: ESP32 ile Arayüz Butonunun Kodu

Şimdi kodu ESP32'ye yüklemek için Arduino IDE editörü kullanılacaktır. IDE'yi açın ve ESP32 kartını bağlayın, ardından araç bölümünden COM bağlantı noktasını seçin. ESP32 kartı hazır olduğunda, kodu IDE'ye yapıştırın ve yükle'ye tıklayın:

const int Düğmeye Bas = onbeş ; /* Dijital pin on beş tanımlanmış için Butona basınız */
sabit int LED_Pin = 14 ; /* Dijital pim 14 tanımlanmış için NEDEN OLMUŞ */
int Düğme_Durum = 0 ;
geçersiz kurulum ( ) {
seri.başlangıç ( 115200 ) ;
pinModu ( Basmalı Düğme, GİRİŞ ) ; /* GPIO on beş Ayarlamak olarak Giriş */
pinModu ( LED_Pin, ÇIKIŞ ) ; /* GPIO 14 Ayarlamak olarak Çıktı */
}
boşluk döngüsü ( ) {
Button_State = digitalRead ( Butona basınız ) ; /* Buton durumunu kontrol edin */
Serial.println ( Button_State ) ;
eğer ( Button_State == YÜKSEK ) { /* eğer düğme durumunu kontrol etme koşulu */
dijital Yazma ( LED_Pin, YÜKSEK ) ; /* YÜKSEK durum LED'i AÇIK */
} başka {
dijitalYazma ( LED_Pin, DÜŞÜK ) ; /* Aksi takdirde LED KAPALI */
}
}


Kod, LED ve buton için GPIO pinlerini tanımlayarak başladı. Bundan sonra LED GPIO, basma düğmesi GPIO giriş olarak ayarlanırken çıkış olarak bildirilir.

Sonunda düğme durumu, if koşulu kullanılarak kontrol edilir. Basma düğmesi durumu ayrıca kullanılarak seri monitöre yazdırılır. Serial.println(Button_State) .

Buton girişi HIGH ledi ise yanar, aksi halde OFF kalır.

3.7: Çıktı

İlk başta, LED'in KAPALI olduğunu görebiliriz.


Şimdi basma düğmesine basın, ESP32 GPIO 15'e YÜKSEK bir sinyal gönderilecek ve LED yanacaktır.


Aynı çıkış Arduino seri monitöründe de görülebilir.

Çözüm

ESP32, basmalı düğmeler gibi sensörlerden gelen dijital verileri okuyabilen birden fazla GPIO pinine sahiptir. Dijital okuma işlevi basma düğmesi kullanılarak, farklı cihazları kontrol etmek için ESP32 ile kolayca arayüz oluşturulabilir. Bu makaleyi bir kez kullanmak, basma düğmesini ESP32'nin herhangi bir GPIO pimi ile arayüzleyebilir.