
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10


MPL3115A2 använder en MEMS -trycksensor med ett I2C -gränssnitt för att ge exakta tryck/höjd- och temperaturdata. Sensorutgångarna digitaliseras med en högupplöst 24-bitars ADC. Intern behandling tar bort kompensationsuppgifter från värd -MCU -systemet. Den kan upptäcka en förändring på endast 0,05 kPa vilket motsvarar en höjdförändring på 0,3 m. Här är demonstrationen med Arduino Nano.
Steg 1: Vad du behöver.. !

1. Arduino Nano
2. MPL3115A2
3. I²C -kabel
4. I²C -skärm för Arduino Nano
Steg 2: Anslutningar:




Ta en I2C -sköld för Arduino Nano och skjut den försiktigt över stiften på Nano.
Anslut sedan den ena änden av I2C -kabeln till MPL3115A2 -sensorn och den andra änden till I2C -skärmen.
Anslutningar visas på bilden ovan.
Steg 3: Kod:

Arduino-koden för MPL3115A2 kan laddas ner från vårt github-arkiv-DCUBE Store.
Här är länken till samma:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Vi inkluderar bibliotek Wire.h för att underlätta I2c -kommunikationen mellan sensorn och Arduino -kortet.
Du kan också kopiera koden härifrån, den ges enligt följande:
// Distribueras med en fri vilja licens.
// Använd den hur du vill, vinst eller gratis, förutsatt att den passar i licensen för dess associerade verk.
// MPL3115A2
// Denna kod är utformad för att fungera med MPL3115A2_I2CS I2C Mini Module
#omfatta
// MPL3115A2 I2C -adressen är 0x60 (96)
#define Addr 0x60
void setup ()
{
// Initiera I2C -kommunikation
Wire.begin ();
// Initiera seriell kommunikation, ange överföringshastighet = 9600
Serial.begin (9600);
// Starta I2C -överföring
Wire.beginTransmission (Addr);
// Välj kontrollregister
Wire.write (0x26);
// Aktivt läge, OSR = 128, höjdmätarläge
Wire.write (0xB9);
// Stoppa I2C -överföring
Wire.endTransmission ();
// Starta I2C -överföring
Wire.beginTransmission (Addr);
// Välj datakonfigurationsregister
Wire.write (0x13);
// Dataklar händelse aktiverad för höjd, tryck, temperatur
Wire.write (0x07);
// Stoppa I2C -överföring
Wire.endTransmission ();
fördröjning (300);
}
void loop ()
{
osignerade int -data [6];
// Starta I2C -överföring
Wire.beginTransmission (Addr);
// Välj kontrollregister
Wire.write (0x26);
// Aktivt läge, OSR = 128, höjdmätarläge
Wire.write (0xB9);
// Stoppa I2C -överföring
Wire.endTransmission ();
fördröjning (1000);
// Starta I2C -överföring
Wire.beginTransmission (Addr);
// Välj dataregister
Wire.write (0x00);
// Stoppa I2C -överföring
Wire.endTransmission ();
// Begär 6 byte med data
Wire.requestFrom (Addr, 6);
// Läs 6 byte med data från adressen 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
om (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
// Konvertera data till 20-bitar
int tHeight = (((long) (data [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16);
int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
flythöjd = tHöjd / 16,0;
float cTemp = (temp / 16,0);
float fTemp = cTemp * 1,8 + 32;
// Starta I2C -överföring
Wire.beginTransmission (Addr);
// Välj kontrollregister
Wire.write (0x26);
// Aktivt läge, OSR = 128, barometerläge
Wire.write (0x39);
// Stoppa I2C -överföring
Wire.endTransmission ();
fördröjning (1000);
// Starta I2C -överföring
Wire.beginTransmission (Addr);
// Välj dataregister
Wire.write (0x00);
// Stoppa I2C -överföring
Wire.endTransmission ();
// Begär 4 byte med data
Wire.requestFrom (Addr, 4);
// Läs 4 byte med data
// status, pres msb1, pres msb, pres lsb
om (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// Konvertera data till 20-bitar
long pres = (((lång) data [1] * (lång) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
flottörtryck = (pres / 4.0) / 1000.0;
// Utdata till seriell bildskärm
Serial.print ("Altitude:");
Serial.print (höjd);
Serial.println ("m");
Serial.print ("Tryck:");
Seriellt tryck (tryck);
Serial.println ("kPa");
Serial.print ("Temperatur i Celsius:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatur i Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
fördröjning (500);
}
Steg 4: Ansökningar:
Olika tillämpningar av MPL3115A2 inkluderar hög noggrannhetsmätning, smartphones/surfplattor, personlig elektronisk höjdmätning etc. Det kan också införlivas med GPS Dead Reckoning, GPS -förbättring för räddningstjänster, kartassistans, navigering samt väderstationsutrustning.
Rekommenderad:
RC Plane Altimeter (kompatibel med Spektrum Telemetry): 7 steg

RC Plane Altimeter (kompatibel med Spektrum Telemetry): Jag gjorde denna höjdmätare så att piloten kunde veta att de är under 400 fotgränsen på RC -flygplan i USA. Min vän var orolig eftersom han inte kunde säga säkert att han alltid var under 400 fot och ville ha en extra försäkran om att en sensor
DropArt - Precision Two Drop Photographic Collider: 11 steg (med bilder)

DropArt - Precision Two Drop Photographic Collider: Hej alla och alla, I denna instruerbara presenterar jag min design för en datorstyrd två vätskedroppar. Innan vi börjar med designdetaljerna tycker jag att det är vettigt att förklara exakt vad som är syftet med designen. Ett roligt, intressant
Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Handledning: 4 steg

Raspberry Pi A1332 Precision Hall - Effect Angle Sensor Java Handledning: A1332 är en 360 ° kontaktlös högupplöst programmerbar magnetisk vinkelsensor. Den är designad för digitala system med ett I2C -gränssnitt. Den är byggd på Circular Vertical Hall (CVH) -teknologi och en programmerbar mikroprocessorbaserad signal
Ett experiment för rättelse av precision: 11 steg

Ett experiment för rättelse av precision: Jag har nyligen gjort ett experiment på en precisionsriktningskrets och fått några grova slutsatser. Med tanke på att precisionslikriktarkretsen är en vanlig krets kan resultaten från detta experiment ge lite referensinformation. E
Arduino: Precision Lib för stegmotor: 19 steg

Arduino: Precision Lib för stegmotor: Idag kommer jag att visa dig ett bibliotek för en helstegsmotorförare med gränslägesbrytare och motorrörelse med acceleration och mikrosteg. Denna Lib, som fungerar på både Arduino Uno och Arduino Mega, låter dig flytta motorerna baserat på onl