Bosch Gmbh tarafından geliştirilen bmp180 barometrik sensör, uygulanan kuvvete göre direnç değeri değişen yarı iletken silikon maddeden üretilmiştir. bmp180 ile yatay hız, hava basıncı ve rakım bilgilerini izlemek mümkündür.
Hava basıncını ölçmek için sıcaklık değeri de hesaplamaya dahil edilmelidir. Hava, kütlesi ve ağırlığı olan maddelerden oluşur. Havanın ağırlığı, sıcaklığı ile doğrudan ilişkilidir çünkü havanın sıcaklığı arttıkça yoğunluğu azalır, dolayısıyla ağırlığı azalır. Hava, yerçekimi kuvveti nedeniyle dünyanın merkezine doğru bir basınç oluşturur. Bu basınca barometrik veya atmosferik basınç denir. Yerden atmosferin yüzeyine kadar 1 inçkare genişliğinde bir sütun olduğu varsayılırsa, bu sütun içerisindeki havanın yeryüzüne yaptığı basınç miktarına 1 atmosfer basıncı denir. Bu sütundaki havanın ağırlığı 14.7 lbs (6667,8 gram) olarak ölçülmüştür. 1 atm = 14,7 psi (pounds per square inch / bir inç kare başına düşen pound) olarak çevrilir.
bmp180, basınç değerini hekto Pascal (hPa) cinsinden ölçer. 1 Pascal basınç, 1 metrekareye uygulanan 1 Newton kuvvete eşittir. 1hPa; 1Pa basıncın yüzde birine eş değerdir. bmp180′ in ölçüm aralığı 300-1100hPa aralığında ve ölçüm hassasiyeti yaklaşık 2hPa olarak belirtilmiştir. Bu ölçüm aralığı; ideal ortamda deniz seviyesinin 500m altı ile 9000 metre üstü arasındaki atmosferik basınç değerlerine denktir.
bmp180 i2c arayüzü ile haberleşir. bmp180 üzerinde 4 adet pin bulunur. Bunlar VIN (voltaj girişi), GND (toprak), SCL (saat) ve SDA (veri) pinleridir. Sensörün voltaj girişi 1,9V ile 3,6V aralığında olduğu için, VIN girişi Arduino kartının 3,3V çıkışına bağlanmalıdır. Aşağıdaki tablo, kullanılan Arduino kartının türüne göre i2c arayüzü bağlantı pinlerini göstermektedir.
Malzemeler
- 1 adet Arduino
- 1 adet bmp180 barometrik sensör
Bağlantı şeması
Bazı bmp180 modüllerinde şekildeki gibi 5 pin bulunur. 5 pinli modüllerin 4 pinli olanlardan tek farkı üzerinde çift voltaj girişi bulunmasıdır. Bu girişlerden biri 3,3V, diğeri ise 5V gerilim içindir ve bu girişlerin sadece 1 tanesine güç vermek yeterlidir.
Kaynak kod
SFE_BMP180 kütüphanesini indirmek için tıklayınız.
Wire.h kütüphanesini indirmek için tıklayınız.
#include <Wire.h> #include <SFE_BMP180.h> SFE_BMP180 bmp180; // bmp180 adında bir sensör nesnesi oluştur void setup() { Serial.begin(9600); // bmp 180 ile haberleşme sağlandı mı kontrol et bool basarili = bmp180.begin(); if (basarili) { Serial.println("BMP180 başlatıldı."); } } void loop() { char durum; // Sensörden okunan durum double T, P; // Sıcaklık ve basınç değişkenleri bool basarili = false; // Sensör çalışıyor mu bilgisi değişkeni durum = bmp180.startTemperature(); if (durum != 0) { delay(1000); durum = bmp180.getTemperature(T); if (durum != 0) { durum = bmp180.startPressure(3); if (durum != 0) { delay(durum); durum = bmp180.getPressure(P, T); if (durum != 0) { Serial.print("Basınç: "); Serial.print(P); Serial.println(" hPa"); Serial.print("Sıcaklık: "); Serial.print(T); Serial.println(" C"); } } } } }
Kaynak kod Arduino’ ya yüklendiğinde seri port ekranından aşağıdaki gibi basınç ve sıcaklık değerleri izlenebilir.