Taula de continguts:
Vídeo: Fotó de partícules - Tutorial del sensor d’altímetre de precisió MPL3115A2: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
El MPL3115A2 utilitza un sensor de pressió MEMS amb una interfície I2C per proporcionar dades de pressió / altitud i temperatura precises. Les sortides del sensor es digitalitzen mitjançant un ADC de 24 bits d'alta resolució. El processament intern elimina les tasques de compensació del sistema MCU amfitrió. És capaç de detectar un canvi de només 0,05 kPa que equival a un canvi d’altitud de 0,3 m. Aquí teniu la seva demostració amb el fotó de partícules.
Pas 1: el que necessiteu..
1. Fotó de partícules
2. MPL3115A2
3. Cable I²C
4. Escut I²C per a fotó de partícules
Pas 2: connexions:
Agafeu un escut I2C per al fotó de partícules i empenyeu-lo suaument sobre els pins del fotó de partícules.
A continuació, connecteu l'extrem del cable I2C al sensor MPL3115A2 i l'altre extrem a l'escut I2C.
Les connexions es mostren a la imatge superior.
Pas 3: Codi:
El codi de partícules per a MPL3115A2 es pot descarregar des del nostre dipòsit Github-DCUBE Store.
Aquí teniu l’enllaç.
Hem utilitzat dues biblioteques per al codi de partícules, que són application.h i spark_wiring_i2c.h. Es necessita una biblioteca Spark_wiring_i2c per facilitar la comunicació I2C amb el sensor.
També podeu copiar el codi des d’aquí, es dóna de la següent manera:
// Distribuïda amb llicència de lliure voluntat.
// Utilitzeu-lo de la manera que vulgueu, sense ànim de lucre o de franc, sempre que encaixi en les llicències de les obres associades.
// MPL3115A2
// Aquest codi està dissenyat per funcionar amb el mini mòdul MPL3115A2_I2CS I2C
#incloure
#incloure
// L’adreça I2C MPL3115A2 és 0x60 (96)
#define Addr 0x60
flotador cTemp = 0,0, fTemp = 0,0, pressió = 0,0, altitud = 0,0;
int temp = 0, tHight = 0; pres long = 0;
configuració nul·la ()
{
// Estableix la variable
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Particle.variable ("pressió", pressió);
Particle.variable ("altitud", altitud);
// Inicialitzar la comunicació I2C
Wire.begin ();
// Inicialitzar la comunicació en sèrie, establir la velocitat de transmissió = 9600
Serial.begin (9600);
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Seleccioneu el registre de control
Wire.write (0x26);
// Mode actiu, OSR = 128, mode altímetre
Wire.write (0xB9);
// Atura la transmissió I2C
Wire.endTransmission ();
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Seleccioneu el registre de configuració de dades
Wire.write (0x13);
// Esdeveniment preparat per a dades habilitat per a altitud, pressió i temperatura
Wire.write (0x07);
// Atura la transmissió I2C
Wire.endTransmission ();
retard (300);
}
bucle buit ()
{
dades int sense signar [6];
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Seleccioneu el registre de control
Wire.write (0x26);
// Mode actiu, OSR = 128, mode altímetre
Wire.write (0xB9);
// Atura la transmissió I2C
Wire.endTransmission ();
retard (1000);
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Selecciona el registre de dades
Wire.write (0x00);
// Atura la transmissió I2C
Wire.endTransmission ();
// Sol·liciteu 6 bytes de dades
Wire.requestFrom (Addr, 6);
// Llegir 6 bytes de dades de l'adreça 0x00 (00)
// estat, tHeight msb1, tHeight msb, tHight lsb, temp msb, temp lsb
if (Wire.available () == 6)
{
dades [0] = Wire.read ();
dades [1] = Wire.read ();
dades [2] = Wire.read ();
dades [3] = Wire.read ();
dades [4] = Wire.read ();
dades [5] = Wire.read ();
}
// Converteix les dades a 20 bits
tAltura = (((((llarga) dades [1] * (llarga) 65536) + (dades [2] * 256) + (dades [3] i 0xF0)) / 16);
temp = ((dades [4] * 256) + (dades [5] i 0xF0)) / 16;
altitud = tAltura / 16,0;
cTemp = (temp / 16.0);
fTemp = cTemp * 1,8 + 32;
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Seleccioneu el registre de control
Wire.write (0x26);
// Mode actiu, OSR = 128, mode baròmetre
Wire.write (0x39);
// Atura la transmissió I2C
Wire.endTransmission ();
// Inicieu la transmissió I2C
Wire.beginTransmission (Addr);
// Selecciona el registre de dades
Wire.write (0x00);
// Atura la transmissió I2C
Wire.endTransmission ();
retard (1000);
// Sol·liciteu 4 bytes de dades
Wire.requestFrom (Addr, 4);
// Llegiu 4 bytes de dades
// estat, pres msb1, pres msb, pres lsb
if (Wire.available () == 4)
{
dades [0] = Wire.read ();
dades [1] = Wire.read ();
dades [2] = Wire.read ();
dades [3] = Wire.read ();
}
// Converteix les dades a 20 bits
pres = (((llarg) dades [1] * (llarg) 65536) + (dades [2] * 256) + (dades [3] i 0xF0)) / 16;
pressió = (pres / 4.0) / 1000.0;
// Data de sortida al tauler
Particle.publish ("Altitud:", String (altitud));
Particle.publish ("Pressió", String (pressió));
Particle.publish ("Temperatura en centígrads", String (cTemp));
Particle.publish ("Temperatura en Fahrenheit:", String (fTemp));
retard (1000);
}
Pas 4: aplicacions:
Diverses aplicacions de MPL3115A2 inclouen altimetria d’alta precisió, telèfons intel·ligents / tauletes, altimetria electrònica personal, etc. També es pot incorporar a GPS Dead Reckoning, millora GPS per a serveis d’emergència, assistència de mapes, navegació i equips d’estacions meteorològiques.
Recomanat:
Pingo: un llançador de boles de ping-pong amb detecció de moviment i alta precisió: 8 passos
Pingo: un llançador de boles de ping-pong amb detecció de moviment i alta precisió: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Mesura del camp magnètic mitjançant HMC5883 i fotó de partícules: 4 passos
Mesura del camp magnètic mitjançant HMC5883 i fotó de partícules: l’HMC5883 és una brúixola digital dissenyada per a la detecció magnètica de camp baix. Aquest dispositiu té un ampli rang de camps magnètics de +/- 8 Oe i una velocitat de sortida de 160 Hz. El sensor HMC5883 inclou controladors automàtics de corretges de desmagnetització, cancel·lació de compensació i
Sensor d'humitat amb fotó de partícules: 6 passos
Sensor d’humitat amb fotó de partícules: Introducció En aquest tutorial anem a construir un sensor d’humitat amb un fotó de partícules i la seva antena WiFi llitada i / i externa. La força del WiFi depèn de la quantitat d'humitat de l'aire i també del terra. Utilitzem aquest principi
Interfície del sensor de giroscopi de 3 eixos BMG160 amb partícules: 5 passos
Interfície del sensor de giroscopi de 3 eixos BMG160 amb partícules: al món actual, més de la meitat de la joventut i dels nens els agrada el joc i tots aquells que els hi agraden, fascinats pels aspectes tècnics del joc, saben la importància de la detecció de moviment a aquest domini. També ens va sorprendre el mateix i
Sensor de boira - Fotó de partícules - Deseu dades en línia: 5 passos (amb imatges)
Sensor de boira: fotó de partícules: guardeu dades en línia: per mesurar la quantitat de boira o fum a l'aire, hem creat aquest sensor de boira. Mesura la quantitat de llum que rep un LDR d'un làser i la compara amb la quantitat de llum dels voltants. Publica les dades en un full de Google en temps real mitjançant IFTTT