Mustafa Çakır

Yazılım, teknoloji ve hayatın içinden

Bu sefer, mikrodenetleyicilerin en temel ve kullanışlı özelliklerinden biri olan Analog Girişleri inceleyeceğiz. Basit bir potansiyometre (ayarlı direnç) kullanarak, ESP32’nin dış dünyadaki sürekli değişen sinyalleri nasıl algıladığını göreceğiz.

1. Neler Öğreneceğiz?

  • ESP32’nin Analog-Dijital Çevirici (ADC) pinlerini kullanmayı.
  • Potansiyometreyi doğru şekilde bağlamayı.
  • analogRead() fonksiyonu ile sensör verilerini okumayı.
  • Seri Monitör üzerinden sürekli veri akışını izlemeyi.

2. Gerekli Malzemeler

MalzemeAçıklama
1 AdetESP32 Geliştirme Kartı (DevKit)
1 AdetPotansiyometre (10kΩ önerilir)
1 AdetBreadboard (Devre Tahtası)
3 AdetBağlantı Kablosu (Jumper)

3. Devre Şeması (Bağlantılar)

Potansiyometre, ortasından geçen sinyali voltaj bölücü prensibiyle ayarlayan üç bacaklı bir bileşendir. Bağlantı şekli oldukça basittir:

Potansiyometre BacağıESP32 PiniAçıklama
Sol Bacak (VCC)3V3Güç kaynağı bağlantısı.
(Turuncu Kablo)
Orta Bacak (Sinyal)GPIO 4 (D4)Analog okuma yapılacak pin.
(Kırmızı Kablo)
Sağ Bacak (GND)GNDDevrenin topraklaması.
(Kahverengi Kablo)

Önemli Not: Sizin yaptığınız bağlantı şekli olan Sol Bacak (3V3) ve Sağ Bacak (GND) şekli, potansiyometreyi çevirdiğinizde okumanın 0’dan 4095’e doğru artmasını sağlar. Eğer tersine bağlarsanız okuma 4095’ten 0’a doğru azalır; her iki bağlantı şekli de doğrudur, sadece okuma yönü değişir.

4. Arduino Kodu

Aşağıdaki kod, potansiyometreden gelen analog değeri sürekli olarak okuyacak ve Seri Monitör’e yazdıracaktır.

// Potansiyometreyi GPIO 4'e (Analog ADC2_CH0) bağladık
const int potPin = 4;

// Potansiyometrenin değerini depolamak için değişken
int potValue = 0;

void setup() {
  // Seri İletişimi Başlatma (115200 hızı ESP32 için standarttır)
  Serial.begin(115200);
  
  // Sistemin başlaması için kısa bir gecikme
  delay(1000); 
}

void loop() {
  // Potansiyometre değerinin okunması
  // analogRead() 0 ile 4095 arasında bir değer döndürür (ESP32'nin 12-bit çözünürlüğü)
  potValue = analogRead(potPin);
  
  // Okunan değeri Seri Monitör'e yazdırma
  Serial.println(potValue);
  
  // Değerleri çok hızlı okumamak için kısa bir bekleme
  delay(500);
}

5. Projeyi Çalıştırma ve Sonuç

  1. Yukarıdaki kodu Arduino IDE’nize kopyalayıp yapıştırın.
  2. Kart tipinizin “DOIT ESP32 DEVKIT V1” (veya kullandığınız model) olarak seçildiğinden emin olun.
  3. Kodu ESP32 kartınıza yükleyin.
  4. Yükleme bittikten sonra, Arduino IDE’de sağ üstteki “Seri Monitör” simgesine tıklayın ve baud hızının 115200 olduğundan emin olun.

Ne Görmelisiniz?

Seri Monitör’de sürekli olarak alt alta sayılar akmaya başlayacak.

  • Potansiyometreyi bir yöne doğru çevirdiğinizde, sayılar yavaşça 0‘a yaklaşacaktır.
  • Potansiyometreyi tam tersi yöne çevirdiğinizde, sayılar 4095‘e yaklaşacaktır.

Neden 0-4095?

Gördüğünüz bu aralık, ESP32’nin 12-bit Analog-Dijital Çevirici (ADC) çözünürlüğünden kaynaklanır. $2^{12} = 4096$ farklı değer anlamına gelir, bu da okumanın 0’dan 4095’e kadar bir aralıkta yapılacağı demektir.


Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir