Sisällysluettelo:
Video: Hiukkasfotoni - MPL3115A2 Tarkka korkeusmittarin anturin opetusohjelma: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
MPL3115A2 käyttää MEMS -paineanturia, jossa on I2C -liitäntä, joka antaa tarkat paine-/korkeus- ja lämpötilatiedot. Anturilähdöt digitalisoidaan korkean resoluution 24-bittisellä ADC: llä. Sisäinen käsittely poistaa korvaustehtävät isäntä MCU -järjestelmästä. Se pystyy havaitsemaan muutoksen vain 0,05 kPa, mikä vastaa 0,3 metrin korkeuden muutosta. Tässä on sen esittely hiukkasfotonilla.
Vaihe 1: Mitä tarvitset..
1. Hiukkasfotoni
2. MPL3115A2
3. I²C -kaapeli
4. I²C -suoja hiukkasfotonille
Vaihe 2: Liitännät:
Ota I2C -suoja hiukkasfotonille ja työnnä sitä varovasti hiukkasfotonin nastojen yli.
Liitä sitten I2C -kaapelin toinen pää MPL3115A2 -anturiin ja toinen pää I2C -suojaan.
Liitännät näkyvät yllä olevassa kuvassa.
Vaihe 3: Koodi:
MPL3115A2-hiukkaskoodin voi ladata Github-arkistostamme DCUBE-kaupasta.
Tässä on linkki.
Olemme käyttäneet hiukkaskoodissa kahta kirjastoa, joita ovat application.h ja spark_wiring_i2c.h. Spark_wiring_i2c -kirjasto tarvitaan I2C -tiedonsiirron helpottamiseksi anturin kanssa.
Voit myös kopioida koodin täältä, se annetaan seuraavasti:
// Jaetaan vapaaehtoisella lisenssillä.
// Käytä sitä haluamallasi tavalla, voittoa tai ilmaiseksi, jos se sopii siihen liittyvien teosten lisensseihin.
// MPL3115A2
// Tämä koodi on suunniteltu toimimaan MPL3115A2_I2CS I2C Mini -moduulin kanssa
#sisältää
#sisältää
// MPL3115A2 I2C -osoite on 0x60 (96)
#define Addr 0x60
kelluva cTemp = 0,0, fTemp = 0,0, paine = 0,0, korkeus = 0,0;
int temp = 0, tKorkeus = 0; pitkä pres = 0;
mitätön asennus ()
{
// Aseta muuttuja
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Partikkeli.muuttuja ("paine", paine);
Particle.variable ("korkeus", korkeus);
// Alusta I2C -viestintä
Wire.begin ();
// Alusta sarjaliikenne, aseta baudinopeus = 9600
Sarja.alku (9600);
// Aloita I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse ohjausrekisteri
Wire.write (0x26);
// Aktiivinen tila, OSR = 128, korkeusmittari
Wire.write (0xB9);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
// Aloita I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse tietojen määritysrekisteri
Wire.write (0x13);
// Data ready -tapahtuma käytössä korkeudessa, paineessa, lämpötilassa
Wire.write (0x07);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
viive (300);
}
tyhjä silmukka ()
{
allekirjoittamattomat int -tiedot [6];
// Aloita I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse ohjausrekisteri
Wire.write (0x26);
// Aktiivinen tila, OSR = 128, korkeusmittari
Wire.write (0xB9);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
viive (1000);
// Aloita I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse tietorekisteri
Wire.write (0x00);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
// Pyydä 6 tavua dataa
Wire.requestFrom (Addr, 6);
// Lue 6 tavua dataa osoitteesta 0x00 (00)
// tila, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
jos (Wire.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 ();
}
// Muunna tiedot 20-bittisiksi
tKorkeus = (((((pitkä)) data [1] * (pitkä) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);
lämpötila = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
korkeus = tKorkeus / 16,0;
cTemp = (lämpötila / 16,0);
fTemp = cTemp * 1,8 + 32;
// Aloita I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse ohjausrekisteri
Wire.write (0x26);
// Aktiivinen tila, OSR = 128, barometritila
Wire.write (0x39);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
// Aloita I2C -lähetys
Wire.beginTransmission (Addr);
// Valitse tietorekisteri
Wire.write (0x00);
// Pysäytä I2C -lähetys
Wire.endTransmission ();
viive (1000);
// Pyydä 4 tavua dataa
Wire.requestFrom (Addr, 4);
// Lue 4 tavua dataa
// tila, pres msb1, pres msb, pres lsb
jos (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Muunna tiedot 20-bittisiksi
pres = (((pitkä) data [1] * (pitkä) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
paine = (pres / 4,0) / 1000,0;
// Tulosta tiedot kojelautaan
Particle.publish ("Korkeus:", Jono (korkeus));
Particle.publish ("Paine:", Jono (paine));
Particle.publish ("Lämpötila Celsius:", Jono (cTemp));
Particle.publish ("Lämpötila Fahrenheit:", Jono (fTemp));
viive (1000);
}
Vaihe 4: Sovellukset:
MPL3115A2: n eri sovelluksiin kuuluu korkean tarkkuuden korkeusmittari, älypuhelimet/tabletit, henkilökohtaisen elektroniikan korkeusmittari jne. Se voidaan sisällyttää myös GPS -kuolleen laskennan, hätäpalvelujen GPS -parannuksen, kartta -avustimen, navigoinnin ja sääaseman laitteisiin.
Suositeltava:
Hiukkasfotoni - TCN75A -lämpötila -anturin opetusohjelma: 4 vaihetta
Hiukkasfotoni-TCN75A-lämpötila-anturin opetusohjelma: TCN75A on kaksijohtiminen sarjalämpötila-anturi, joka on liitetty lämpötila-digitaalimuuntimeen. Se on sisällytetty käyttäjän ohjelmoitaviin rekistereihin, jotka tarjoavat joustavuutta lämpötilan tunnistaviin sovelluksiin. Rekisteriasetusten avulla käyttäjät voivat
Hiukkasfotoni - ADT75 -lämpötila -anturin opetusohjelma: 4 vaihetta
Hiukkasfotoni - ADT75 -lämpötila -anturin opetusohjelma: ADT75 on erittäin tarkka, digitaalinen lämpötila -anturi. Se koostuu kaistaraon lämpötila-anturista ja 12-bittisestä analogisesta digitaaliseen muuntimeen lämpötilan valvontaa ja digitointia varten. Sen erittäin herkkä anturi tekee siitä riittävän pätevän minulle
Hiukkasfotoni - STS21 -lämpötila -anturin opetusohjelma: 4 vaihetta
Hiukkasfotoni - STS21 -lämpötila -anturin opetusohjelma: STS21 -digitaalinen lämpötila -anturi tarjoaa erinomaisen suorituskyvyn ja tilaa säästävän jalanjäljen. Se tarjoaa kalibroituja, linearisoituja signaaleja digitaalisessa I2C -muodossa. Tämän anturin valmistus perustuu CMOSens -tekniikkaan, joka kuvaa erinomaista
Hiukkasfotoni - HDC1000 -lämpötila -anturin opetusohjelma: 4 vaihetta
Hiukkasfotoni - HDC1000 -lämpötila -anturin opetusohjelma: HDC1000 on digitaalinen kosteusanturi, jossa on integroitu lämpötila -anturi, joka tarjoaa erinomaisen mittaustarkkuuden erittäin pienellä teholla. Laite mittaa kosteutta uuden kapasitiivisen anturin perusteella. Kosteus- ja lämpötila -anturit ovat
Hiukkasfotoni - TMP100 -lämpötila -anturin opetusohjelma: 4 vaihetta
Hiukkasfotoni-TMP100-lämpötila-anturin opetusohjelma: TMP100: n erittäin tarkka, pienitehoinen, digitaalinen lämpötila-anturi I2C MINI -moduuli. TMP100 on ihanteellinen pidennetyn lämpötilan mittaamiseen. Tämän laitteen tarkkuus on ± 1 ° C ilman kalibrointia tai ulkoisen komponentin signaalin käsittelyä. Hän