Sadržaj:
Video: Foton čestica - Vodič za senzor preciznog visinomjera MPL3115A2: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
MPL3115A2 koristi MEMS senzor pritiska sa I2C interfejsom za pružanje tačnih podataka o pritisku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz host MCU sistema. Sposoban je otkriti promjenu od samo 0,05 kPa, što je jednako promjeni visine 0,3 m. Evo njegove demonstracije sa česticama fotona.
Korak 1: Šta vam treba..
1. Foton čestica
2. MPL3115A2
3. I²C kabel
4. I²C štit za čestice fotona
Korak 2: Veze:
Uzmite I2C štit za foton čestice i nježno ga gurnite preko igle fotona čestica.
Zatim spojite jedan kraj I2C kabela na senzor MPL3115A2, a drugi kraj na I2C štit.
Veze su prikazane na gornjoj slici.
Korak 3: Kod:
Kod čestica za MPL3115A2 može se preuzeti sa našeg Github spremišta-DCUBE Store.
Evo linka.
Za kod čestica koristili smo dvije biblioteke, a to su application.h i spark_wiring_i2c.h. Za olakšavanje I2C komunikacije sa senzorom potrebna je biblioteka Spark_wiring_i2c.
Kôd možete i kopirati odavde, dat je na sljedeći način:
// Distribuirano s licencom za slobodnu volju.
// Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.
// MPL3115A2
// Ovaj kod je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom
#include
#include
// MPL3115A2 I2C adresa je 0x60 (96)
#define Addr 0x60
plovak cTemp = 0,0, fTemp = 0,0, pritisak = 0,0, nadmorska visina = 0,0;
int temp = 0, tHeight = 0; long pres = 0;
void setup ()
{
// Postavi varijablu
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Čestica.varijabilna ("pritisak", pritisak);
Particle.variable ("visina", nadmorska visina);
// Inicijalizacija I2C komunikacije
Wire.begin ();
// Pokrećemo serijsku komunikaciju, postavljena brzina prijenosa = 9600
Serial.begin (9600);
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir kontrolnog registra
Wire.write (0x26);
// Aktivni način rada, OSR = 128, način rada visinomera
Wire.write (0xB9);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra konfiguracije podataka
Wire.write (0x13);
// Omogućen događaj spremnosti podataka za nadmorsku visinu, pritisak, temperaturu
Wire.write (0x07);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (300);
}
void loop ()
{
nepotpisani int podaci [6];
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir kontrolnog registra
Wire.write (0x26);
// Aktivni način rada, OSR = 128, način rada visinomera
Wire.write (0xB9);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (1000);
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra podataka
Wire.write (0x00);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Zatražite 6 bajta podataka
Wire.requestFrom (Addr, 6);
// Očitavanje 6 bajtova podataka s adrese 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if (Wire.available () == 6)
{
podaci [0] = Wire.read ();
podaci [1] = Wire.read ();
podaci [2] = Wire.read ();
podaci [3] = Wire.read ();
podaci [4] = Wire.read ();
podaci [5] = Wire.read ();
}
// Pretvorimo podatke u 20-bitne
tHeight = ((((dugački) podaci [1] * (dugi) 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16);
temp = ((podaci [4] * 256) + (podaci [5] & 0xF0)) / 16;
nadmorska visina = tHeight / 16,0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1,8 + 32;
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir kontrolnog registra
Wire.write (0x26);
// Aktivni način rada, OSR = 128, način rada barometra
Wire.write (0x39);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
// Pokretanje I2C prijenosa
Wire.beginTransmission (Addr);
// Odabir registra podataka
Wire.write (0x00);
// Zaustavljanje I2C prijenosa
Wire.endTransmission ();
kašnjenje (1000);
// Zatražite 4 bajta podataka
Wire.requestFrom (Addr, 4);
// Očitavanje 4 bajta podataka
// status, pres msb1, pres msb, pres lsb
if (Wire.available () == 4)
{
podaci [0] = Wire.read ();
podaci [1] = Wire.read ();
podaci [2] = Wire.read ();
podaci [3] = Wire.read ();
}
// Pretvorimo podatke u 20-bitne
pres = (((dugi) podaci [1] * (dugi) 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16;
pritisak = (pres / 4,0) / 1000,0;
// Izlaženje podataka na nadzornu ploču
Particle.publish ("Visina:", String (nadmorska visina));
Particle.publish ("Pritisak:", niz (pritisak));
Particle.publish ("Temperatura u Celzijusima:", String (cTemp));
Particle.publish ("Temperatura u Fahrenheitu:", String (fTemp));
kašnjenje (1000);
}
Korak 4: Aplikacije:
Različite primjene MPL3115A2 uključuju altimetriju visoke preciznosti, pametne telefone/tablete, altimetriju lične elektronike itd. Također se može uključiti u GPS mrtvo računanje, GPS poboljšanje za hitne službe, pomoć pri mapiranju, navigaciju kao i opremu meteorološke stanice.
Preporučuje se:
Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
Raspberry Pi - MPL3115A2 Precizni senzor visinomera sa Python vodičem: MPL3115A2 koristi MEMS senzor pritiska sa I2C interfejsom za pružanje tačnih podataka o pritisku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz
Foton čestica - TCN75A Senzor temperature Tutorial: 4 koraka
Foton čestica-TCN75A Tonzor senzora temperature Tutorion: TCN75A je dvožilni serijski senzor temperature ugrađen u pretvarač temperature u digitalni. Uključen je u registrovane programe koje korisnik može programirati i koji pružaju fleksibilnost za aplikacije senzora temperature. Postavke registra omogućuju korisnicima
Senzor vlage koji koristi foton čestica: 6 koraka
Senzor vlage pomoću čestica fotona: Uvod U ovom tutorijalu ćemo izgraditi senzor vlage pomoću fotona čestica i njegove ugrađene ili/i vanjske WiFi antene. Jačina WiFi mreže ovisi o količini vlage u zraku, ali i u tlu. Koristimo ovaj princip
Foton čestica - ADT75 Temperaturni senzor Tutorial: 4 koraka
Foton čestica - vodič za temperaturni senzor ADT75: ADT75 je visoko precizan, digitalni senzor temperature. Sastoji se od osjetnika temperature u pojasu i 12-bitnog analogno-digitalnog pretvarača za praćenje i digitalizaciju temperature. Njegov izuzetno osjetljiv senzor čini me dovoljno kompetentnim
Foton čestica - TMP100 Senzor temperature Tutorial: 4 koraka
Foton čestica-TMP100 Senzor temperature Tutorial: TMP100 I2C MINI modul digitalne osjetljivosti temperature visoke preciznosti, male snage, digitalni senzor temperature. TMP100 je idealan za produženo mjerenje temperature. Ovaj uređaj nudi preciznost od ± 1 ° C bez potrebe za kalibracijom ili prilagođavanjem signala vanjske komponente. On