Sisukord:

Raspberry Pi - MPL3115A2 Java täpsuskõrgusmõõturi andur: 4 sammu
Raspberry Pi - MPL3115A2 Java täpsuskõrgusmõõturi andur: 4 sammu
Anonim
Image
Image

MPL3115A2 kasutab rõhu/kõrguse ja temperatuuri täpsete andmete saamiseks IEM -liidesega MEMS -rõhuandurit. Anduri väljundid digiteeritakse kõrge eraldusvõimega 24-bitise ADC abil. Sisemine töötlemine eemaldab kompenseerimisülesanded host -MCU süsteemist. See on võimeline tuvastama muutusi vaid 0,05 kPa, mis võrdub 0,3 m kõrguse muutusega. Siin on selle demonstratsioon vaarika pi abil, kasutades java koodi.

Samm: mida vajate..

Mida sa vajad..!!
Mida sa vajad..!!

1. Vaarika Pi

2. MPL3115A2

3. I²C kaabel

4. I²C kilp Raspberry Pi jaoks

5. Etherneti kaabel

Samm: ühendused:

Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused

Võtke vaarika pi jaoks I2C -kilp ja lükake see õrnalt üle vaarika pi gpio -tihvtide.

Seejärel ühendage I2C kaabli üks ots MPL3115A2 anduriga ja teine ots I2C varjestusega.

Ühendage ka Etherneti kaabel pi -ga või võite kasutada WiFi -moodulit.

Ühendused on näidatud ülaltoodud pildil.

3. samm: kood:

Kood
Kood

MPL3115A2 java koodi saate alla laadida meie githubi hoidlast- DCUBE poest.

Siin on link samale:

github.com/DcubeTechVentures/MPL3115A2/tree/master/Java

Oleme Java -koodi jaoks kasutanud pi4j -raamatukogu, pi4j -i vaarika pi -le installimise samme kirjeldatakse siin:

pi4j.com/install.html

Siit saate koodi ka kopeerida, see on järgmine:

// Levitatakse vaba tahte litsentsiga.

// Kasutage seda soovitud viisil, kasumit teenides või tasuta, tingimusel et see sobib sellega seotud teoste litsentsidega.

// MPL3115A2

// See kood on loodud töötama koos MPL3115A2_I2CS I2C minimooduliga, mis on saadaval aadressil

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

importige java.io. IOException;

avalik klass MPL3115A2

{

public static void main (String args ) viskab Erand

{

// Loo I2C siin

I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);

// Hankige I2C seade, MPL3115A2 I2C aadress on 0x60 (96)

I2CDevice seade = Bus.getDevice (0x60);

// Valige juhtregister

// Aktiivne režiim, OSR = 128, altimeetri režiim

device.write (0x26, (bait) 0xB9);

// Valige andmete konfiguratsiooniregister

// Andmete valmis sündmus on lubatud kõrguse, rõhu, temperatuuri jaoks

device.write (0x13, (bait) 0x07);

// Valige juhtregister

// Aktiivne režiim, OSR = 128, altimeetri režiim

device.write (0x26, (bait) 0xB9);

Niit.unenägu (1000);

// Lugege 6 baiti andmeid aadressilt 0x00 (00)

// olek, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb

bait andmed = uus bait [6];

device.read (0x00, andmed, 0, 6);

// Teisendage andmed 20-bitisteks

int tKõrgus = ((((andmed [1] & 0xFF) * 65536) + ((andmed [2] ja 0xFF) * 256) + (andmed [3] ja 0xF0)) / 16);

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

topeltkõrgus = tKõrgus / 16,0;

kahekordne cTemp = (temp / 16,0);

kahekordne fTemp = cTemp * 1,8 + 32;

// Valige juhtregister

// Aktiivne režiim, OSR = 128, baromeetri režiim

device.write (0x26, (bait) 0x39);

Niit.unenägu (1000);

// Loe 4 baiti andmeid aadressilt 0x00 (00)

// olek, pres msb1, pres msb, pres lsb

device.read (0x00, andmed, 0, 4);

// Teisendage andmed 20-bitisteks

int pres = ((((andmed [1] & 0xFF) * 65536) + ((andmed [2] ja 0xFF) * 256) + (andmed [3] ja 0xF0)) / 16;

kahekordne rõhk = (pres / 4,0) / 1000,0;

// Andmete väljastamine ekraanile

System.out.printf ("Rõhk: %.2f kPa %n", rõhk);

System.out.printf ("Kõrgus: %.2f m %n", kõrgus);

System.out.printf ("Temperatuur Celsiuse järgi: %.2f C %n", cTemp);

System.out.printf ("Temperatuur Fahrenheiti järgi: %.2f F %n", fTemp);

}

}

4. samm: rakendused:

MPL3115A2 mitmesugused rakendused hõlmavad suure täpsusega kõrguse mõõtmist, nutitelefoni/tahvelarvutit, isikliku elektroonika kõrguse mõõtmist jne. Seda saab lisada ka GPS -i surnud arvestusse, hädaabiteenuste GPS -i täiustamisse, kaardiabi, navigeerimisseadmesse ja ilmajaama seadmetesse.

Soovitan: