2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
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..
1. Vaarika Pi
2. MPL3115A2
3. I²C kaabel
4. I²C kilp Raspberry Pi jaoks
5. Etherneti kaabel
Samm: ü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:
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.