Orodha ya maudhui:

Arduino Nano - MPL3115A2 Mafunzo ya sensa ya usahihi wa urefu wa Altimeter: Hatua 4
Arduino Nano - MPL3115A2 Mafunzo ya sensa ya usahihi wa urefu wa Altimeter: Hatua 4

Video: Arduino Nano - MPL3115A2 Mafunzo ya sensa ya usahihi wa urefu wa Altimeter: Hatua 4

Video: Arduino Nano - MPL3115A2 Mafunzo ya sensa ya usahihi wa urefu wa Altimeter: Hatua 4
Video: Extract GPS location in Arduino with Ublox Neo-6 and Neo 7m GPS modules 2024, Julai
Anonim
Image
Image

MPL3115A2 inaajiri sensa ya shinikizo la MEMS na kiolesura cha I2C ili kutoa data sahihi ya Shinikizo / Urefu na Joto. Matokeo ya sensa ni digitized na azimio kubwa 24-bit ADC. Usindikaji wa ndani huondoa kazi za fidia kutoka kwa mfumo wa mwenyeji wa MCU. Inauwezo wa kugundua mabadiliko katika 0.05 kPa tu ambayo ni sawa na mabadiliko ya 0.3m kwa urefu. Hapa kuna maonyesho yake na Arduino Nano.

Hatua ya 1: Unachohitaji.. !

Unachohitaji..!!
Unachohitaji..!!

1. Arduino Nano

2. MPL3115A2

3. I²C Cable

4. I²C Shield kwa Arduino Nano

Hatua ya 2: Miunganisho:

Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho
Miunganisho

Chukua ngao ya I2C kwa Arduino Nano na usukume kwa upole juu ya pini za Nano.

Kisha unganisha mwisho mmoja wa kebo ya I2C kwa sensorer ya MPL3115A2 na mwisho mwingine kwenye ngao ya I2C.

Uunganisho umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Nambari:

Nambari
Nambari

Nambari ya arduino ya MPL3115A2 inaweza kupakuliwa kutoka kwa duka yetu ya github-Duka la DCUBE.

Hapa kuna kiunga cha hiyo hiyo:

github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino

Tunajumuisha Wire.h kuwezesha mawasiliano ya I2c ya sensa na bodi ya Arduino.

Unaweza pia kunakili nambari kutoka hapa, imepewa kama ifuatavyo:

// Imesambazwa na leseni ya hiari.

// Itumie kwa njia yoyote unayotaka, faida au bure, mradi inafaa katika leseni za kazi zake zinazohusiana.

// MPL3115A2

// Nambari hii imeundwa kufanya kazi na Moduli ya MPL3115A2_I2CS I2C Mini

# pamoja

// Anwani ya MPL3115A2 I2C ni 0x60 (96)

#fafanua Addr 0x60

kuanzisha batili ()

{

// Anzisha mawasiliano ya I2C

Wire.begin ();

// Awali Mawasiliano ya Siri, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kudhibiti

Andika waya (0x26);

// Hali inayotumika, OSR = 128, hali ya altimeter

Andika waya (0xB9);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya usanidi wa data

Andika waya (0x13);

// Tukio tayari la data limewezeshwa kwa urefu, shinikizo, joto

Andika waya (0x07);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyoingia [6];

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kudhibiti

Andika waya (0x26);

// Hali inayotumika, OSR = 128, hali ya altimeter

Andika waya (0xB9);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

kuchelewesha (1000);

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya (0x00);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Omba ka 6 za data

Ombi la Wire. Toka (Addr, 6);

// Soma ka 6 za data kutoka kwa anwani 0x00 (00)

// hadhi, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

ikiwa (Waya haipatikani () == 6)

{

data [0] = Wire.read ();

data [1] = soma kwa waya ();

data [2] = soma kwa waya ();

data [3] = soma kwa waya ();

data [4] = soma kwa waya ();

data [5] = soma kwa waya ();

}

// Badilisha data iwe 20-bits

int tHeight = (((ndefu) (data [1] * (ndefu) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);

int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;

urefu wa kuelea = tUrefu / 16.0;

kuelea cTemp = (temp / 16.0);

kuelea fTemp = cTemp * 1.8 + 32;

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya kudhibiti

Andika waya (0x26);

// Hali inayotumika, OSR = 128, hali ya barometer

Andika waya (0x39);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

kuchelewesha (1000);

// Anzisha usambazaji wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya (0x00);

// Acha usambazaji wa I2C

Uwasilishaji wa waya ();

// Omba ka 4 za data

Ombi la Wire. Toka (Addr, 4);

// Soma ka 4 za data

// hadhi, pres msb1, pres msb, pres lsb

ikiwa (Waya haipatikani () == 4)

{

data [0] = Wire.read ();

data [1] = soma kwa waya ();

data [2] = soma kwa waya ();

data [3] = soma kwa waya ();

}

// Badilisha data iwe 20-bits

muda mrefu pres = ((((muda mrefu) data [1] * (ndefu) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;

shinikizo la kuelea = (pres / 4.0) / 1000.0;

// data ya Pato kwa mfuatiliaji wa serial

Serial.print ("Urefu:");

Serial.print (urefu);

Serial.println ("m");

Serial.print ("Shinikizo:");

Serial.print (shinikizo);

Serial.println ("kPa");

Serial.print ("Joto katika Celsius:");

Serial.print (cTemp);

Serial.println ("C");

Serial.print ("Joto katika Fahrenheit:");

Serial.print (fTemp);

Serial.println ("F");

kuchelewesha (500);

}

Hatua ya 4: Maombi:

Matumizi anuwai ya MPL3115A2 ni pamoja na Altimetry ya Usahihi wa Juu, Simu za Mkononi / Kompyuta Kibao, Upimaji wa Elektroniki za kibinafsi n.k. Inaweza pia kuingizwa katika Uhesabuji wa Wafu wa GPS, Uboreshaji wa GPS kwa Huduma za Dharura, Msaada wa Ramani, Urambazaji pamoja na Vifaa vya Kituo cha Hali ya Hewa.

Ilipendekeza: