İçindekiler:
Video: Parçacık Fotonu - MPL3115A2 Hassas Altimetre Sensörü Eğitimi: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
MPL3115A2, doğru Basınç/İrtifa ve Sıcaklık verileri sağlamak için I2C arayüzüne sahip bir MEMS basınç sensörü kullanır. Sensör çıkışları, yüksek çözünürlüklü 24 bit ADC ile sayısallaştırılır. Dahili işleme, ana bilgisayar MCU sisteminden tazminat görevlerini kaldırır. Sadece 0,05 kPa'da, yani 0,3 m'lik bir irtifa değişikliğine denk gelen bir değişikliği tespit etme yeteneğine sahiptir. İşte Parçacık fotonu ile gösterimi.
Adım 1: İhtiyacınız Olan Şey..!
1. Parçacık Fotonu
2. MPL3115A2
3. I²C Kablosu
4. Parçacık Fotonu için I²C Kalkanı
Adım 2: Bağlantılar:
Parçacık fotonu için bir I2C kalkanı alın ve yavaşça parçacık fotonun pimlerinin üzerine itin.
Ardından I2C kablosunun bir ucunu MPL3115A2 sensörüne ve diğer ucunu I2C blendajına bağlayın.
Bağlantılar yukarıdaki resimde gösterilmiştir.
Adım 3: Kod:
MPL3115A2 için parçacık kodu Github deposu-DCUBE Mağazamızdan indirilebilir.
Bağlantı burada.
Partikül kodu için application.h ve spark_wiring_i2c.h olan iki kitaplık kullandık. Sensörle I2C iletişimini kolaylaştırmak için Spark_wiring_i2c kitaplığı gereklidir.
Kodu buradan da kopyalayabilirsiniz, aşağıdaki şekilde verilmiştir:
// Özgür irade lisansıyla dağıtılır.
// İlişkili çalışmalarının lisanslarına uyması koşuluyla, istediğiniz şekilde, kârlı veya ücretsiz olarak kullanın.
// MPL3115A2
// Bu kod, MPL3115A2_I2CS I2C Mini Modülü ile çalışmak üzere tasarlanmıştır.
#Dahil etmek
#Dahil etmek
// MPL3115A2 I2C adresi 0x60(96)
#define Addr 0x60
float cTemp = 0.0, fTemp = 0.0, basınç = 0.0, yükseklik = 0.0;
int temp = 0, tYükseklik = 0;uzun pres = 0;
geçersiz kurulum()
{
// Değişken ayarla
Particle.variable("i2ccihaz", "MPL3115A2");
Particle.variable("cTemp",cTemp);
Particle.variable("basınç", basınç);
Particle.variable("rakım", yükseklik);
// I2C iletişimini başlat
Wire.begin();
// Seri İletişimi Başlat, baud hızını ayarla = 9600
Seri.başla(9600);
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Kontrol kaydı seç
Wire.write(0x26);
// Aktif mod, OSR = 128, altimetre modu
Wire.write(0xB9);
// I2C iletimini durdur
Wire.endTransmission();
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri yapılandırma kaydını seç
Wire.write(0x13);
// Rakım, basınç, sıcaklık için veri hazır olayı etkinleştirildi
Wire.write(0x07);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(300);
}
boşluk döngüsü()
{
imzasız int veri[6];
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Kontrol kaydı seç
Wire.write(0x26);
// Aktif mod, OSR = 128, altimetre modu
Wire.write(0xB9);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(1000);
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x00);
// I2C iletimini durdur
Wire.endTransmission();
// 6 bayt veri iste
Wire.requestFrom(Adr, 6);
// 0x00(00) adresinden 6 bayt veri oku
// durum, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if(Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
veri[3] = Wire.read();
veri[4] = Wire.read();
veri[5] = Wire.read();
}
// Veriyi 20 bit'e çevir
Yükseklik = ((((uzun)veri[1] * (uzun)65536) + (veri[2] * 256) + (veri[3] & 0xF0)) / 16);
temp = ((veri[4] * 256) + (veri[5] & 0xF0)) / 16;
yükseklik = tYükseklik / 16.0;
cTemp = (sıcaklık / 16.0);
fTemp = cTemp * 1.8 + 32;
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Kontrol kaydı seç
Wire.write(0x26);
// Aktif mod, OSR = 128, barometre modu
Wire.write(0x39);
// I2C iletimini durdur
Wire.endTransmission();
// I2C iletimini başlat
Wire.beginTransmission(Adr);
// Veri kaydını seç
Wire.write(0x00);
// I2C iletimini durdur
Wire.endTransmission();
gecikme(1000);
// 4 bayt veri iste
Wire.requestFrom(Adr, 4);
// 4 bayt veri oku
// durum, msb1'e bas, msb'ye bas, lsb'ye bas
if(Wire.available() == 4)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
veri[3] = Wire.read();
}
// Veriyi 20 bit'e çevir
pres = (((uzun)veri[1] * (uzun)65536) + (veri[2] * 256) + (veri[3] & 0xF0)) / 16;
basınç = (basınç / 4.0) / 1000.0;
// Gösterge tablosuna veri çıkışı
Particle.publish("Yükseklik:", String(yükseklik));
Particle.publish("Basınç:", String(basınç));
Particle.publish("Santigrat Olarak Sıcaklık:", String(cTemp));
Particle.publish("Sıcaklık Fahrenhayt Olarak:", String(fTemp));
gecikme(1000);
}
Adım 4: Uygulamalar:
MPL3115A2'nin çeşitli uygulamaları arasında Yüksek Doğruluk Altimetri, Akıllı Telefonlar/Tabletler, Kişisel Elektronik Altimetri vb. bulunur. Ayrıca GPS Ölü Hesaplama, Acil Servisler için GPS Geliştirme, Harita Yardımı, Navigasyon ve Hava İstasyonu Ekipmanlarına da dahil edilebilir.
Önerilen:
Parçacık Fotonu - TCN75A Sıcaklık Sensörü Eğitimi: 4 Adım
Particle Photon - TCN75A Sıcaklık Sensörü Eğitimi: TCN75A, sıcaklıktan dijitale dönüştürücü ile birleştirilmiş iki kablolu seri sıcaklık sensörüdür. Sıcaklık algılama uygulamaları için esneklik sağlayan kullanıcı tarafından programlanabilir kayıtlarla birleştirilmiştir. Kayıt ayarları, kullanıcıların
Parçacık Fotonu - ADT75 Sıcaklık Sensörü Eğitimi: 4 Adım
Particle Photon - ADT75 Sıcaklık Sensörü Eğitimi: ADT75, son derece hassas, dijital bir sıcaklık sensörüdür. Bir bant aralığı sıcaklık sensöründen ve sıcaklığın izlenmesi ve sayısallaştırılması için 12 bitlik bir analogdan dijitale dönüştürücüden oluşur. Son derece hassas sensörü, onu benim için yeterince yetkin kılıyor
Parçacık Fotonu - STS21 Sıcaklık Sensörü Eğitimi: 4 Adım
Particle Photon - STS21 Sıcaklık Sensörü Eğitimi: STS21 Dijital Sıcaklık Sensörü, üstün performans ve yerden tasarruf sağlayan bir ayak izi sunar. Dijital, I2C formatında kalibre edilmiş, doğrusallaştırılmış sinyaller sağlar. Bu sensörün üretimi, üstün özelliklere atfedilen CMOSens teknolojisine dayanmaktadır
Parçacık Fotonu - HDC1000 Sıcaklık Sensörü Eğitimi: 4 Adım
Particle Photon - HDC1000 Sıcaklık Sensörü Eğitimi: HDC1000, çok düşük güçte mükemmel ölçüm doğruluğu sağlayan entegre sıcaklık sensörüne sahip bir dijital nem sensörüdür. Cihaz, yeni bir kapasitif sensöre dayalı olarak nemi ölçer. Nem ve sıcaklık sensörleri fac
Parçacık Fotonu - BH1715 Dijital Ortam Işığı Sensörü Eğitimi: 4 Adım
Particle Photon - BH1715 Dijital Ortam Işığı Sensörü Eğitimi: BH1715, I²C veri yolu arayüzüne sahip bir dijital Ortam Işığı Sensörüdür. BH1715, mobil cihazlar için LCD ve Tuş Takımı arka ışık gücünü ayarlamak için ortam ışığı verilerini elde etmek için yaygın olarak kullanılır. Bu cihaz, 16 bit çözünürlük ve bir ayar