
Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-23 12:52


Der MPL3115A2 verwendet einen MEMS-Drucksensor mit einer I2C-Schnittstelle, um genaue Druck-/Höhen- und Temperaturdaten bereitzustellen. Die Sensorausgänge werden von einem hochauflösenden 24-Bit-ADC digitalisiert. Die interne Verarbeitung entfernt Kompensationsaufgaben vom Host-MCU-System. Es ist in der Lage, eine Änderung in nur 0,05 kPa zu erkennen, was einer Höhenänderung von 0,3 m entspricht. Hier ist seine Demonstration mit Arduino Nano.
Schritt 1: Was Sie brauchen.

1. Arduino Nano
2. MPL3115A2
3. I²C-Kabel
4. I²C-Schild für Arduino Nano
Schritt 2: Anschlüsse:




Nehmen Sie ein I2C-Shield für Arduino Nano und schieben Sie es vorsichtig über die Pins von Nano.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem MPL3115A2-Sensor und das andere Ende mit der I2C-Abschirmung.
Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code:

Der Arduino-Code für MPL3115A2 kann von unserem Github-Repository-DCUBE Store heruntergeladen werden.
Hier der Link dazu:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Wir binden die Bibliothek Wire.h ein, um die I2c-Kommunikation des Sensors mit dem Arduino-Board zu erleichtern.
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
// Wird mit einer frei wählbaren Lizenz vertrieben.
// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
// MPL3115A2
// Dieser Code wurde entwickelt, um mit dem MPL3115A2_I2CS I2C Mini Module zu arbeiten
#enthalten
// MPL3115A2 I2C-Adresse ist 0x60(96)
#define Addr 0x60
Void-Setup ()
{
// I2C-Kommunikation initialisieren
Wire.begin();
// Serielle Kommunikation initialisieren, Baudrate = 9600. einstellen
Serial.begin (9600);
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Steuerregister auswählen
Wire.write (0x26);
// Aktiver Modus, OSR = 128, Höhenmessermodus
Wire.write(0xB9);
// I2C-Übertragung stoppen
Wire.endTransmission();
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Datenkonfigurationsregister auswählen
Wire.write (0x13);
// Datenbereit-Ereignis für Höhe, Druck, Temperatur aktiviert
Wire.write (0x07);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (300);
}
Leere Schleife ()
{
unsignierte int-Daten[6];
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Steuerregister auswählen
Wire.write (0x26);
// Aktiver Modus, OSR = 128, Höhenmessermodus
Wire.write(0xB9);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (1000);
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Datenregister auswählen
Wire.write (0x00);
// I2C-Übertragung stoppen
Wire.endTransmission();
// 6 Byte Daten anfordern
Wire.requestFrom(Addr, 6);
// 6 Byte Daten von Adresse 0x00(00) lesen
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if (Draht.verfügbar() == 6)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
Daten[3] = Wire.read();
data[4] = Wire.read();
data[5] = Wire.read();
}
// Konvertieren Sie die Daten in 20-Bit
int tHeight = (((long)(data[1] * (long)65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16);
int temp = ((Daten[4] * 256) + (Daten[5] & 0xF0)) / 16;
Schwebehöhe = tHeight / 16,0;
Schwimmer cTemp = (Temp / 16,0);
Schwimmer fTemp = cTemp * 1,8 + 32;
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Steuerregister auswählen
Wire.write (0x26);
// Aktiver Modus, OSR = 128, Barometermodus
Wire.write (0x39);
// I2C-Übertragung stoppen
Wire.endTransmission();
Verzögerung (1000);
// I2C-Übertragung starten
Wire.beginTransmission(Addr);
// Datenregister auswählen
Wire.write (0x00);
// I2C-Übertragung stoppen
Wire.endTransmission();
// 4 Byte Daten anfordern
Wire.requestFrom(Addr, 4);
// 4 Byte Daten lesen
// status, pres msb1, pres msb, pres lsb
if (Draht.verfügbar() == 4)
{
data[0] = Wire.read();
data[1] = Wire.read();
data[2] = Wire.read();
Daten[3] = Wire.read();
}
// Konvertieren Sie die Daten in 20-Bit
lange pres = (((long)data[1] * (long)65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16;
Schwimmerdruck = (pres / 4,0) / 1000,0;
// Daten an seriellen Monitor ausgeben
Serial.print ("Höhe: ");
Serial.print (Höhe);
Serial.println("m");
Serial.print ("Druck:");
Serial.print (Druck);
Serial.println("kPa");
Serial.print ("Temperatur in Celsius: ");
Serial.print (cTemp);
Serial.println("C");
Serial.print ("Temperatur in Fahrenheit: ");
Serial.print (fTemp);
Serial.println("F");
Verzögerung (500);
}
Schritt 4: Anwendungen:
Zu den verschiedenen Anwendungen des MPL3115A2 gehören hochgenaue Höhenmessung, Smartphones/Tablets, persönliche elektronische Höhenmessung usw. Es kann auch in GPS-Dead Reckoning, GPS-Erweiterung für Rettungsdienste, Kartenassistent, Navigation sowie Wetterstationsausrüstung integriert werden.
Empfohlen:
Wie man eine Babygewichtsmaschine mit Arduino Nano, HX-711 Wägezelle und OLED 128X64 herstellt -- Kalibrierung des HX-711: 5 Schritte

Wie man eine Babygewichtsmaschine mit Arduino Nano, HX-711-Wägezelle und OLED 128X64 herstellt || Kalibrierung von HX-711: Hallo Instructables, vor wenigen Tagen wurde ich Vater eines süßen Babys?. Als ich im Krankenhaus war, stellte ich fest, dass das Gewicht des Babys so wichtig ist, um das Wachstum des Babys zu überwachen. Also ich habe eine Idee? um eine Babygewichtsmaschine von meinem Selbst zu machen. In diesem Instructable ich
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)

Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E
Auspacken von Jetson Nano & ein Schnellstart für die Two Vision Demo – wikiHow

Auspacken von Jetson Nano & ein Quick Start-Up für Two Vision Demo: ZusammenfassungWie Sie wissen, ist Jetson Nano jetzt ein Starprodukt. Und es kann neuronale Netzwerktechnologie umfassend für eingebettete Systeme bereitstellen. Hier ist ein Unboxing-Artikel mit Details zum Produkt, dem Startvorgang und zwei visuellen Demos … Wortzahl: 800
WIE MAN ARDUINO NANO/MINI HERSTELLT - Bootloader brennen: 5 Schritte

WIE MAN ARDUINO NANO/MINI HERSTELLT | Wie man Bootloader brennt: In diesem Instructables zeige ich Ihnen, wie man ein Arduino MINI von Scratch herstellt. Das in diesem Instructables geschriebene Verfahren kann verwendet werden, um alle Arduino-Boards für Ihre benutzerdefinierten Projektanforderungen zu machen
(Fast) Instant Hard Case für iPod Nano (aus der Apple Box!): 3 Schritte

(Fast) Instant Hard Case für IPod Nano (aus der Apple Box!): Dieses ist so einfach, es braucht wirklich keine Schritt-für-Schritt-Illustrationen, also werde ich es nur beschreiben, was Sie brauchen machen, wie man es zusammenbaut und die fertigen Produktteile zu den passenden Zeiten zeigen. Beginnen Sie mit der Fertigstellung