Arduino Sıcaklık Sensörü (LM35) Kullanımı
LM35 sıcaklık sensörü ile sıcaklık verisi okuma.
LM35 sıcaklık sensörü, kullanımı kolay ve oldukça hassas bir analog sıcaklık sensörüdür. En büyük avantajı, Celsius derecesine doğrudan orantılı bir çıkış gerilimi sağlamasıdır (her 1°C için 10mV). Bu, Arduino veya benzeri bir mikrodenetleyici ile sıcaklık ölçümü yapmayı çok basit hale getirir.
İşte LM35 ile sıcaklık ölçümü yapmak için adım adım bir rehber:
---
## LM35 Sıcaklık Sensörü ile Sıcaklık Ölçümü (Arduino Örneği)
### 1. LM35'in Özellikleri
* **Çıkış:** Lineer, analog voltaj çıkışı.
* **Ölçek Faktörü:** 10 mV/°C (Her 1 santigrat derece artışı için çıkış gerilimi 10 milivolt artar).
* **Hassasiyet:** Genellikle 25°C'de ±0.5°C.
* **Çalışma Voltajı:** 4V ile 30V arası.
* **Sıcaklık Aralığı:** -55°C ile +150°C (Ancak Arduino ile pozitif sıcaklıklar daha kolaydır, negatif sıcaklıklar için özel devreler gerekebilir).
* **Paket:** En yaygın olanı TO-92 (küçük, transistör benzeri bir paket).
### 2. Gerekli Malzemeler
* **LM35 Sıcaklık Sensörü:** 1 adet
* **Arduino Kartı:** 1 adet (Arduino Uno veya benzeri)
* **Breadboard (Devre Tahtası):** 1 adet (bağlantıları kolaylaştırmak için)
* **Jumper Kabloları:** Çeşitli (erkek-erkek)
* **USB Kablosu:** Arduino'yu bilgisayara bağlamak için
### 3. Bağlantı Şeması
LM35 sensörünün üç pimi vardır. Sensöre düz tarafından baktığınızda (yazıların olduğu taraf):
* **Sol Pin (Pin 1):** Güç girişi (Vs - VCC)
* **Orta Pin (Pin 2):** Çıkış gerilimi (Vout)
* **Sağ Pin (Pin 3):** Toprak (GND)
Bu pinleri Arduino'ya aşağıdaki gibi bağlayın:
1. **LM35 Pin 1 (Vs) ----> Arduino 5V**
2. **LM35 Pin 2 (Vout) ----> Arduino Analog Pin A0**
3. **LM35 Pin 3 (GND) ----> Arduino GND**
<img src="https://i.imgur.com/KzU5V7k.png" alt="LM35 Arduino Bağlantı Şeması" width="400"/>
(Bu görsel temsili bir bağlantıyı göstermektedir. LM35 pin sıralamasına dikkat ediniz.)
### 4. Arduino Kodu
Aşağıdaki kodu Arduino IDE'nize yapıştırın ve Arduino kartınıza yükleyin:
```cpp
void setup() {
// Seri iletişimi başlatıyoruz, böylece sıcaklık değerlerini bilgisayar ekranında görebiliriz.
Serial.begin(9600);
}
void loop() {
// LM35'in bağlı olduğu A0 pininden analog değeri okuyoruz.
// analogRead() fonksiyonu 0 ile 1023 arasında bir değer döndürür.
int sensorValue = analogRead(A0);
// Okunan analog değeri voltaja çeviriyoruz.
// Arduino'nun varsayılan referans voltajı 5V'tur ve ADC çözünürlüğü 10 bittir (2^10 = 1024 seviye).
// Bu yüzden her bir birim (0-1023) 5V / 1024 ile çarpılır.
// Daha hassas bir hesaplama için 5.0 / 1023.0 kullanırız.
float voltage = sensorValue * (5.0 / 1023.0);
// Voltaj değerini Celsius sıcaklığına çeviriyoruz.
// LM35'in ölçek faktörü 10 mV/°C'dir. Bu da 0.01V/°C demektir.
// Yani, sıcaklık = Voltaj / 0.01V/°C veya Voltaj * 100.
float temperatureC = voltage * 100;
// (Opsiyonel) Celsius sıcaklığını Fahrenheit'a çeviriyoruz.
float temperatureF = (temperatureC * 9 / 5) + 32;
// Sıcaklık değerlerini Seri Monitöre yazdırıyoruz.
Serial.print("Sıcaklık: ");
Serial.print(temperatureC);
Serial.print(" °C");
Serial.print(" / "); // Okunurluk için ayırıcı
Serial.print(temperatureF);
Serial.println(" °F");
// Her saniye bir okuma yapması için 1 saniye bekletiyoruz.
delay(1000);
}
```
### 5. Kodu Açıklama
1. **`void setup()`**:
* `Serial.begin(9600);`: Bilgisayarınız ile Arduino arasındaki seri iletişimi başlatır. Bu sayede Arduino'dan gelen sıcaklık verilerini bilgisayarınızdaki Seri Monitör (Serial Monitor) üzerinden görebilirsiniz. `9600`, iletişimin hızını (baud rate) belirtir.
2. **`void loop()`**:
* `int sensorValue = analogRead(A0);`: Arduino'nun A0 analog giriş pinine bağlı olan LM35'ten gelen voltajı okur. `analogRead()` fonksiyonu, 0 (0V) ile 1023 (5V) arasında bir tam sayı değeri döndürür.
* `float voltage = sensorValue * (5.0 / 1023.0);`: Okunan 0-1023 arasındaki değeri gerçek voltaj değerine çevirir. Arduino Uno'nun analog girişleri için varsayılan referans voltajı 5V'tur ve ADC'si 10 bit çözünürlüğe sahiptir (yani 2^10 = 1024 farklı değer okuyabilir). Bu yüzden her birim `5.0 / 1023.0` voltaja eşittir.
* `float temperatureC = voltage * 100;`: LM35'in temel özelliğini kullanarak voltajı Celsius sıcaklığına çeviririz. LM35, her 1°C için 10 mV (0.01V) verir. Dolayısıyla, okuduğumuz voltajı 0.01'e bölerek (veya 100 ile çarparak) doğrudan Celsius derecesini elde ederiz.
* `float temperatureF = (temperatureC * 9 / 5) + 32;`: (İsteğe bağlı) Elde edilen Celsius sıcaklığını Fahrenheit'a çevirmek için standart formülü kullanır.
* `Serial.print()` ve `Serial.println()`: Hesaplanan sıcaklık değerlerini Seri Monitöre yazdırır. `print` aynı satıra devam ederken, `println` yeni bir satıra geçer.
* `delay(1000);`: Arduino'nun her 1 saniyede bir sıcaklık okuması yapmasını sağlar.
### 6. Çalıştırma
1. Arduino IDE'sini açın.
2. Yukarıdaki kodu yeni bir taslağa (sketch) yapıştırın.
3. Arduino kartınızı bilgisayarınıza bağlayın.
4. **Araçlar (Tools) > Kart (Board)** menüsünden kullandığınız Arduino kartını seçin (örneğin "Arduino Uno").
5. **Araçlar (Tools) > Port** menüsünden Arduino'nun bağlı olduğu seri portu seçin (genellikle COM ile başlayan bir isim).
6. Kodu Arduino'ya yüklemek için "Yükle" (Upload) düğmesine tıklayın.
7. Kod yüklendikten sonra, Arduino IDE'sindeki sağ üst köşede bulunan "Seri Monitör" (Serial Monitor) simgesine tıklayın (veya **Araçlar > Seri Monitör**).
8. Açılan Seri Monitör penceresinde, her saniye güncellenen ortam sıcaklığını Celsius ve Fahrenheit cinsinden göreceksiniz.
### İpuçları ve Geliştirmeler
* **Hassasiyet Artırma:** Eğer daha hassas bir ölçüm istiyorsanız, `analogRead()` fonksiyonunu birkaç kez çağırıp elde edilen değerlerin ortalamasını alabilirsiniz. Bu, gürültünün etkisini azaltmaya yardımcı olabilir.
* **Voltaj Referansı:** Arduino'nun varsayılan 5V referans voltajı, USB'den gelen güç kaynaklarına veya kart üzerindeki regülatörlere bağlı olarak biraz dalgalanabilir. Çok yüksek hassasiyet gerektiren uygulamalar için harici, hassas bir referans voltajı (örneğin, 3.3V'luk bir voltaj regülatörü kullanarak) `analogReference(EXTERNAL);` komutuyla kullanılabilir. Ancak bu, harici bir voltaj kaynağı bağlamayı gerektirir ve başlangıç seviyesi için genellikle gerekli değildir.
* **Negatif Sıcaklıklar:** LM35, -55°C'ye kadar ölçüm yapabilir ancak bunu yapabilmek için çıkış pinine negatif bir offset voltajı (genellikle iki direnç ve bir diyot kullanılarak) veya çift yönlü bir güç kaynağı (örneğin +5V ve -5V) uygulamak gerekir. Bu, daha gelişmiş bir konfigürasyondur.
* **Gürültü Azaltma:** Bazı durumlarda, LM35'in çıkış pini ile GND arasına küçük bir 0.1uF kondansatör bağlamak, ölçümlerdeki elektronik gürültüyü azaltmaya yardımcı olabilir.
Bu adımları takip ederek LM35 sıcaklık sensörü ile başarılı bir şekilde sıcaklık ölçümü yapabilirsiniz.
Son Paylaşımlar
-
Python Temelleri Genel Tekrar
14:39:24 - 13/12/2025 -
Python Performans İpuçları
14:38:59 - 13/12/2025 -
Python’da Temiz Kod Yazma
14:38:28 - 13/12/2025 -
Python Mini Proje: Sayı Tahmin Oyunu
14:37:58 - 13/12/2025 -
Python Mini Proje: Hesap Makinesi
14:37:31 - 13/12/2025