Mundarija:
Video: Zarrachalar fotoni - MPL3115A2 nozik altimetrli sensorli qo'llanma: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
MPL3115A2 aniq bosim/balandlik va harorat ma'lumotlarini taqdim etish uchun I2C interfeysli MEMS bosim sensori bilan ishlaydi. Sensor chiqishlari yuqori aniqlikdagi 24 bitli ADC yordamida raqamlashtirilgan. Ichki ishlov berish MCU tizimidagi kompensatsiya vazifalarini olib tashlaydi. U 0,05 kPa o'zgarishini aniqlay oladi, bu balandlikning 0,3 m o'zgarishiga teng. Bu erda uning zarracha fotoni bilan namoyishi.
1 -qadam: Sizga nima kerak.. !
1. Foton zarrachalari
2. MPL3115A2
3. I²C kabeli
4. Zarrachali foton uchun I²C qalqoni
2 -qadam: Ulanishlar:
Zarrachali foton uchun I2C qalqonini oling va uni zarracha foton pimlari ustidan sekin itaring.
Keyin I2C kabelining bir uchini MPL3115A2 sensoriga, ikkinchi uchini esa I2C ekraniga ulang.
Ulanishlar yuqoridagi rasmda ko'rsatilgan.
3 -qadam: Kod:
MPL3115A2 uchun zarracha kodini bizning Github omboridan-DCUBE do'konidan yuklab olish mumkin.
Mana havola.
Biz zarrachalar kodi uchun ikkita kutubxonadan foydalandik, ular application.h va spark_wiring_i2c.h. Sensor bilan I2C aloqasini osonlashtirish uchun Spark_wiring_i2c kutubxonasi kerak.
Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:
// Ixtiyoriy litsenziya bilan tarqatilgan.
// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.
// MPL3115A2
// Bu kod MPL3115A2_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan
#qo'shing
#qo'shing
// MPL3115A2 I2C manzili - 0x60 (96)
#aniqlang Addr 0x60
float cTemp = 0,0, fTemp = 0,0, bosim = 0,0, balandlik = 0,0;
int temp = 0, tHeight = 0; uzoq pres = 0;
bo'sh o'rnatish ()
{
// O'zgaruvchini o'rnating
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Zarracha.variable ("bosim", bosim);
Zarracha.variable ("balandlik", balandlik);
// I2C aloqasini boshlang
Wire.begin ();
// Serial aloqani ishga tushiring, bod tezligi = 9600
Serial.begin (9600);
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Boshqarish registrini tanlang
Wire.write (0x26);
// Faol rejim, OSR = 128, altimetr rejimi
Wire.write (0xB9);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Ma'lumot konfiguratsiyasi registrini tanlang
Wire.write (0x13);
// Ma'lumot tayyor hodisasi balandlik, bosim, harorat uchun yoqilgan
Wire.write (0x07);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (300);
}
bo'sh halqa ()
{
imzosiz int ma'lumotlari [6];
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Boshqarish registrini tanlang
Wire.write (0x26);
// Faol rejim, OSR = 128, altimetr rejimi
Wire.write (0xB9);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (1000);
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Ma'lumotlar reestrini tanlang
Wire.write (0x00);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// 6 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 6);
// 0x00 (00) manzilidan 6 bayt ma'lumotni o'qing
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
agar (Wire.available () == 6)
{
ma'lumotlar [0] = Wire.read ();
ma'lumotlar [1] = Wire.read ();
ma'lumotlar [2] = Wire.read ();
ma'lumotlar [3] = Wire.read ();
ma'lumotlar [4] = Wire.read ();
ma'lumotlar [5] = Wire.read ();
}
// Ma'lumotni 20 bitga aylantiring
tHeight = ((((uzun) ma'lumotlar [1] * (uzun) 65536) + (ma'lumotlar [2] * 256) + (ma'lumotlar [3] & 0xF0)) / 16);
temp = ((ma'lumotlar [4] * 256) + (ma'lumotlar [5] & 0xF0)) / 16;
balandlik = tHeight / 16.0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1.8 + 32;
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Boshqarish registrini tanlang
Wire.write (0x26);
// Faol rejim, OSR = 128, barometr rejimi
Wire.write (0x39);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Ma'lumotlar reestrini tanlang
Wire.write (0x00);
// I2C uzatishni to'xtating
Wire.endTransmission ();
kechikish (1000);
// 4 bayt ma'lumotni so'rang
Wire.requestFrom (Addr, 4);
// 4 bayt ma'lumotni o'qing
// status, pres msb1, pres msb, pres lsb
agar (Wire.available () == 4)
{
ma'lumotlar [0] = Wire.read ();
ma'lumotlar [1] = Wire.read ();
ma'lumotlar [2] = Wire.read ();
ma'lumotlar [3] = Wire.read ();
}
// Ma'lumotni 20 bitga aylantiring
pres = (((uzun) ma'lumotlar [1] * (uzun) 65536) + (ma'lumotlar [2] * 256) + (ma'lumotlar [3] & 0xF0)) / 16;
bosim = (pres / 4.0) / 1000.0;
// Ma'lumotlarni boshqaruv paneliga chiqarish
Particle.publish ("Balandlik:", Ip (balandlik));
Particle.publish ("Bosim:", String (bosim));
Particle.publish ("Selsiydagi harorat:", String (cTemp));
Particle.publish ("Farengeytdagi harorat:", String (fTemp));
kechikish (1000);
}
4 -qadam: Ilovalar:
MPL3115A2 -ning turli xil ilovalari yuqori aniqlikdagi altimetriya, smartfonlar/planshetlar, shaxsiy elektron altimetriya va boshqalarni o'z ichiga oladi. Shuningdek, u GPS o'lik hisob -kitobiga, favqulodda xizmatlar uchun GPS -ni takomillashtirishga, xaritaga yordam berishga, navigatsiyaga, shuningdek ob -havo stantsiyasi uskunasiga qo'shilishi mumkin.
Tavsiya:
Zarrachalar fotoni - ADT75 harorat sensori bo'yicha qo'llanma: 4 qadam
Parton Photon - ADT75 harorat sensori bo'yicha qo'llanma: ADT75 - bu yuqori aniqlikdagi raqamli harorat sensori. U haroratni o'lchash va raqamlashtirish uchun tarmoqli oralig'idagi harorat sensori va 12-bitli analogdan raqamli konvertorga ega. Uning juda sezgir sensori uni men uchun etarlicha malakali qiladi
Zarrachalar fotoni - STS21 harorat sensori bo'yicha qo'llanma: 4 qadam
Zarracha fotoni - STS21 harorat sensori bo'yicha qo'llanma: STS21 raqamli harorat sensori yuqori ishlash va bo'sh joyni tejash imkonini beradi. Bu raqamli, I2C formatida kalibrlangan, chiziqli signallarni beradi. Ushbu sensorning ishlab chiqarilishi CMOSens texnologiyasiga asoslangan bo'lib, u yuqori darajadagi
Zarrachalar fotoni - HDC1000 harorat sensori bo'yicha qo'llanma: 4 qadam
Particle Photon - HDC1000 harorat sensori bo'yicha qo'llanma: HDC1000 raqamli namlik sensori bo'lib, juda past quvvatda o'lchashning aniqligini ta'minlaydi. Qurilma namlikni yangi sig'im sensori asosida o'lchaydi. Namlik va harorat sezgichlari
Zarrachalar fotoni - BH1715 Raqamli atrof -muhit yorug'lik sensori bo'yicha qo'llanma: 4 qadam
Parton Photon - BH1715 Raqamli atrof -muhit yorug'lik sensori bo'yicha qo'llanma: BH1715 - bu I²C avtobus interfeysiga ega raqamli atrof -muhit nuri sensori. BH1715 odatda mobil qurilmalar uchun LCD va klaviatura orqa nuri quvvatini sozlash uchun atrofdagi yorug'lik ma'lumotlarini olish uchun ishlatiladi. Ushbu qurilma 16-bitli piksellar sonini va sozlovchini taklif qiladi
Zarrachalar fotoni - TMP100 harorat sensori bo'yicha qo'llanma: 4 qadam
Zarrachalar fotoni-TMP100 harorat sensori qo'llanmasi: TMP100 yuqori aniqlik, kam quvvatli, raqamli harorat sensori I2C MINI. TMP100 haroratni o'lchash uchun ideal. Bu qurilma kalibrlashni yoki tashqi komponent signal signalizatsiyasini talab qilmasdan ± 1 ° C aniqlikni taqdim etadi. U