![Arduino Nano - Tutorial senzor de altimetru de precizie MPL3115A2: 4 pași Arduino Nano - Tutorial senzor de altimetru de precizie MPL3115A2: 4 pași](https://i.howwhatproduce.com/images/002/image-3723-13-j.webp)
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
![Image Image](https://i.howwhatproduce.com/images/002/image-3723-15-j.webp)
![](https://i.ytimg.com/vi/1SQNlzMTexM/hqdefault.jpg)
MPL3115A2 folosește un senzor de presiune MEMS cu o interfață I2C pentru a furniza date precise de presiune / altitudine și temperatură. Ieșirile senzorului sunt digitalizate printr-un ADC de 24 biți de înaltă rezoluție. Procesarea internă elimină sarcinile de compensare din sistemul MCU gazdă. Este capabil să detecteze o schimbare de numai 0,05 kPa care echivalează cu o schimbare de altitudine de 0,3 m. Iată demonstrația sa cu Arduino Nano.
Pasul 1: De ce ai nevoie..
![De ce ai nevoie..!! De ce ai nevoie..!!](https://i.howwhatproduce.com/images/002/image-3723-16-j.webp)
1. Arduino Nano
2. MPL3115A2
3. Cablu I²C
4. Scut I²C pentru Arduino Nano
Pasul 2: Conexiuni:
![Conexiuni Conexiuni](https://i.howwhatproduce.com/images/002/image-3723-17-j.webp)
![Conexiuni Conexiuni](https://i.howwhatproduce.com/images/002/image-3723-18-j.webp)
![Conexiuni Conexiuni](https://i.howwhatproduce.com/images/002/image-3723-19-j.webp)
![Conexiuni Conexiuni](https://i.howwhatproduce.com/images/002/image-3723-20-j.webp)
Luați un scut I2C pentru Arduino Nano și împingeți-l ușor peste pinii Nano.
Apoi conectați capătul cablului I2C la senzorul MPL3115A2 și celălalt capăt la ecranul I2C.
Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod:
![Cod Cod](https://i.howwhatproduce.com/images/002/image-3723-21-j.webp)
Codul arduino pentru MPL3115A2 poate fi descărcat din depozitul nostru github-Magazin DCUBE.
Iată linkul pentru același lucru:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Includem biblioteca Wire.h pentru a facilita comunicarea I2c a senzorului cu placa Arduino.
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
// Distribuit cu o licență de liberă voință.
// Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
// MPL3115A2
// Acest cod este conceput pentru a funcționa cu Mini-modulul MPL3115A2_I2CS I2C
#include
// Adresa I2C MPL3115A2 este 0x60 (96)
#define Addr 0x60
configurare nulă ()
{
// Inițializați comunicarea I2C
Wire.begin ();
// Inițializați comunicarea în serie, setați baud rate = 9600
Serial.begin (9600);
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de control
Wire.write (0x26);
// Mod activ, OSR = 128, modul altimetru
Wire.write (0xB9);
// Opriți transmisia I2C
Wire.endTransmission ();
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de configurare a datelor
Wire.write (0x13);
// Eveniment pregătit pentru date activat pentru altitudine, presiune, temperatură
Wire.write (0x07);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (300);
}
bucla nulă ()
{
date int nesemnate [6];
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de control
Wire.write (0x26);
// Mod activ, OSR = 128, modul altimetru
Wire.write (0xB9);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (1000);
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de date
Wire.write (0x00);
// Opriți transmisia I2C
Wire.endTransmission ();
// Solicitați 6 octeți de date
Wire.requestFrom (Addr, 6);
// Citiți 6 octeți de date de la adresa 0x00 (00)
// stare, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if (Wire.available () == 6)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
date [2] = Wire.read ();
date [3] = Wire.read ();
date [4] = Wire.read ();
date [5] = Wire.read ();
}
// Convertiți datele în 20 de biți
int tHeight = (((lung) (date [1] * (lung) 65536) + (date [2] * 256) + (date [3] & 0xF0)) / 16);
int temp = ((date [4] * 256) + (date [5] & 0xF0)) / 16;
altitudine de plutire = tHeight / 16,0;
float cTemp = (temp / 16.0);
float fTemp = cTemp * 1,8 + 32;
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de control
Wire.write (0x26);
// Mod activ, OSR = 128, mod barometru
Wire.write (0x39);
// Opriți transmisia I2C
Wire.endTransmission ();
întârziere (1000);
// Porniți transmisia I2C
Wire.beginTransmission (Addr);
// Selectați registrul de date
Wire.write (0x00);
// Opriți transmisia I2C
Wire.endTransmission ();
// Solicitați 4 octeți de date
Wire.requestFrom (Addr, 4);
// Citiți 4 octeți de date
// status, pres msb1, pres msb, pres lsb
if (Wire.available () == 4)
{
date [0] = Wire.read ();
date [1] = Wire.read ();
date [2] = Wire.read ();
date [3] = Wire.read ();
}
// Convertiți datele în 20 de biți
long pres = (((long) data [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
presiune de plutire = (pres / 4.0) / 1000.0;
// Ieșire date pe monitorul serial
Serial.print ("Altitudine:");
Serial.print (altitudine);
Serial.println ("m");
Serial.print ("Presiune:");
Serial.print (presiune);
Serial.println ("kPa");
Serial.print ("Temperatura în grade Celsius:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatura în Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
întârziere (500);
}
Pasul 4: Aplicații:
Diverse aplicații ale MPL3115A2 includ altimetrie de înaltă precizie, telefoane inteligente / tablete, altimetrie electronică personală etc. Poate fi, de asemenea, încorporată în GPS Dead Reckoning, GPS Enhancement for Emergency Services, Map Assist, Navigation, precum și echipamente pentru stațiile meteorologice.
Recomandat:
Altimetru avion RC (compatibil cu telemetria Spektrum): 7 pași
![Altimetru avion RC (compatibil cu telemetria Spektrum): 7 pași Altimetru avion RC (compatibil cu telemetria Spektrum): 7 pași](https://i.howwhatproduce.com/images/002/image-5375-j.webp)
RC Plane Altimeter (compatibil cu Spektrum Telemetry): Am realizat acest altimetru, astfel încât pilotul să știe că se află sub limita de 400 de picioare a aeronavelor RC din SUA. Prietenul meu era îngrijorat, deoarece nu putea spune cu certitudine că avea întotdeauna sub 400 ft și dorea asigurarea suplimentară că un senzor va
Altimetru (contor de altitudine) pe baza presiunii atmosferice: 7 pași (cu imagini)
![Altimetru (contor de altitudine) pe baza presiunii atmosferice: 7 pași (cu imagini) Altimetru (contor de altitudine) pe baza presiunii atmosferice: 7 pași (cu imagini)](https://i.howwhatproduce.com/images/001/image-1586-45-j.webp)
Altimetru (contor de altitudine) pe baza presiunii atmosferice: [Edit]; Vedeți versiunea 2 la pasul 6 cu introducerea manuală a altitudinii de bază. Aceasta este descrierea clădirii unui altimetru (contor de altitudine) bazat pe un Arduino Nano și un senzor de presiune atmosferică Bosch BMP180. Designul este simplu, dar măsurătorile
Dirt-O-Meter ieftin - Altimetru audibil pe bază de Arduino de 9 USD: 4 pași (cu imagini)
![Dirt-O-Meter ieftin - Altimetru audibil pe bază de Arduino de 9 USD: 4 pași (cu imagini) Dirt-O-Meter ieftin - Altimetru audibil pe bază de Arduino de 9 USD: 4 pași (cu imagini)](https://i.howwhatproduce.com/images/005/image-14250-j.webp)
Dirt Cheap Dirt-O-Meter - Altimetru audibil bazat pe Arduino de 9 dolari: Dytters (A.K.A Audimetre audibile) au salvat viețile parașutistilor atât de mulți ani. Acum, Audible Abby le va economisi și ei bani. Dytters-urile de bază au patru alarme, una la urcare și trei la coborâre. În călătoria cu avionul, parașutistii trebuie să știe când
Înregistrare de date la distanță cu precizie ridicată utilizând multimetru / Arduino / pfodApp: 10 pași (cu imagini)
![Înregistrare de date la distanță cu precizie ridicată utilizând multimetru / Arduino / pfodApp: 10 pași (cu imagini) Înregistrare de date la distanță cu precizie ridicată utilizând multimetru / Arduino / pfodApp: 10 pași (cu imagini)](https://i.howwhatproduce.com/images/003/image-6634-23-j.webp)
Înregistrare de date de la distanță cu precizie ridicată folosind aplicația Multimeter / Arduino / pfod: actualizată la 26 aprilie 2017 Circuit și placă revizuite pentru utilizare cu contoare USB 4000ZC. Nu este necesară codificarea Android pentru logare și
Altimetru Arduino folosind BMP și SPI sau I2C OLED: 5 pași
![Altimetru Arduino folosind BMP și SPI sau I2C OLED: 5 pași Altimetru Arduino folosind BMP și SPI sau I2C OLED: 5 pași](https://i.howwhatproduce.com/images/003/image-8379-18-j.webp)
Altimetru Arduino Utilizând BMP și SPI sau I2C OLED: De mult timp căut altimetrul și temperatura folosind un singur senzor și îl afișez pe OLED bazat pe SPI. Deoarece nu am putut găsi ceva precis, m-am gândit să-mi construiesc propriul meu folosind biblioteca U8glib. Există un tutorial în youtub