Sisukord:
Video: Osakeste footon - MPL3115A2 Täpse kõrguseanduri anduri õpetus: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
MPL3115A2 kasutab rõhu/kõrguse ja temperatuuri täpsete andmete saamiseks IEM -liidesega MEMS -rõhuandurit. Anduri väljundid digiteeritakse kõrge eraldusvõimega 24-bitise ADC abil. Sisemine töötlemine eemaldab kompenseerimisülesanded host -MCU süsteemist. See on võimeline tuvastama muutusi vaid 0,05 kPa, mis võrdub 0,3 m kõrguse muutusega. Siin on selle demonstratsioon osakeste footoniga.
Samm: mida vajate..
1. Osakeste footon
2. MPL3115A2
3. I²C kaabel
4. I²C kilp osakeste footonile
Samm: ühendused:
Võtke osakeste footoni jaoks I2C kilp ja suruge see õrnalt üle osakeste footoni tihvtide.
Seejärel ühendage I2C kaabli üks ots MPL3115A2 anduriga ja teine ots I2C varjestusega.
Ühendused on näidatud ülaltoodud pildil.
3. samm: kood:
MPL3115A2 osakeste koodi saab alla laadida meie Githubi hoidlast-DCUBE poest.
Siin on link.
Osakeste koodi jaoks oleme kasutanud kahte raamatukogu, milleks on application.h ja spark_wiring_i2c.h. I2C anduriga suhtlemise hõlbustamiseks on vajalik teek Spark_wiring_i2c.
Siit saate koodi ka kopeerida, see on järgmine:
// Levitatakse vaba tahte litsentsiga.
// Kasutage seda soovitud viisil, kasumit teenides või tasuta, tingimusel et see sobib sellega seotud teoste litsentsidega.
// MPL3115A2
// See kood on loodud töötama koos MPL3115A2_I2CS I2C minimooduliga
#kaasake
#kaasake
// MPL3115A2 I2C aadress on 0x60 (96)
#define Addr 0x60
ujuk cTemp = 0,0, fTemp = 0,0, rõhk = 0,0, kõrgus = 0,0;
int temp = 0, tKõrgus = 0; pikk pres = 0;
tühine seadistus ()
{
// Määra muutuja
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Osake.muutuja ("rõhk", rõhk);
Osake.muutuja ("kõrgus", kõrgus);
// Initsialiseeri I2C side
Wire.begin ();
// Initsialiseeri jadaühendus, määrake edastuskiirus = 9600
Seriaalne algus (9600);
// Alusta I2C edastamist
Wire.beginTransmission (Addr);
// Valige juhtregister
Wire.write (0x26);
// Aktiivne režiim, OSR = 128, altimeetri režiim
Wire.write (0xB9);
// Peata I2C edastamine
Wire.endTransmission ();
// Alusta I2C edastamist
Wire.beginTransmission (Addr);
// Valige andmete konfiguratsiooniregister
Wire.write (0x13);
// Andmete valmis sündmus on lubatud kõrguse, rõhu, temperatuuri jaoks
Wire.write (0x07);
// Peata I2C edastamine
Wire.endTransmission ();
viivitus (300);
}
tühine tsükkel ()
{
allkirjastamata int andmed [6];
// Alusta I2C edastamist
Wire.beginTransmission (Addr);
// Valige juhtregister
Wire.write (0x26);
// Aktiivne režiim, OSR = 128, altimeetri režiim
Wire.write (0xB9);
// Peata I2C edastamine
Wire.endTransmission ();
viivitus (1000);
// Alusta I2C edastamist
Wire.beginTransmission (Addr);
// Valige andmeregister
Wire.write (0x00);
// Peata I2C edastamine
Wire.endTransmission ();
// Taotlege 6 baiti andmeid
Wire.requestFrom (Addr, 6);
// Lugege 6 baiti andmeid aadressilt 0x00 (00)
// olek, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
kui (Wire.available () == 6)
{
andmed [0] = Wire.read ();
andmed [1] = Wire.read ();
andmed [2] = Wire.read ();
andmed [3] = Wire.read ();
andmed [4] = Wire.read ();
andmed [5] = Wire.read ();
}
// Teisendage andmed 20-bitisteks
tKõrgus = (((((pikad) andmed) [1] * (pikk) 65536) + (andmed [2] * 256) + (andmed [3] ja 0xF0)) / 16);
temp = ((andmed [4] * 256) + (andmed [5] ja 0xF0)) / 16;
kõrgus = tKõrgus / 16,0;
cTemp = (temp / 16,0);
fTemp = cTemp * 1,8 + 32;
// Alusta I2C edastamist
Wire.beginTransmission (Addr);
// Valige juhtregister
Wire.write (0x26);
// Aktiivne režiim, OSR = 128, baromeetri režiim
Wire.write (0x39);
// Peata I2C edastamine
Wire.endTransmission ();
// Alusta I2C edastamist
Wire.beginTransmission (Addr);
// Valige andmeregister
Wire.write (0x00);
// Peata I2C edastamine
Wire.endTransmission ();
viivitus (1000);
// Taotle 4 baiti andmeid
Wire.requestFrom (Addr, 4);
// Loe 4 baiti andmeid
// olek, pres msb1, pres msb, pres lsb
kui (Wire.available () == 4)
{
andmed [0] = Wire.read ();
andmed [1] = Wire.read ();
andmed [2] = Wire.read ();
andmed [3] = Wire.read ();
}
// Teisendage andmed 20-bitisteks
pres = (((pikad) andmed [1] * (pikk) 65536) + (andmed [2] * 256) + (andmed [3] ja 0xF0)) / 16;
rõhk = (pres / 4,0) / 1000,0;
// Andmete väljastamine armatuurlauale
Particle.publish ("Kõrgus:", String (kõrgus));
Particle.publish ("Rõhk:", String (rõhk));
Particle.publish ("Temperatuur Celsiuse järgi:", String (cTemp));
Particle.publish ("Temperatuur Fahrenheiti järgi:", String (fTemp));
viivitus (1000);
}
4. samm: rakendused:
MPL3115A2 mitmesugused rakendused hõlmavad suure täpsusega kõrguse mõõtmist, nutitelefoni/tahvelarvutit, isikliku elektroonika kõrguse mõõtmist jne. Seda saab lisada ka GPS -i surnud arvestusse, hädaabiteenuste GPS -i täiustamisse, kaardiabi, navigeerimisseadmesse ja ilmajaama seadmetesse.
Soovitan:
Osakeste footon - TCN75A temperatuurianduri õpetus: 4 sammu
Osakeste footon-TCN75A temperatuurianduri õpetus: TCN75A on kahejuhtmeline jada temperatuuriandur, mis on ühendatud temperatuuri-digitaalse muunduriga. See on ühendatud kasutaja programmeeritavate registritega, mis pakuvad temperatuuri tundvate rakenduste jaoks paindlikkust. Registri seaded võimaldavad kasutajatel
Osakeste footon - ADT75 temperatuurianduri õpetus: 4 sammu
Osakeste footon - ADT75 temperatuurianduri õpetus: ADT75 on ülitäpne digitaalne temperatuuriandur. See koosneb ribalaiuse temperatuuriandurist ja 12-bitisest analoog-digitaalmuundurist temperatuuri jälgimiseks ja digiteerimiseks. Selle ülitundlik andur muudab selle minu jaoks piisavalt pädevaks
Osakeste footon - STS21 temperatuurianduri õpetus: 4 sammu
Osakeste footon - STS21 temperatuurianduri õpetus: STS21 digitaalne temperatuuriandur pakub suurepärast jõudlust ja ruumi säästvat jalajälge. See pakub kalibreeritud, lineariseeritud signaale digitaalses I2C -vormingus. Selle anduri valmistamine põhineb CMOSens tehnoloogial, mis omistab suurepärase
Osakeste footon - HDC1000 temperatuurianduri õpetus: 4 sammu
Osakeste footon - HDC1000 temperatuurianduri õpetus: HDC1000 on digitaalne niiskusandur koos integreeritud temperatuurianduriga, mis tagab suurepärase mõõtmistäpsuse väga väikese võimsusega. Seade mõõdab niiskust uue mahtuvusliku anduri põhjal. Niiskuse ja temperatuuri andurid on
Osakeste footon - BH1715 digitaalse ümbritseva valguse anduri õpetus: 4 sammu
Osakeste footon - BH1715 Digitaalse ümbritseva valguse anduri õpetus: BH1715 on digitaalne ümbritseva valguse andur, millel on I²C siiniliides. BH1715 kasutatakse tavaliselt ümbritseva valguse andmete saamiseks, et reguleerida mobiilseadmete LCD -ekraani ja klaviatuuri taustvalgustust. See seade pakub 16-bitist eraldusvõimet ja reguleerib