Kazalo:
Video: Foton delcev - MPL3115A2 Precizni senzor višinomera, vadnica: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
MPL3115A2 uporablja senzor tlaka MEMS z vmesnikom I2C za zagotavljanje točnih podatkov o tlaku/nadmorski višini in temperaturi. Izhode senzorjev digitalizira 24-bitni ADC z visoko ločljivostjo. Notranja obdelava odstrani kompenzacijske naloge iz gostiteljskega sistema MCU. Sposoben je zaznati spremembo le 0,05 kPa, kar pomeni 0,3 m višinske spremembe. Tukaj je njegova predstavitev s fotonom delcev.
Korak: Kaj potrebujete.. !
1. Foton delcev
2. MPL3115A2
3. Kabel I²C
4. I²C ščit za fotone delcev
2. korak: Povezave:
Za foton delcev vzemite ščit I2C in ga nežno potisnite čez zatiče fotona delcev.
Nato en konec kabla I2C priključite na senzor MPL3115A2, drugi konec pa na ščit I2C.
Povezave so prikazane na zgornji sliki.
3. korak: Koda:
Kodo delcev za MPL3115A2 lahko prenesete iz našega skladišča Github-DCUBE Store.
Tukaj je povezava.
Za kodo delcev smo uporabili dve knjižnici, in sicer application.h in spark_wiring_i2c.h. Za olajšanje komunikacije I2C s senzorjem je potrebna knjižnica Spark_wiring_i2c.
Kodo lahko tudi kopirate od tu, podana je na naslednji način:
// Razdeljeno z licenco za svobodno voljo.
// Uporabljajte ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del.
// MPL3115A2
// Ta koda je zasnovana za delo z mini modulom MPL3115A2_I2CS I2C
#vključi
#vključi
// Naslov I2C MPL3115A2 je 0x60 (96)
#define Addr 0x60
float cTemp = 0,0, fTemp = 0,0, tlak = 0,0, nadmorska višina = 0,0;
int temp = 0, tHeight = 0; long pres = 0;
void setup ()
{
// Nastavi spremenljivko
Particle.variable ("i2cdevice", "MPL3115A2");
Delci.variable ("cTemp", cTemp);
Delci.premenljiva ("tlak", tlak);
Delcev.premenljiva ("višina", nadmorska višina);
// Inicializirajte komunikacijo I2C
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite kontrolni register
Wire.write (0x26);
// Aktivni način, OSR = 128, način višinomera
Wire.write (0xB9);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register konfiguracije podatkov
Wire.write (0x13);
// Omogočen dogodek pripravljenih podatkov za nadmorsko višino, tlak, temperaturo
Wire.write (0x07);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [6];
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite kontrolni register
Wire.write (0x26);
// Aktivni način, OSR = 128, način višinomera
Wire.write (0xB9);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (1000);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write (0x00);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 6 bajtov podatkov
Wire.requestFrom (Addr, 6);
// prebere 6 bajtov podatkov z naslova 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
če (Wire.available () == 6)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
podatki [2] = Wire.read ();
podatki [3] = Wire.read ();
podatki [4] = Wire.read ();
podatki [5] = Wire.read ();
}
// Pretvorimo podatke v 20-bitne
tHeight = ((((dolgi) podatki [1] * (dolgi) 65536) + (podatki [2] * 256) + (podatki [3] & 0xF0)) / 16);
temp = ((podatki [4] * 256) + (podatki [5] & 0xF0)) / 16;
nadmorska višina = tVišina / 16,0;
cTemp = (temp / 16,0);
fTemp = cTemp * 1,8 + 32;
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite kontrolni register
Wire.write (0x26);
// Aktivni način, OSR = 128, način barometra
Wire.write (0x39);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite register podatkov
Wire.write (0x00);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (1000);
// Zahtevajte 4 bajte podatkov
Wire.requestFrom (Addr, 4);
// Branje 4 bajtov podatkov
// stanje, pres msb1, pres msb, pres lsb
če (Wire.available () == 4)
{
podatki [0] = Wire.read ();
podatki [1] = Wire.read ();
podatki [2] = Wire.read ();
podatki [3] = Wire.read ();
}
// Pretvorimo podatke v 20-bitne
pres = (((dolgi) podatki [1] * (dolgi) 65536) + (podatki [2] * 256) + (podatki [3] & 0xF0)) / 16;
tlak = (pres / 4,0) / 1000,0;
// Izhod podatkov na nadzorno ploščo
Particle.publish ("Nadmorska višina:", niz (nadmorska višina));
Particle.publish ("Tlak:", niz (tlak));
Particle.publish ("Temperatura v Celziju:", String (cTemp));
Particle.publish ("Temperatura v Fahrenheitu:", String (fTemp));
zamuda (1000);
}
4. korak: Aplikacije:
Različne aplikacije MPL3115A2 vključujejo visoko natančnost altimetrije, pametne telefone/tablične računalnike, višino osebne elektronike itd. Lahko se vključijo tudi v GPS mrtve obračune, izboljšavo GPS za službe v sili, pomoč pri zemljevidih, navigacijo in opremo vremenskih postaj.
Priporočena:
Foton delcev - TCN75A Temperaturni senzor Vadnica: 4 koraki
Foton delcev-TCN75A Temperaturni senzor Vadnica: TCN75A je dvožični serijski temperaturni senzor, vgrajen s pretvornikom temperature v digitalni. Vgrajen je v registre, ki jih lahko programira uporabnik in ki omogočajo prilagodljivost pri aplikacijah za zaznavanje temperature. Nastavitve registra uporabnikom omogočajo
Foton delcev - Vadnica za temperaturni senzor STS21: 4 koraki
Foton iz delcev - Vadnica za temperaturni senzor STS21: Digitalni temperaturni senzor STS21 ponuja vrhunske zmogljivosti in prihrani prostor. Zagotavlja umerjene, linearizirane signale v digitalnem formatu I2C. Izdelava tega senzorja temelji na CMOSens tehnologiji, ki pripisuje vrhunski
Foton delcev - Vadnica za temperaturni senzor HDC1000: 4 koraki
Foton delcev - Vadnica za temperaturni senzor HDC1000: HDC1000 je digitalni senzor vlažnosti z vgrajenim temperaturnim senzorjem, ki zagotavlja odlično merilno natančnost pri zelo nizki moči. Naprava meri vlažnost na podlagi novega kapacitivnega senzorja. Senzorji vlažnosti in temperature so fakt
Foton delcev - BH1715 Digitalni senzor zunanje svetlobe Vadnica: 4 koraki
Foton delcev - Vadnica za digitalni senzor zunanje svetlobe BH1715: BH1715 je digitalni senzor svetlobe okolice z vmesnikom vodila I²C. BH1715 se običajno uporablja za pridobivanje podatkov o svetlobi v okolici za prilagajanje moči osvetlitve LCD in tipkovnice za mobilne naprave. Ta naprava ponuja 16-bitno ločljivost in prilagaja
Senzor megle - Foton delcev - Shranite podatke na spletu: 5 korakov (s slikami)
Senzor za meglo - Foton delcev - Shranite podatke na spletu: Za merjenje količine megle ali dima v zraku smo izdelali ta senzor za meglo. Meri količino svetlobe, ki jo LDR prejme od laserja, in jo primerja s količino svetlobe v okolici. Podatke objavlja v Googlovem listu v realnem času prek IFTTT