Satura rādītājs:
- 1. solis: kas jums nepieciešams..
- 2. darbība. Savienojumi:
- 3. darbība: kods:
- 4. darbība. Lietojumprogrammas:
Video: Arduino Nano - MPL3115A2 Precīzijas altimetra sensora apmācība: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
MPL3115A2 izmanto MEMS spiediena sensoru ar I2C saskarni, lai nodrošinātu precīzus spiediena/augstuma un temperatūras datus. Sensora izejas tiek digitalizētas ar augstas izšķirtspējas 24 bitu ADC. Iekšējā apstrāde noņem kompensācijas uzdevumus no resursdatora MCU sistēmas. Tas spēj noteikt izmaiņas tikai 0,05 kPa, kas atbilst 0,3 m augstuma izmaiņām. Šeit ir tā demonstrācija ar Arduino Nano.
1. solis: kas jums nepieciešams..
1. Arduino Nano
2. MPL3115A2
3. I²C kabelis
4. I²C vairogs Arduino Nano
2. darbība. Savienojumi:
Paņemiet I2C vairogu Arduino Nano un viegli piespiediet to pār Nano tapām.
Pēc tam pievienojiet I2C kabeļa vienu galu MPL3115A2 sensoram un otru galu pie I2C vairoga.
Savienojumi ir parādīti attēlā iepriekš.
3. darbība: kods:
MPL3115A2 arduino kodu var lejupielādēt no mūsu github repozitorija-DCUBE Store.
Šeit ir saite uz to pašu:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Mēs iekļaujam bibliotēku Wire.h, lai atvieglotu sensora I2c komunikāciju ar Arduino plati.
Varat arī nokopēt kodu no šejienes, tas ir norādīts šādi:
// Izplatīts ar brīvās gribas licenci.
// Izmantojiet to jebkurā veidā, bez peļņas vai bez maksas, ja tas iekļaujas saistīto darbu licencēs.
// MPL3115A2
// Šis kods ir paredzēts darbam ar MPL3115A2_I2CS I2C mini moduli
#iekļaut
// MPL3115A2 I2C adrese ir 0x60 (96)
#define Addr 0x60
anulēts iestatījums ()
{
// Inicializēt I2C komunikāciju
Wire.begin ();
// Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600
Sērijas sākums (9600);
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet vadības reģistru
Wire.write (0x26);
// Aktīvais režīms, OSR = 128, altimetra režīms
Wire.write (0xB9);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet datu konfigurācijas reģistru
Wire.write (0x13);
// Datu gatavs notikums ir iespējots augstumam, spiedienam, temperatūrai
Wire.write (0x07);
// Apturēt I2C pārraidi
Wire.endTransmission ();
kavēšanās (300);
}
tukša cilpa ()
{
neparakstīti int dati [6];
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet vadības reģistru
Wire.write (0x26);
// Aktīvais režīms, OSR = 128, altimetra režīms
Wire.write (0xB9);
// Apturēt I2C pārraidi
Wire.endTransmission ();
kavēšanās (1000);
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet datu reģistru
Wire.write (0x00);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 6 baitus datu
Wire.requestFrom (Addr, 6);
// Nolasīt 6 baitus datu no adreses 0x00 (00)
// statuss, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
ja (Wire.available () == 6)
{
dati [0] = Wire.read ();
dati [1] = Wire.read ();
dati [2] = Wire.read ();
dati [3] = Wire.read ();
dati [4] = Wire.read ();
dati [5] = Wire.read ();
}
// Pārvērst datus par 20 bitiem
int tAugstums = (((garš) (dati [1] * (garš) 65536) + (dati [2] * 256) + (dati [3] un 0xF0)) / 16);
int temp = ((dati [4] * 256) + (dati [5] & 0xF0)) / 16;
pludiņa augstums = tAugstums / 16,0;
pludiņš cTemp = (temp / 16,0);
pludiņš fTemp = cTemp * 1,8 + 32;
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet vadības reģistru
Wire.write (0x26);
// Aktīvais režīms, OSR = 128, barometra režīms
Wire.write (0x39);
// Apturēt I2C pārraidi
Wire.endTransmission ();
kavēšanās (1000);
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet datu reģistru
Wire.write (0x00);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 4 baitus datu
Wire.requestFrom (Addr, 4);
// Lasīt 4 baitus datu
// statuss, pres msb1, pres msb, pres lsb
ja (Wire.available () == 4)
{
dati [0] = Wire.read ();
dati [1] = Wire.read ();
dati [2] = Wire.read ();
dati [3] = Wire.read ();
}
// Pārvērst datus par 20 bitiem
garš pres = (((gari) dati [1] * (garš) 65536) + (dati [2] * 256) + (dati [3] un 0xF0)) / 16;
pludiņa spiediens = (pres / 4,0) / 1000,0;
// Izvadiet datus uz seriālo monitoru
Serial.print ("Augstums:");
Sērijas nospiedums (augstums);
Serial.println ("m");
Serial.print ("Spiediens:");
Sērijas nospiedums (spiediens);
Serial.println ("kPa");
Serial.print ("Temperatūra pēc Celsija:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatūra pēc Fārenheita:");
Sērijas nospiedums (fTemp);
Serial.println ("F");
kavēšanās (500);
}
4. darbība. Lietojumprogrammas:
Dažādi MPL3115A2 pielietojumi ietver augstas precizitātes altimetriju, viedtālruņus/planšetdatorus, personīgās elektronikas altimetriju utt. To var iekļaut arī GPS mirušo aprēķinā, GPS uzlabojumos ārkārtas dienestiem, karšu palīglīdzekļos, navigācijā, kā arī meteoroloģisko staciju aprīkojumā.
Ieteicams:
Arduino Nano - TSL45315 Apkārtējās gaismas sensora apmācība: 4 soļi
Arduino Nano - TSL45315 Apkārtējās gaismas sensora apmācība: TSL45315 ir digitāls apkārtējās gaismas sensors. Tas tuvina cilvēka acu reakciju dažādos apgaismojuma apstākļos. Ierīcēm ir trīs atlasāmi integrācijas laiki, un tās nodrošina tiešu 16 bitu luksu izeju, izmantojot I2C kopnes saskarni. Ierīce sadarbojas
Arduino Nano - HTS221 relatīvā mitruma un temperatūras sensora apmācība: 4 soļi
Arduino Nano - HTS221 relatīvā mitruma un temperatūras sensora apmācība: HTS221 ir īpaši kompakts kapacitatīvs digitālais sensors relatīvajam mitrumam un temperatūrai. Tas ietver sensora elementu un jauktu signālu lietojumprogrammu integrētu shēmu (ASIC), lai sniegtu mērījumu informāciju, izmantojot ciparu sērijas
Arduino Nano - SI7050 temperatūras sensora apmācība: 4 soļi
Arduino Nano - SI7050 temperatūras sensora apmācība: SI7050 ir digitāls temperatūras sensors, kas darbojas saskaņā ar I2C sakaru protokolu un piedāvā augstu precizitāti visā darba sprieguma un temperatūras diapazonā. Šī sensora augstā precizitāte ir saistīta ar jauno signālu apstrādi un anālo
Arduino Nano - TCN75A temperatūras sensora apmācība: 4 soļi
Arduino Nano-TCN75A temperatūras sensora apmācība: TCN75A ir divu vadu sērijas temperatūras sensors, kas apvienots ar temperatūras pārveidotāju cipariem. Tas ir iekļauts lietotāja programmējamos reģistros, kas nodrošina elastību lietojumprogrammām temperatūras noteikšanai. Reģistra iestatījumi ļauj lietotājiem
Arduino Nano - STS21 temperatūras sensora apmācība: 4 soļi
Arduino Nano - STS21 temperatūras sensora apmācība: STS21 digitālais temperatūras sensors piedāvā izcilu veiktspēju un vietu taupošu nospiedumu. Tas nodrošina kalibrētus, linearizētus signālus digitālā, I2C formātā. Šī sensora izgatavošana ir balstīta uz CMOSens tehnoloģiju, kas izcilākajam piešķir