Mündəricat:
Video: Particle Photon - MPL3115A2 Həssas Altimetr Sensoru Dərsliyi: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
MPL3115A2, dəqiq təzyiq/yüksəklik və temperatur məlumatlarını təmin etmək üçün I2C interfeysi olan bir MEMS təzyiq sensoru istifadə edir. Sensor çıxışları yüksək keyfiyyətli 24 bitlik ADC ilə rəqəmsallaşdırılır. Daxili emal, kompensasiya vəzifələrini ana MCU sistemindən çıxarır. Hündürlükdə 0.3m dəyişikliyə bərabər olan yalnız 0.05 kPa dəyişikliyi aşkar edə bilir. İşdə Particle Photon ilə nümayişidir.
Addım 1: Nə Lazımdır..
1. Foton hissəcikləri
2. MPL3115A2
3. I²C Kabel
4. Partikül Foton üçün I²C Qalxanı
Addım 2: Bağlantılar:
Hissəcik fotonu üçün bir I2C qalxanı götürün və zərrəcik foton sancaqlarının üzərinə itələyin.
Sonra I2C kabelinin bir ucunu MPL3115A2 sensoruna, digər ucunu isə I2C ekranına bağlayın.
Bağlantılar yuxarıdakı şəkildə göstərilmişdir.
Addım 3: Kod:
MPL3115A2 üçün hissəcik kodunu Github depomuzdan yükləyə bilərsiniz-DCUBE Mağazası.
İşdə link.
Hissəcik kodu üçün application.h və spark_wiring_i2c.h olan iki kitabxanadan istifadə etdik. Sensorla I2C əlaqəsini asanlaşdırmaq üçün Spark_wiring_i2c kitabxanası lazımdır.
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
// Azad iradə lisenziyası ilə paylanmışdır.
// İstənilən şəkildə, mənfəət və ya pulsuz istifadə edin, əlaqəli əsərlərinin lisenziyalarına uyğun gəlir.
// MPL3115A2
// Bu kod MPL3115A2_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır
#daxil edin
#daxil edin
// MPL3115A2 I2C ünvanı 0x60 (96)
#Addr 0x60
float cTemp = 0.0, fTemp = 0.0, təzyiq = 0.0, yüksəklik = 0.0;
int temp = 0, tHeight = 0; uzun pres = 0;
boş quraşdırma ()
{
// Dəyişən təyin edin
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Hissəcik.dəyişən ("təzyiq", təzyiq);
Hissəcik.dəyişən ("yüksəklik", yüksəklik);
// I2C ünsiyyətini işə salın
Wire.begin ();
// Serial Rabitəni Başlatın, baud dərəcəsini = 9600 olaraq təyin edin
Serial.begin (9600);
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Nəzarət reyestrini seçin
Wire.write (0x26);
// Aktiv rejim, OSR = 128, altimetr rejimi
Wire.write (0xB9);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat konfiqurasiya qeydini seçin
Wire.write (0x13);
// Hündürlük, təzyiq, temperatur üçün məlumatlara hazır hadisə aktivdir
Wire.write (0x07);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (300);
}
boşluq döngəsi ()
{
imzasız int məlumatları [6];
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Nəzarət reyestrini seçin
Wire.write (0x26);
// Aktiv rejim, OSR = 128, altimetr rejimi
Wire.write (0xB9);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (1000);
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini seçin
Wire.write (0x00);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// 6 bayt məlumat tələb edin
Wire.requestFrom (Addr, 6);
// 0x00 (00) ünvanından 6 bayt məlumat oxuyun
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
əgər (Tel.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
// Məlumatı 20 bitə çevirin
tHeight = ((((uzun) məlumatlar [1] * (uzun) 65536) + (məlumatlar [2] * 256) + (məlumatlar [3] & 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
hündürlük = tHeight / 16.0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Nəzarət reyestrini seçin
Wire.write (0x26);
// Aktiv rejim, OSR = 128, barometr rejimi
Wire.write (0x39);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
// I2C ötürülməsinə başlayın
Wire.beginTransmission (Addr);
// Məlumat qeydini seçin
Wire.write (0x00);
// I2C ötürülməsini dayandırın
Wire.endTransmission ();
gecikmə (1000);
// 4 bayt məlumat tələb edin
Wire.requestFrom (Addr, 4);
// 4 bayt məlumat oxuyun
// status, pres msb1, pres msb, pres lsb
əgər (Tel.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Məlumatı 20 bitə çevirin
pres = (((uzun) məlumatlar [1] * (uzun) 65536) + (məlumatlar [2] * 256) + (məlumatlar [3] & 0xF0)) / 16;
təzyiq = (pres / 4.0) / 1000.0;
// Göstərişlər panelinə məlumat çıxarın
Particle.publish ("Yüksəklik:", String (yüksəklik));
Particle.publish ("Təzyiq:", String (təzyiq));
Particle.publish ("Selsi İstiliyi:", String (cTemp));
Particle.publish ("Fahrenheitdəki temperatur:", String (fTemp));
gecikmə (1000);
}
Addım 4: Tətbiqlər:
MPL3115A2 -nin müxtəlif tətbiqlərinə Yüksək Dəqiqlik Altimetriyası, Smartfonlar/Tabletlər, Fərdi Elektronik Altimetriya və s. Daxildir. O, həmçinin GPS Ölü Hesablama, Təcili Xidmətlər üçün GPS Artırması, Xəritə Köməkçisi, Naviqasiya və Hava İstismarı Avadanlıqlarına daxil edilə bilər.
Tövsiyə:
PIR Sensoru və Buzzer Modulundan Necə İstifadə Edilir - Visuino Dərsliyi: 6 addım
PIR Sensoru və Siqnal Modulundan Necə İstifadə Ediləcək - Visuino Dərsliyi: Bu təlimatda, PIR sensoru hər hərəkəti aşkar etdikdə səs çıxarmaq üçün PIR sensoru və səs siqnalı modulundan istifadə etməyi öyrənəcəyik. Bir nümayiş videosuna baxın
Particle Photon - HDC1000 Temperatur Sensor Dərsliyi: 4 Addım
Particle Photon - HDC1000 Temperatur Sensor Dərsliyi: HDC1000, çox aşağı gücdə əla ölçü dəqiqliyi təmin edən inteqrasiya edilmiş temperatur sensoru olan rəqəmsal rütubət sensoru. Cihaz rütubəti yeni bir kapasitiv sensora əsaslanaraq ölçür. Rütubət və temperatur sensörləri
Particle Photon - TMP100 Temperatur Sensor Dərsliyi: 4 Addım
Particle Photon-TMP100 Temperatur Sensor Dərsliyi: TMP100 Yüksək Dəqiqlik, Aşağı Güc, Rəqəmsal Temperatur Sensoru I2C MINI modulu. TMP100 uzun temperatur ölçülməsi üçün idealdır. Bu cihaz, kalibrləmə və ya xarici komponent siqnal kondisioneri tələb etmədən ± 1 ° C dəqiqlik təqdim edir. O
Təzyiq Həssas Döşəmə Sensoru: 9 Addım (Şəkillərlə birlikdə)
Təzyiq Həssas Döşəmə Mat Sensoru: Bu Təlimat kitabında, dayandığınız zaman aşkar edə biləcək bir təzyiqə həssas döşəmə mat sensoerinin dizaynını paylaşacağam. Sizi tam olaraq çəkə bilməsə də, tam çəkinizlə bunun üzərində dayanıb -durmadığınızı və ya sadəcə
Arduino Led Strip Həssas Nəbz Sensoru: 5 addım
Arduino Led Strip Həssas Nəbz Sensoru: Etdiyim ilk şey, YouTube -da izləmək çox asan olan bir dərs vasitəsi ilə Grove Nəbz Sensorumu Arduino ilə bağlamaq oldu. https://www.youtube.com/watch?v=Dzq4tnJ0LjAhttps://www.kiwi-electronics.nl/grove-finger-clip