
Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45


Le MPL3115A2 utilise un capteur de pression MEMS avec une interface I2C pour fournir des données précises de pression/altitude et température. Les sorties des capteurs sont numérisées par un CAN 24 bits haute résolution. Le traitement interne supprime les tâches de compensation du système MCU hôte. Il est capable de détecter un changement de seulement 0,05 kPa, ce qui équivaut à un changement d'altitude de 0,3 m. Voici sa démonstration avec Arduino Nano.
Étape 1: Ce dont vous avez besoin.

1. Arduino Nano
2. MPL3115A2
3. Câble I²C
4. Bouclier I²C pour Arduino Nano
Étape 2: Connexions:




Prenez un shield I2C pour Arduino Nano et poussez-le doucement sur les broches de Nano.
Connectez ensuite l'une des extrémités du câble I2C au capteur MPL3115A2 et l'autre extrémité au blindage I2C.
Les connexions sont montrées dans l'image ci-dessus.
Étape 3: Coder:

Le code arduino pour MPL3115A2 peut être téléchargé à partir de notre référentiel github-DCUBE Store.
Voici le lien pour le même:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Nous incluons la bibliothèque Wire.h pour faciliter la communication I2c du capteur avec la carte Arduino.
Vous pouvez également copier le code d'ici, il est donné comme suit:
// Distribué avec une licence libre-arbitre.
// Utilisez-le comme vous le souhaitez, à profit ou gratuitement, à condition qu'il rentre dans les licences de ses œuvres associées.
// MPL3115A2
// Ce code est conçu pour fonctionner avec le mini module MPL3115A2_I2CS I2C
#comprendre
// L'adresse I2C MPL3115A2 est 0x60(96)
#define Adr 0x60
void setup()
{
// Initialisation de la communication I2C
Fil.begin();
// Initialiser la communication série, définir le débit en bauds = 9600
Serial.begin(9600);
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle
Wire.write(0x26);
// Mode actif, OSR = 128, mode altimètre
Wire.write(0xB9);
// Arrêter la transmission I2C
Wire.endTransmission();
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de configuration des données
Wire.write(0x13);
// Evénement prêt pour les données activé pour l'altitude, la pression, la température
Wire.write(0x07);
// Arrêter la transmission I2C
Wire.endTransmission();
retard (300);
}
boucle vide()
{
données int non signées[6];
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle
Wire.write(0x26);
// Mode actif, OSR = 128, mode altimètre
Wire.write(0xB9);
// Arrêter la transmission I2C
Wire.endTransmission();
retard(1000);
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de données
Wire.write(0x00);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 6 octets de données
Wire.requestFrom(Adr, 6);
// Lecture de 6 octets de données à partir de l'adresse 0x00(00)
// état, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
si (Fil.disponible() == 6)
{
data[0] = Wire.read();
données[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
données[4] = Wire.read();
données[5] = Wire.read();
}
// Convertir les données en 20 bits
int tHeight = (((long)(data[1] * (long)65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16);
int temp = ((données[4] * 256) + (données[5] & 0xF0)) / 16;
altitude du flotteur = tHauteur / 16,0;
float cTemp = (temp / 16,0);
float fTemp = cTemp * 1,8 + 32;
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de contrôle
Wire.write(0x26);
// Mode actif, OSR = 128, mode baromètre
Wire.write(0x39);
// Arrêter la transmission I2C
Wire.endTransmission();
retard(1000);
// Lancer la transmission I2C
Wire.beginTransmission(Adr);
// Sélection du registre de données
Wire.write(0x00);
// Arrêter la transmission I2C
Wire.endTransmission();
// Demande 4 octets de données
Wire.requestFrom(Adr, 4);
// Lecture de 4 octets de données
// état, appuyez sur msb1, appuyez sur msb, appuyez sur lsb
si (Fil.disponible() == 4)
{
data[0] = Wire.read();
données[1] = Wire.read();
data[2] = Wire.read();
data[3] = Wire.read();
}
// Convertir les données en 20 bits
longue pression = (((long)données[1] * (long)65536) + (données[2] * 256) + (données[3] & 0xF0)) / 16;
pression du flotteur = (pres / 4,0) / 1000,0;
// Sortie des données vers le moniteur série
Serial.print("Altitude: ");
Serial.print(altitude);
Serial.println(" m");
Serial.print("Pression: ");
Serial.print(pression);
Serial.println(" kPa");
Serial.print("Température en Celsius: ");
Serial.print(cTemp);
Serial.println("C");
Serial.print("Température en Fahrenheit: ");
Serial.print(fTemp);
Serial.println(" F");
retard (500);
}
Étape 4: Candidatures:
Diverses applications du MPL3115A2 incluent l'altimétrie de haute précision, les smartphones/tablettes, l'altimétrie électronique personnelle, etc.
Conseillé:
Altimètre (mètre d'altitude) basé sur la pression atmosphérique : 7 étapes (avec photos)

Altimètre (mètre d'altitude) basé sur la pression atmosphérique : [Modifier]; Voir la version 2 à l'étape 6 avec entrée manuelle de l'altitude de base. Il s'agit de la description du bâtiment d'un altimètre (mètre d'altitude) basé sur un capteur de pression atmosphérique Arduino Nano et Bosch BMP180. La conception est simple mais les mesures
Capteur de respiration bricolage avec Arduino (capteur d'étirement tricoté conducteur): 7 étapes (avec photos)

Capteur de respiration bricolage avec Arduino (capteur d'étirement tricoté conducteur): Ce capteur de bricolage prendra la forme d'un capteur d'étirement tricoté conducteur. Il s'enroulera autour de votre poitrine/estomac, et lorsque votre poitrine/estomac se dilate et se contracte, le capteur et par conséquent les données d'entrée qui sont transmises à l'Arduino. Donc
Dirt Cheap Dirt-O-Meter - Altimètre sonore basé sur Arduino à 9 $ : 4 étapes (avec photos)

Dirt Cheap Dirt-O-Meter - Altimètre sonore basé sur Arduino à 9 $: Dytters (A.K.A Audible Altimètres) a sauvé la vie des parachutistes pendant tant d'années. Désormais, Audible Abby leur fera également économiser de l'argent. Les Dytters de base ont quatre alarmes, une en montant et trois en descendant. Dans le vol en avion, les parachutistes ont besoin de savoir quand
Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon 433 mhz : 6 étapes

Capteur de température et d'humidité à énergie solaire Arduino en tant que capteur Oregon à 433 mhz : il s'agit de la construction d'un capteur de température et d'humidité à énergie solaire. Le capteur émule un capteur Oregon de 433 mhz et est visible dans la passerelle Telldus Net. Capteur de mouvement à énergie solaire" d'Ebay. Assurez-vous qu'il est écrit 3.7v pâte
Interfaçage Arduino avec capteur à ultrasons et capteur de température sans contact : 8 étapes

Interfaçage Arduino avec capteur à ultrasons et capteur de température sans contact : De nos jours, les fabricants et les développeurs préfèrent Arduino pour le développement rapide du prototypage de projets. Arduino est une plate-forme électronique open source basée sur du matériel et des logiciels faciles à utiliser. Arduino a une très bonne communauté d'utilisateurs. Dans ce projet