Arduino Sıcaklık Sensörü | Ders 9: LM35 Ortam Sıcaklığı
Bu uygulamamızda sizlerle Arduino sıcaklık sensörü olan LM35 ile ortam sıcaklığını ölçmeyi ve bu değeri seri port ekranına yazdırmayı göreceğiz. Öncelikle uygulamamızda kullanacağımız bileşenleri listesini sizinle paylaşalım.
- Arduino Uno
- 1 Adet Kırmızı Led
- 1 Adet Yeşil Led
- 2 adet 220 Ω
- Breadboard
- 1 Adet LM35 Sıcaklık Sensörü
Uygulamamız şöyle çalışacak. LM35 sensör ortam sıcaklığını ölçecek ve sıcaklık seri port ekranına yazdırılacak. Eğer sıcaklık 0-25 derece arasında ise yeşil ledimiz yanacak, 25 dereceden yüksek bir değerse kırmızı ledimiz yanacaktır.
Arduino Sıcaklık Sensörü – LM35′ in Çalışma Mantığı
LM35 sıcaklık sensörü çok hassas analog çıkış ile sıcaklık ölçümleri yapabilen bir elemandır. 3 bacağı bulunan bu sensör ilk bakışta bir transistöre benzetebilirsiniz. LM35 ‘in datasheet verilerini incelediğinizde 0.5 hassasiyete sahip olduğu görülüyor. Ayrıca -55 derece ile +150 derece arasındaki sıcaklıkları da ölçebiliyor. Peki bunu nasıl yapıyor? LM35′ in çıkış bacağından geçen her 10 mV 1 Santigrad (C) dereceye denk gelir. LM35′ in 4-30 V gibi bir besleme gerilimi bulunurken, üzerinden geçen akım 60 mikro Amper’den az olduğunu biliniyor. Ayrıca her bir derece için çıkış voltajı 10 mV değerinde artar. Bu veriler ışığında analog bir değer olan ortam sıcaklığı dijital bir veriye dönüştürülebilir. Bu sensör arduino gibi geliştirme kartlarında en çok kullanılan sıcaklık sensörlerinden biridir diyebiliriz. Çünkü özellikle kolay bir şekilde satın alınabilir olması ve fiyatının oldukça ucuz olması gibi nedenleri saymak mümkündür.
Analog Pindeki Değeri Sıcaklığa Çevirelim
Arduino ‘da bildiğiniz gibi analog sensörler A0′ dan başlayıp A5′ e kadar olan pinlerden birine takılır. Bu pinlere takılan sensörler 0 ile 1023 arasında değer verirler.
Yani 0-1023 değeri aslında 0V-5V arasındaki değerlerin ta kendisidir. Yani analog 0 değeri 0V’ u bize verirken, 1023 değeri ise 5V’ a karşılık gelir.
Peki bu sensörün bize verdiği başka bir ara değer mV cinsinden nasıl hesaplarız? Aşağıdaki formüle dikkat ederseniz aslında sensörün bize verdiği bu 0-1023 arası değeri mV cinsine çevirdiğini göreceksiniz.
Sensörün mV Cinsinden Değeri = (Sensörün 0-1023 arası değeri / 1023) * 5000
mV cinsine çevirilen bu değeri ortam sıcaklığını tespit etmek için nasıl bir işleme sokmalıyız? Elbetteki aşağıdaki gibi 10′ a bölerek. Çünkü LM35’in datasheet bilgisinden de hatırlayacağınız gibi her bir santigrad derece için çıkış gerilimi 10 mV değerinde artış gösterir. Bu mantıkla aşağıdaki formülü kullanarak ortam sıcaklığını hesaplamak mümkündür.
Ortam Sıcaklığı = Sensörün mV Cinsinden Değeri / 10.0
Arduino Sıcaklık Sensörü Devre Bağlantımızı Hazırlayalım
Aşağıdaki görseli incelediğinizde aslında LM35′ in arduino uno kartımıza nasıl bağlanması gerektiğini göreceksiniz. Öncelikle şunu belirtelim. 3 ayak bulunan LM35′ in orta ayağı her zaman analog giriş için kullanılan ayaktır. Yani dışarıdan aldığınız analog veriyi lm35 de işlemesi için bu ayak aracılığı ile gönderirsiniz. lm35′ in düz tarafı bize bakacak şekilde sol taraftaki ilk ayak 1 numara ile gösterilen arduino 5V girişidir. Bildiğiniz gibi lm35 4 ile 20 v arasında çalışan bir sensördür. GND ise diğer uç taraftaki yani 3 numara ile gösterilen ayağın olduğu taraftadır.
Aşağıdaki bir fritzing çizimi ile devreyi size göstermeye çalıştım. Görüldüğü gibi A0 pinine lm35 in orta ayağı, sol taraftaki pin ise 5v ve sağ taraftaki siyah renkli kablo ile gösterilen GND pinine bağlanmalıdır. Devre bağlantımız bu kadar.
Ortam Sıcaklığı için Kod Yazıyoruz
Şimdi sıra geldi arduino sıcaklık sensörü lm35 için kod yazmaya. Program aşamasında aslında yukarıdaki formüle ihtiyacımız var. Çünkü bu hesaplamalara göre bunu dijital kod satırlarına dönüştürmeliyiz.
Sensörün mV Cinsinden Değeri = (Sensörün 0-1023 arası değeri / 1023) * 5000
Ortam Sıcaklığı = Sensörün mV Cinsinden Değeri / 10.0
Gördüğünüz gibi öncelikle analogPin yani A0′ ı tanımlıyoruz ve analogRead ile buradan gelen değeri sensor isimli değişkene aktarıyoruz. Sonrasında ise yukarıdaki formüle göre sensörden gelen değeri gerilim adlı değişkene aktarmak üzere mV cinsinden gerilime çeviriyoruz. Yani sensörün üzerine düşen gerilimi mV cinsinden ölçüyoruz.
Son olarak da çıkan bu değeri 10′ a bölüyoruz. Çünkü lm35 in özelliklerinde her 10mV 1 santigrad dereceye denk gelmektedir. Böylece ortam sıcaklığına ulaşmış oluyoruz.
int analogPin = A0; float gerilim = 0; float sensor = 0; float ortamSicakligi = 0; void setup() { Serial.begin(9600); } void loop() { // A0 pinindeki lm35' in gönderiği analog çıkışı alıyoruz. 0-1023 arasında değer alır. sensor = analogRead(analogPin); // A0 pinindeki değeri mV cinsinden gelirim değerine dönüştürüyoruz. gerilim = (sensor/1023)*5000; // Sensörün Gerilim Değerinin Gerçek bir sıcaklık değerine dönüştürülmesi. ortamSicakligi = gerilim / 10.0; Serial.print("Sıcaklık Değeri: "); Serial.println(ortamSicakligi); Serial.println("_________________________"); // Her yeni ölçüm için 1 sn bekletiyoruz. delay(1000); }
Bu kodları arduino kartımıza yükledikten sonra seri port ekranını açıyoruz ve ortam sıcaklığını bilgisayar’ daki seri port ekranından görüntüleyebiliyoruz.
Arduino scaklık sensörü olan lm35 ile ortam sıcaklığını tespit etmeyi sizlere bu yazımızda inceledik. Sonraki arduino projelerimizde tekrar görüşmek dileğiyle. Hoş çakalın.
Not: Arduino Sıcaklık Sensörü | Ders 9: LM35 Ortam Sıcaklığı isimli makale içerisindeki anlatımlar özgün içeriktir. Alıntı yapmadan kullanı[email protected]