Skip to Content
SensörlerSensör Nedir?

Sensör Nedir?

Sensör (algılayıcı), fiziksel bir büyüklüğü — sıcaklık, ışık, mesafe, basınç, hareket — ölçüp bunu elektriksel bir sinyale dönüştüren bileşendir.

Bir mikrodenetleyici tek başına yalnızca hesap yapar. Dış dünya hakkında hiçbir şey bilmez. Sensörler onun duyu organlarıdır: robotun önündeki duvarı, odanın sıcaklığını veya bir kapının açıldığını ancak sensörler sayesinde bilebilir.

Sensör mü, Modül mü?

Piyasada iki farklı şey “sensör” adıyla satılır ve karıştırılması sık sorun çıkarır.

Çıplak sensör (bileşen). Sadece algılayıcı elemanın kendisidir. Örneğin 4 bacaklı DHT22 veya bir LDR. Çalışması için harici direnç, filtre veya besleme düzenlemesi gerekebilir.

Sensör modülü (kart). Sensörün üzerine gerekli dirençler, karşılaştırıcı, regülatör ve gösterge LED’i eklenmiş halidir. Doğrudan Arduino’ya bağlanabilir.

Modüller başlangıç için çok daha pratiktir. Ancak modül üzerindeki bileşenler bazen istenmeyen davranışlar getirir (örneğin sabit bir eşik değeri veya 3,3V uyumsuzluğu).

Analog ve Dijital Sensörler

Bu ayrım, sensörle nasıl konuşacağınızı belirler.

Analog sensör

Ölçtüğü değeri sürekli değişen bir gerilim olarak verir. Arduino bunu analogRead() ile 0–1023 arasında bir sayıya çevirir.

  • LDR (ışık), potansiyometre, toprak nemi sensörü, MQ gaz sensörleri, TMP36
  • Değerin ne kadar olduğunu öğrenirsiniz
  • Gürültüye açıktır, ortalama almak gerekir
int deger = analogRead(A0); // 0 - 1023 float volt = deger * (5.0 / 1023.0);

Dijital sensör (aç/kapa)

Yalnızca iki durum bildirir: var / yok, HIGH / LOW.

  • PIR hareket sensörü, limit switch, IR engel sensörü, reed switch
  • Eşiği aşıp aşmadığını öğrenirsiniz, değeri öğrenemezsiniz
  • Okuması basittir
if (digitalRead(2) == HIGH) { // hareket algilandi }

Protokollü dijital sensör

Değeri sayısal olarak, bir haberleşme protokolü üzerinden gönderir. Kütüphane gerektirir ama en doğru sonucu verir.

  • DHT22 (tek tel özel protokol), DS18B20 (1-Wire), BMP280 (I2C), MPU6050 (I2C)

Haberleşme Protokolleri

ProtokolKablo sayısıÖzellikÖrnek sensör
Analog1 (+ besleme)En basit, ADC gerekirLDR, MQ-2
Dijital (GPIO)1Aç/kapaPIR, limit switch
1-Wire1Aynı hatta çok sayıda cihaz, her birinin adresi varDS18B20
I2C2 (SDA, SCL)Aynı iki kabloda 100+ cihaz, adresle ayrılırMPU6050, BMP280, OLED
SPI4Hızlı, her cihaza ayrı CS piniSD kart, bazı ekranlar
UART2 (TX, RX)Seri haberleşmeGPS, parmak izi sensörü

I2C neden bu kadar yaygın?

I2C, yalnızca iki kablo (SDA ve SCL) ile çok sayıda cihazı aynı hatta bağlamanızı sağlar. Her cihazın kendine ait bir adresi vardır (0x27, 0x3C, 0x68 gibi) ve Arduino hangi cihazla konuşacağını bu adresle seçer.

Arduino Uno’da I2C pinleri A4 (SDA) ve A5 (SCL) olarak sabittir.

Aynı adrese sahip iki cihazı aynı hatta bağlayamazsınız. Çoğu modülde adres değiştirmek için lehim köprüsü veya jumper bulunur.

Bağlı cihazların adreslerini bulmak için I2C Scanner kodu kullanılır:

#include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("I2C taramasi basliyor..."); for (byte adres = 1; adres < 127; adres++) { Wire.beginTransmission(adres); if (Wire.endTransmission() == 0) { Serial.print("Cihaz bulundu: 0x"); Serial.println(adres, HEX); } } Serial.println("Tarama bitti."); } void loop() { }

Bir I2C cihazı hiç görünmüyorsa sırasıyla şunları kontrol edin: besleme, SDA/SCL karışıklığı, pull-up dirençleri (genellikle modülde vardır) ve ortak GND.

Lojik Seviye Uyumu

Sensörler 5V veya 3,3V ile çalışır. Bu fark ciddi bir hasar kaynağıdır.

KartLojik seviye
Arduino Uno / Nano / Mega5 V
ESP8266 (NodeMCU)3,3 V
ESP323,3 V
Raspberry Pi3,3 V
Arduino Due3,3 V

Kritik kural: 3,3V ile çalışan bir karta 5V sinyal vermek pini kalıcı olarak bozabilir. ESP8266/ESP32 ile 5V çıkışlı bir sensör kullanacaksanız araya seviye dönüştürücü (level shifter) veya en azından bir gerilim bölücü koyun.

Tersi genellikle güvenlidir ama her zaman çalışmaz: 5V’luk bir Arduino, 3,3V’luk bir sinyali bazen HIGH olarak algılamaz.

Sensör Seçerken Nelere Bakılır?

Ölçüm aralığı. Sensör, ölçmek istediğiniz aralığı kapsıyor mu? DHT11 yalnızca 0–50 °C ölçer; dondurucu içi için uygun değildir.

Doğruluk (accuracy). Gerçek değerden ne kadar sapıyor? DHT11 ±2 °C, DS18B20 ±0,5 °C hassasiyet sunar.

Çözünürlük (resolution). En küçük ne kadarlık değişimi algılayabiliyor? DHT11 tam sayı verir, DHT22 ondalık verir.

Örnekleme hızı. Saniyede kaç ölçüm alabilirsiniz? DHT22 en fazla 0,5 Hz (2 saniyede bir) okunabilir; daha sık okumak eski değeri döndürür.

Besleme gerilimi ve akım. Pil ile çalışan bir projede sensörün uyku modu var mı?

Çalışma koşulları. Nem, toz, sıcaklık. Toprak nemi sensörü sürekli suda kalırsa korozyona uğrar.

Kütüphane desteği. Arduino kütüphanesi olan bir sensör, olmayana göre saatlerce zaman kazandırır.

Sensör Okumalarında Gürültü ve Çözümü

Özellikle analog sensörlerde okunan değer sürekli oynar. Bunun için üç yaygın teknik vardır.

Ortalama alma: Birkaç okumanın aritmetik ortalamasını alın.

int ortalamaOku(int pin, int adet) { long toplam = 0; for (int i = 0; i < adet; i++) { toplam += analogRead(pin); delay(2); } return toplam / adet; }

Medyan filtre: Ani sıçramalara karşı ortalamadan daha dayanıklıdır. Okumaları sıralayıp ortadakini alır.

Üstel yumuşatma (EMA): Az bellek kullanır, sürekli çalışan sistemler için idealdir.

float filtreli = 0; const float ALFA = 0.2; // 0'a yakin = daha yumusak void loop() { int ham = analogRead(A0); filtreli = ALFA * ham + (1 - ALFA) * filtreli; }

Kalibrasyon

Çoğu ucuz sensör fabrikadan kalibre edilmemiş çıkar. Ölçtüğü değer doğru olmayabilir ama tutarlıdır — yani her seferinde aynı hatayı yapar.

Kalibrasyon, bilinen bir referansla karşılaştırıp bu sabit hatayı düzeltmektir:

  • Sıcaklık sensörünü güvenilir bir termometreyle karşılaştırın, farkı koda ekleyin.
  • Toprak nemi sensörünü kuru havada ve bir bardak suda okuyup bu iki değeri map() ile ölçekleyin.
  • Gaz sensörünü temiz havada 24–48 saat ısıtıp referans direncini kaydedin.

Özet

Sensör, fiziksel bir büyüklüğü elektriksel sinyale çeviren bileşendir. Analog sensörler sürekli bir gerilim, dijital sensörler aç/kapa bilgisi, protokollü sensörler ise sayısal veri gönderir.

Bu derste şunları öğrendik:

  • Çıplak sensör ile modül farkını
  • Analog, dijital ve protokollü sensör ayrımını
  • I2C, SPI, 1-Wire ve UART protokollerini
  • I2C Scanner ile cihaz adresi bulmayı
  • 3,3V ve 5V lojik seviye uyumunun neden kritik olduğunu
  • Sensör seçerken bakılacak kriterleri
  • Gürültü filtreleme ve kalibrasyon yöntemlerini
Son güncelleme