Hava basıncı ölçümlerinde dijital çıkış vererek Arduino projeleri için kolay bir kullanım sağlar. Çıkışlar Gnd -VCC ve Output olacaktır. Hava basıncından yola çıkarak yükseklik analizi yapılabileceğinden dolayı multikopter/quadkopter gibi projelerinizde kullanıma uygundur.
BMP180, 300-1100hPa arasındaki basınç değerlerini ölçebilir.
500 metre ile 9000 metre arasındaki yükseklik ile ilgili bilgi verebilir.
Ürün lehimsiz ve headersız olarak gelmektedir. Header ayrıca alınmalıdır.
BMP180, akıllı telefonlar, tablet PC’ler ve spor cihazları gibi gelişmiş mobil cihazlarda uygulama yapılmasını sağlayan, çok yüksek performansa sahip Bosch Sensortec’in yeni dijital barometrik basınç sensörüdür. BMP085’i izler ve daha küçük boyut ve dijital arayüzlerin genişletilmesi gibi birçok gelişme sağlar.
3 μA değerine kadar olan düşük güç tüketimi, BMP180’i mobil cihazlarınız için güç tasarrufu konusunda lider kılar. BMP180, besleme geriliminin bağımsızlığı ile ilgili oldukça istikrarlı davranışı (performansı) ile de ayırt edilir. Bunun gibi bir dijital barometre kullanarak ortamın mutlak basıncını ölçmek bazı ilginç uygulamalara sahiptir. Ölçülen basıncı rakıma dönüştürerek robotunuzun düzleminin yüksekliğini belirlemek için güvenilir bir sensörünüz vardır.
BMP180 kadar yetenekli bir sensör kullanarak, ultra yüksek çözünürlüklü parazitte sadece 17 cm gürültü ile 1 m hassasiyet elde edebilirsiniz.
I2C kullanılarak cihaz, 16bit değer olarak basınç ve sıcaklık sağlar, cihaz içindeki kalibrasyon verileriyle birlikte kullanılır, sıcaklık dengelenmiş bir yükseklik hesaplaması sağlamak için kullanılır.
Ürün özellikleri;
– Arduino ve diğer sistemlerin çoğuyla uyumludur.
– Giriş Gerilimi: 1,8V ile 3,6V arasındadır.
– I2C Protokolünü destekler.
– Ürün boyutu: 14mm x 12mm
– Çözünürlük: 0.03 hPa (0,25metre)
BMP180 Basınç Sensörü Nasıl Kullanılır?
Bu basınç sensörü I2C protokolü desteklemektedir bu yüzden birsürü kablo kullanmak yerine SCL ve SDA pinlerinden haberleşme sağlayabilmektedir.Arduino Uno dan bahsedecek olur SCL ve SDA pinleri genellikle Dijital 13 pinin yan tarafında bulunan üstünde yazı yazmayan boş pinlerdir.Arduino kartının arka tarafını çevirirseniz SDA ve SCL yazılarını görebilirsiniz.Yada A4 ve A5 pinlerine de bağlayabilirsiniz.
#include <SFE_BMP180.h> // Basınç Sensör kütüphanesi
#include <Wire.h> // I2C kütüphanesi
SFE_BMP180 pressure; //sensör adı tanımlama
double baseline; // Basınç değeri
void setup()
{
Serial.begin(9600);
if (pressure.begin())
Serial.println("BMP180 Bağlanıldı");
else
{
Serial.println("BMP180 Bağlanılamadı\n\n");
while(1);
}
baseline = getPressure();
Serial.print("Basınç: ");
Serial.print(baseline);
Serial.println(" mb");
}
void loop()
{
double a,P;
P = getPressure();
a = pressure.altitude(P,baseline);
Serial.print("Yükseklik: ");
if (a >= 0.0) Serial.print(" "); // Pozitif sayılarda boşlu ekle
Serial.print(a,1);
Serial.print(" meters, ");
if (a >= 0.0) Serial.print(" "); // pozitif sayılarda boşluk ekle
Serial.print(a*3.28084,0);
Serial.println(" feet");
delay(500);
}
double getPressure()
{
char status;
double T,P,p0,a;
// Önce bir basınç okuma gerçekleştirmek için bir sıcaklık ölçümünü almak gerekir.
// Ölçüm birimi T saklanır
// Kullan 'T' işlevine T adresini sağlamak.
// Fonksiyon döner başarılı olursa 1, başarısızlık ise 0.
status = pressure.startTemperature();//Bir sıcaklık ölçümü başlatılır
if (status != 0) //
{
delay(status); // Ölçüm tamamlanması için bekle
status = pressure.getTemperature(T); // T değerini ölç
if (status != 0) //Sıfırdan faklı ise
{
status = pressure.startPressure(3);//Basınç ölçümünü başlat
if (status != 0)
{
// Parametre 0 ila 3 örnekleme ayarı, (en yüksek res, uzun bekleme) 'dir.
// Istek başarılı olursa beklemek ms sayısı döndürülür.
// Istek başarısız olursa 0 döndürülür.
delay(status);// Ölçümünü tamamlanmasını bekle
// 'P' adresi sağlamak için
// Not ayrıca işlev önceki sıcaklık ölçümü (T) gerektirir.
// (Sıcaklık kararlı ise, basınç ölçümleri bir dizi için tek ısı ölçümü yapabilirsiniz.)
// Fonksiyon döner başarılı olursa 1 , başarısızlık ise 0
status = pressure.getPressure(P,T); //Tamamlanan basınç ölçümü Al :
if (status != 0) //sıfıra eşit değilse
{
return(P); // Ölçüm birimi P saklanır
}
// P sıfıra eşitse
else Serial.println("Basınç ölçümünde hata alındı\n");
}
// P sıfıra eşitse
else Serial.println("Basınç Ölçümü başlatılamadı\n");
}
// T sıfıra eşitse
else Serial.println("Sıcaklık değeri alınamadı\n");
}
// T sıfıra eşitse
else Serial.println("Sıcaklık ölçümü başlatılamadı\n");
}
İncelemeler
Henüz inceleme yapılmadı.