
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03


O MPL3115A2 emprega um sensor de pressão MEMS com uma interface I2C para fornecer dados precisos de pressão / altitude e temperatura. As saídas do sensor são digitalizadas por um ADC de alta resolução de 24 bits. O processamento interno remove as tarefas de compensação do sistema MCU host. Ele é capaz de detectar uma mudança em apenas 0,05 kPa, o que equivale a uma mudança de 0,3 m na altitude. Aqui está sua demonstração com o Arduino Nano.
Etapa 1: O que você precisa..

1. Arduino Nano
2. MPL3115A2
3. Cabo I²C
4. Escudo I²C para Arduino Nano
Etapa 2: Conexões:




Pegue um escudo I2C para Arduino Nano e empurre-o suavemente sobre os pinos do Nano.
Em seguida, conecte uma extremidade do cabo I2C ao sensor MPL3115A2 e a outra extremidade à blindagem I2C.
As conexões são mostradas na imagem acima.
Etapa 3: Código:

O código do arduino para MPL3115A2 pode ser baixado de nosso repositório github-DCUBE Store.
Aqui está o link para o mesmo:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
Incluímos a biblioteca Wire.h para facilitar a comunicação I2c do sensor com a placa Arduino.
Você também pode copiar o código daqui, ele é fornecido da seguinte forma:
// Distribuído com uma licença de livre arbítrio.
// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.
// MPL3115A2
// Este código é projetado para funcionar com o Minimódulo MPL3115A2_I2CS I2C
#incluir
// O endereço MPL3115A2 I2C é 0x60 (96)
#define Addr 0x60
void setup ()
{
// Inicializar a comunicação I2C
Wire.begin ();
// Inicialize a comunicação serial, defina a taxa de transmissão = 9600
Serial.begin (9600);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de controle
Wire.write (0x26);
// Modo ativo, OSR = 128, modo altímetro
Wire.write (0xB9);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de configuração de dados
Wire.write (0x13);
// Evento Data Ready habilitado para altitude, pressão, temperatura
Wire.write (0x07);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [6];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de controle
Wire.write (0x26);
// Modo ativo, OSR = 128, modo altímetro
Wire.write (0xB9);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (1000);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de dados
Wire.write (0x00);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 6 bytes de dados
Wire.requestFrom (Addr, 6);
// Lê 6 bytes de dados do endereço 0x00 (00)
// status, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
if (Wire.available () == 6)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
dados [2] = Wire.read ();
dados [3] = Wire.read ();
dados [4] = Wire.read ();
dados [5] = Wire.read ();
}
// Converta os dados para 20 bits
int tHeight = (((longo) (dados [1] * (longo) 65536) + (dados [2] * 256) + (dados [3] & 0xF0)) / 16);
int temp = ((dados [4] * 256) + (dados [5] e 0xF0)) / 16;
altitude de flutuação = tHeight / 16,0;
float cTemp = (temp / 16,0);
float fTemp = cTemp * 1,8 + 32;
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de controle
Wire.write (0x26);
// Modo ativo, OSR = 128, modo barômetro
Wire.write (0x39);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (1000);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de dados
Wire.write (0x00);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 4 bytes de dados
Wire.requestFrom (Addr, 4);
// Lê 4 bytes de dados
// status, pres msb1, pres msb, pres lsb
if (Wire.available () == 4)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
dados [2] = Wire.read ();
dados [3] = Wire.read ();
}
// Converta os dados para 20 bits
long pres = (((long) data [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16;
pressão flutuante = (pres / 4,0) / 1000,0;
// Dados de saída para monitor serial
Serial.print ("Altitude:");
Serial.print (altitude);
Serial.println ("m");
Serial.print ("Pressão:");
Serial.print (pressão);
Serial.println ("kPa");
Serial.print ("Temperatura em Celsius:");
Serial.print (cTemp);
Serial.println ("C");
Serial.print ("Temperatura em Fahrenheit:");
Serial.print (fTemp);
Serial.println ("F");
atraso (500);
}
Etapa 4: Aplicativos:
Várias aplicações de MPL3115A2 incluem Altimetria de Alta Precisão, Smartphones / Tablets, Altimetria Eletrônica Pessoal, etc. Ele também pode ser incorporado em GPS Dead Reckoning, Melhoria de GPS para Serviços de Emergência, Map Assist, Navegação, bem como Equipamentos de Estação Meteorológica.
Recomendado:
Pingo: um iniciador de bola de pingue-pongue com detecção de movimento e alta precisão: 8 etapas

Pingo: um lançador de bola de pingue-pongue com detecção de movimento e alta precisão: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
DropArt - Colisor fotográfico de precisão de duas gotas: 11 etapas (com imagens)

DropArt - Colisor fotográfico de duas gotas de precisão: Olá a todos, Neste instrutível apresento meu projeto para um colisor de duas gotas de líquido controlado por computador. Antes de começarmos com os detalhes do design, acho que faz sentido explicar exatamente qual é o propósito do design.Um divertido, interessante
Relógio de precisão: 3 etapas

Relógio de precisão: Todos nós precisamos de relógios, então por que não fazer o seu próprio neste instrutível? Vou mostrar a você como fazer um relógio de precisão, uma vez que você configurou irá automaticamente manter o controle da hora atual no fundo de tudo. Embora também precise de muito pouco
Registro de dados remoto de alta precisão usando multímetro / Arduino / pfodApp: 10 etapas (com imagens)

Registro de dados remoto de alta precisão usando multímetro / Arduino / pfodApp: atualizado em 26 de abril de 2017 Circuito e placa revisados para uso com medidores USB 4000ZC.Nenhuma codificação Android necessária. para registro e
Arduino: Lib de precisão para motor de passo: 19 etapas

Arduino: Lib de precisão para motor de passo: Hoje, vou mostrar a você uma biblioteca para um driver de motor de passo completo com interruptores de limite e movimento do motor com aceleração e micro passo. Esta Lib, que funciona no Arduino Uno e no Arduino Mega, permite mover os motores com base não apenas