
Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:55


MPL3115A2 naudojamas MEMS slėgio jutiklis su I2C sąsaja, kad būtų gauti tikslūs slėgio/aukščio ir temperatūros duomenys. Jutiklių išėjimai yra skaitmeninami didelės skiriamosios gebos 24 bitų ADC. Vidinis apdorojimas pašalina kompensavimo užduotis iš pagrindinės MCU sistemos. Jis gali aptikti tik 0,05 kPa pokytį, o tai prilygsta 0,3 m aukščio pokyčiui. Štai jo demonstracija su „Arduino Nano“.
1 žingsnis: ko jums reikia..

1. „Arduino Nano“
2. MPL3115A2
3. I²C kabelis
4. „I²C Shield“, skirtas „Arduino Nano“
2 žingsnis: jungtys:




Paimkite „Arduino Nano“I2C skydą ir švelniai stumkite jį per „Nano“kaiščius.
Tada vieną I2C kabelio galą prijunkite prie MPL3115A2 jutiklio, o kitą - prie I2C skydo.
Sujungimai parodyti aukščiau esančiame paveikslėlyje.
3 žingsnis: kodas:

MPL3115A2 arduino kodą galite atsisiųsti iš mūsų „github“saugyklos-DCUBE parduotuvės.
Čia yra nuoroda į tą patį:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Įtraukiame „Wire.h“biblioteką, kad palengvintume jutiklio I2c ryšį su „Arduino“plokšte.
Taip pat galite nukopijuoti kodą iš čia, jis pateikiamas taip:
// Platinama su laisvos valios licencija.
// Naudokite bet kokiu būdu, pelningai ar nemokamai, jei jis atitinka susijusių darbų licencijas.
// MPL3115A2
// Šis kodas skirtas dirbti su MPL3115A2_I2CS I2C mini moduliu
#įtraukti
// MPL3115A2 I2C adresas yra 0x60 (96)
#define Addr 0x60
negaliojanti sąranka ()
{
// Inicijuoti I2C komunikaciją
Wire.begin ();
// Inicijuoti serijinį ryšį, nustatyti duomenų perdavimo spartą = 9600
Serial.begin (9600);
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite valdymo registrą
Wire.write (0x26);
// Aktyvusis režimas, OSR = 128, altimetro režimas
Wire.write (0xB9);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite duomenų konfigūracijos registrą
Wire.write (0x13);
// Įgalintas duomenų paruošimo įvykis aukščiui, slėgiui, temperatūrai
Wire.write (0x07);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
vėlavimas (300);
}
tuštumos kilpa ()
{
nepasirašyti int duomenys [6];
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite valdymo registrą
Wire.write (0x26);
// Aktyvusis režimas, OSR = 128, altimetro režimas
Wire.write (0xB9);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
vėlavimas (1000);
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite duomenų registrą
Wire.write (0x00);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 6 baitų duomenų
Wire.requestFrom (Addr, 6);
// Perskaitykite 6 baitus duomenų iš adreso 0x00 (00)
// būsena, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
jei (Wire.available () == 6)
{
duomenys [0] = Wire.read ();
duomenys [1] = Wire.read ();
duomenys [2] = Wire.read ();
duomenys [3] = Wire.read ();
duomenys [4] = Wire.read ();
duomenys [5] = Wire.read ();
}
// Konvertuokite duomenis į 20 bitų
int tHeight = (((ilgas) (duomenys [1] * (ilgas) 65536) + (duomenys [2] * 256) + (duomenys [3] ir 0xF0)) / 16);
int temp = ((duomenys [4] * 256) + (duomenys [5] ir 0xF0)) / 16;
plūdės aukštis = tAukštis / 16,0;
plūdė cTemp = (temp / 16,0);
plūdė fTemp = cTemp * 1,8 + 32;
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite valdymo registrą
Wire.write (0x26);
// Aktyvusis režimas, OSR = 128, barometro režimas
Wire.write (0x39);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
vėlavimas (1000);
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite duomenų registrą
Wire.write (0x00);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 4 baitų duomenų
Wire.requestFrom (Addr, 4);
// Perskaitykite 4 baitus duomenų
// status, pres msb1, pres msb, pres lsb
jei (Wire.available () == 4)
{
duomenys [0] = Wire.read ();
duomenys [1] = Wire.read ();
duomenys [2] = Wire.read ();
duomenys [3] = Wire.read ();
}
// Konvertuokite duomenis į 20 bitų
ilgas presas = (((ilgi) duomenys [1] * (ilgas) 65536) + (duomenys [2] * 256) + (duomenys [3] ir 0xF0)) / 16;
plūdės slėgis = (pres / 4,0) / 1000,0;
// Duomenų išvedimas į serijinį monitorių
Serial.print ("Aukščio aukštis:");
Serijinis atspaudas (aukštis);
Serial.println ("m");
Serial.print ("Slėgis:");
Serijinis atspaudas (slėgis);
Serial.println ("kPa");
Serial.print ("Temperatūra Celsijaus laipsniais:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatūra Farenheitu:");
Serial.print (fTemp);
Serial.println ("F");
vėlavimas (500);
}
4 žingsnis: programos:
Įvairios MPL3115A2 programos apima didelio tikslumo altimetriją, išmaniuosius telefonus/planšetinius kompiuterius, asmeninės elektronikos aukščio matavimus ir tt. Jis taip pat gali būti įtrauktas į GPS mirusiųjų skaičiavimą, GPS gerinimą skubios pagalbos tarnyboms, žemėlapio pagalbinę įrangą, navigaciją ir orų stoties įrangą.
Rekomenduojamas:
„Arduino Nano“- TSL45315 aplinkos šviesos jutiklio pamoka: 4 žingsniai

„Arduino Nano“- TSL45315 aplinkos šviesos jutiklio pamoka: TSL45315 yra skaitmeninis aplinkos šviesos jutiklis. Tai apytikslis žmogaus akių atsakas esant įvairioms apšvietimo sąlygoms. Įrenginiai turi tris pasirenkamus integracijos laikus ir suteikia tiesioginę 16 bitų liukso išvestį per I2C magistralės sąsają. Prietaisas kartu
Aukščio matuoklis (aukščio matuoklis) pagal atmosferos slėgį: 7 žingsniai (su nuotraukomis)

Aukščio matuoklis (aukščio matuoklis) Remiantis atmosferos slėgiu: [Redaguoti]; Žr. 2 versiją 6 veiksme su rankiniu įvesties aukščio įvedimu. Tai yra aukščio matuoklio (aukščio matuoklio), pagrįsto „Arduino Nano“ir „Bosch BMP180“atmosferos slėgio jutikliu, pastato aprašymas. Dizainas paprastas, bet matavimai
„Arduino Nano“- HTS221 santykinio drėgmės ir temperatūros jutiklio pamoka: 4 žingsniai

„Arduino Nano“- HTS221 santykinio drėgmės ir temperatūros jutiklio pamoka: HTS221 yra ypač kompaktiškas talpinis skaitmeninis jutiklis, skirtas santykiniam drėgnumui ir temperatūrai. Jame yra jutimo elementas ir mišraus signalo taikymo integruotas grandynas (ASIC), kuris pateikia matavimo informaciją skaitmeniniu nuosekliu
„Arduino Nano“- SI7050 temperatūros jutiklio pamoka: 4 žingsniai

„Arduino Nano“- SI7050 temperatūros jutiklio pamoka: SI7050 yra skaitmeninis temperatūros jutiklis, veikiantis pagal I2C ryšio protokolą ir užtikrinantis didelį tikslumą per visą darbinę įtampą ir temperatūros diapazoną. Šis didelis jutiklio tikslumas priskiriamas naujam signalų apdorojimui ir analiniam
„CubeSat“pagreičio matuoklio pamoka: 6 žingsniai

„CubeSat“pagreičio matuoklio pamoka: „cubesat“yra miniatiūrinio palydovo, skirto kosmoso tyrimams, tipas, kurį sudaro 10x10x10 cm kubinių vienetų kartotiniai ir kurio masė ne didesnė kaip 1,33 kilogramo. Kubeliai leidžia į kosmosą nusiųsti daug palydovų