
Add to Cart
Descripción: Esto es un tablero simple para el BMP085 de alta precisión, sensor de baja potencia del desbloqueo de la presión barométrica. El BMP085 ofrece una gama de medición del hPa 300 a 1100 con una exactitud absoluta de abajo a 0,03 hPa. Tiene sobre la base de la tecnología piezorresistiva para la robustez del EMC, alta exactitud y las linearidades así como estabilidad a largo plazo. Este sensor apoya una fuente del voltaje entre 1,8 y 3.6VDC. Se diseña para ser conectado directamente con un microcontrolador vía el autobús del ² C de I
Este tablero tabla de cortar el pan-amistoso explota todos los pernos del BMP085 6 a un perno 0,1" jefe de la echada. Las fuentes análogas y digitales (VDDD y VDDA) del BMP085 se atan junto y se explotan a un solo perno. También hemos puesto dos 4.7k levantamos los resistores en laslíneasde I2C.
Características:
Dimensiones:
Aquí está la guía ilustra cómo conectar un Arduino con el tablero del desbloqueo ADXL345. Lo que sigue es una tabla que describe qué pernos en el Arduino se deben conectar con los pernos en el acelerómetro:
Pin de Arduino | Pin ADXL345 |
A4 | SDA |
A5 | LCC |
3V3 | VCC |
Tierra |
Tierra |
Código de prueba:
#include <Wire.h>
Dirección del #define BMP085_ADDRESS 0x77 //I2C de BMP085
carbón de leña sin firmar del const OSS = 0; Ajuste de //Oversampling
Valores de la calibración de //
internacional ac1;
internacional ac2;
internacional ac3;
internacional sin firmar ac4;
internacional sin firmar ac5;
internacional sin firmar ac6;
internacional b1;
internacional b2;
mb de la internacional;
internacional bujía métrica;
md de la internacional;
//b5 se calcula en bmp085GetTemperature (...), esta variable también se utiliza en bmp085GetPressure (...)
//así que… la temperatura (...) se debe llamar antes… de la presión (...).
b5 largo;
temperatura corta;
presión larga;
disposición vacía ()
{
Serial.begin (9600);
Wire.begin ();
bmp085Calibration ();
}
lazo vacío ()
{
temperatura = bmp085GetTemperature (bmp085ReadUT ());
presión = bmp085GetPressure (bmp085ReadUP ());
Serial.print (“temperatura: ");
Serial.print (temperatura, DEC);
Serial.println (“*0.1 DEG C”);
Serial.print (“presión: ");
Serial.print (presión, DEC);
Serial.println (“PA”);
Serial.println ();
retraso (1000);
}
//almacena todos los valores de la calibración de bmp085 en variables globales
Los valores de la calibración de //se requieren para calcular temporeros y la presión
//esta función se debe llamar al principio del programa
bmp085Calibration vacíos ()
{
ac1 = bmp085ReadInt (0xAA);
ac2 = bmp085ReadInt (0xAC);
ac3 = bmp085ReadInt (0xAE);
ac4 = bmp085ReadInt (0xB0);
ac5 = bmp085ReadInt (0xB2);
ac6 = bmp085ReadInt (0xB4);
b1 = bmp085ReadInt (0xB6);
b2 = bmp085ReadInt (0xB8);
mb = bmp085ReadInt (0xBA);
bujía métrica = bmp085ReadInt (0xBC);
md = bmp085ReadInt (0xBE);
}
//calcula el ut dado temperatura.
El valor devuelto de //estará en unidades de 0,1 DEG C
bmp085GetTemperature corto (ut sin firmar de la internacional)
{
x1 largo, x2;
x1 = ((ut (largo) - ac6 (largo)) * ac5 (largo)) >> 15;
x2 = (bujía métrica (larga) << 11)/(x1 + md);
b5 = x1 + x2;
vuelva ((b5 + 8)>>4);
}
//calcula la presión abandonada
los valores de la calibración de //deben ser sabidos
//b5 también se requiere así que bmp085GetTemperature (...) se debe llamar primero.
El valor devuelto de //será presión en unidades de PA.
bmp085GetPressure largo (ascendentes largos sin firmar)
{
x1 largo, x2, x3, b3, b6, p;
b4 largo sin firmar, b7;
b6 = b5 - 4000;
//calcula B3
x1 = (b2 * (b6 * b6) >>12) >>11;
x2 = (ac2 * b6) >>11;
x3 = x1 + x2;
b3 = ((((ac1 (largo)) *4 + x3) <<OSS) + 2)>>2;
//calcula B4
x1 = (ac3 * b6) >>13;
x2 = (b1 * ((b6 * b6) >>12))>>16;
x3 = ((x1 + x2) + 2)>>2;
b4 = (ac4 * (largo sin firmar) (x3 + 32768))>>15;
b7 = ((largo sin firmar) (encima de - b3) * (50000>>OSS));
si (b7 < 0x80000000)
p = (b7<<1)/b4;
p = (b7/b4) <<1;
x1 = (p>>8) * (p>>8);
x1 = (x1 * 3038) >>16;
x2 = (- 7357 * p)>>16;
p += (x1 + x2 + 3791) >>4;
p de vuelta;
}
//leyó 1 byte del BMP085 en la ‘dirección’
carbón de leña bmp085Read (dirección sin firmar del carbón de leña)
{
datos sin firmar del carbón de leña;
Wire.beginTransmission (BMP085_ADDRESS);
Wire.send (dirección);
Wire.endTransmission ();
Wire.requestFrom (BMP085_ADDRESS, 1);
¡mientras que (! Wire.available ())
;
Wire.receive de vuelta ();
}
//leyó 2 bytes del BMP085
El primer byte de //será de ‘dirección’
El segundo byte de //será de ‘address'+1
internacional bmp085ReadInt (dirección sin firmar del carbón de leña)
{
msb sin firmar del carbón de leña, lsb;
Wire.beginTransmission (BMP085_ADDRESS);
Wire.send (dirección);
Wire.endTransmission ();
Wire.requestFrom (BMP085_ADDRESS, 2);
mientras que (Wire.available () <2)
;
msb = Wire.receive ();
lsb = Wire.receive ();
vuelva (internacional) msb<<8 | lsb;
}
//leyó el valor uncompensated de la temperatura
internacional sin firmar bmp085ReadUT ()
{
ut sin firmar de la internacional;
//escribe 0x2E en el registro 0xF4
//esto pide una lectura de la temperatura
Wire.beginTransmission (BMP085_ADDRESS);
Wire.send (0xF4);
Wire.send (0x2E);
Wire.endTransmission ();
Espera por lo menos 4.5ms de //
retraso (5);
//leyó dos bytes de los registros 0xF6 y 0xF7
ut = bmp085ReadInt (0xF6);
ut de vuelta;
}
//leyó el valor uncompensated de la presión
bmp085ReadUP largos sin firmar ()
{
msb sin firmar del carbón de leña, lsb, xlsb;
= 0 ascendente largo sin firmar;
//escribe 0x34+ (OSS<<6) en el registro 0xF4
Petición de //una lectura de la presión con el ajuste oversampling
Wire.beginTransmission (BMP085_ADDRESS);
Wire.send (0xF4);
Wire.send (0x34 + (OSS<<6));
Wire.endTransmission ();
La espera de //para la conversión, retrasa dependiente del tiempo en OSS
retraso (2 + (3<<OSS));
//leyó el registro 0xF6 (MSB), 0xF7 (LSB), y 0xF8 (XLSB)
Wire.beginTransmission (BMP085_ADDRESS);
Wire.send (0xF6);
Wire.endTransmission ();
Wire.requestFrom (BMP085_ADDRESS, 3);
Espera de //para que datos estén disponibles
mientras que (Wire.available () < 3)
;
msb = Wire.receive ();
lsb = Wire.receive ();
xlsb = Wire.receive ();
encima de = ((msb (largo sin firmar) << 16) | (lsb (largo sin firmar) << 8) | xlsb (largo sin firmar)) >> (8-OSS);
vuelta para arriba;
}