BMP085 大気圧センサー モジュール

ブランド名:arduino
証明:CE
価格:15.55usd
原産地:陶磁器
型式番号:BMP085
最低順序量:1
企業との接触

Add to Cart

正会員
Shenzhen Guangdong
住所: 620, 玉田ビル, 歌林道、福田地区、深セン、中国
サプライヤーの最後のログイン時間: 内 1 時間
製品詳細 会社概要
製品詳細

記述: これは高精度BMP085のための簡単なブレイクアウト板ローパワー大気圧センサーです。BMP085は0.03 hPaにの絶対正確さの300から1100のhPaの測定範囲を提供します。それは圧抵抗EMCの強さ、高精度なおよび直線性、また長期にわたる安定性に基づいてのための技術の持っています。このセンサーは1.8と3.6VDC間の電圧供給を支えます。Iの² Cバスでマイクロ制御回路に直接接続されることを設計します

この回路盤に適する板は6ピン0.1"にBMP085のすべてのピンをピッチ ヘッダー取り出します。BMP085のアナログおよびデジタル供給は(VDDDおよびVDDA)一緒に結ばれ、単一ピンに取り出されます。私達はまたI2Cラインに2つの4.7kプルアップの抵抗器を置きました。

特徴:

  • デジタル二線式の(I2C)インターフェイス
  • 広い大気圧の範囲
  • 適用範囲が広い供給電圧の範囲
  • 超低いパワー消費量
  • 低雑音の測定
  • 十分に目盛りを付けられる
  • 含まれている温度の測定
  • 超平らで、小さい足跡

次元:

  • 0.65 x 0.65" (16.5 x 16.5 mm)

 

それを引っ掛けます:

ガイドは説明しますADXL345ブレイクアウト板にArduinoを接続する方法をここにあります。次はArduinoのどのピンが加速度計のピンに接続されるべきであるか記述するテーブルです:

 

Arduino PinADXL345 Pin
A4SDA
A5SCL
3V3VCC
Gnd

GND

 

 

 

 

テスト コード:


#include <Wire.h>

BMP085の#define BMP085_ADDRESS 0x77 //I2Cの住所

constの無署名の木炭OSS = 0; //Oversamplingの設定

//の口径測定の価値
int ac1;
int ac2;
int ac3;
無署名のint ac4;
無署名のint ac5;
無署名のint ac6;
int b1;
int b2;
intのMb;
int mc;
int md;

//b5はbmp085GetPressureでもbmp085GetTemperature (...)で計算されます、この変数使用されます(...)
//は…圧力(...)の前に従って…温度(...)呼ばれなければなりません。
長いb5;

短い温度;
長い圧力;

無効の組み立て()
{
 Serial.begin (9600);
 Wire.begin ();
 bmp085Calibration ();
}

無効のループ()
{
 温度= bmp085GetTemperature (bmp085ReadUT ());
 圧力= bmp085GetPressure (bmp085ReadUP ());
 Serial.print (「温度:」);
 Serial.print (温度、DEC);
 Serial.println (「*0.1 deg C」);
 Serial.print (「圧力:」);
 Serial.print (圧力、DEC);
 Serial.println (「Pa」);
 Serial.println ();
 遅れ(1000);
}

//はグローバル変数にbmp085の口径測定の価値すべてを貯えます
//の口径測定の価値は臨時雇用者および圧力を計算するように要求されます
//はプログラムの始めにこの機能呼ばれるべきです
無効bmp085Calibration ()
{
 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);
 mc = bmp085ReadInt (0xBC);
 md = bmp085ReadInt (0xBE);
}

//は温度ある特定のutを計算します。
戻った//の価値は0.1 deg Cの単位にあります
短いbmp085GetTemperature (無署名のintのut)
{
 長いx1、x2;
 
 x1 = (((長い) ut - (長い) ac6) * (長い) ac5) >> 15;
 x2 = ((長い) mc <<11)/(x1 + md);
 b5 = x1 + x2;

  戻して下さい((b5 + 8)>>4);  
}

//はあきらめられる圧力を計算します
//の口径測定の価値は知られていなければなりません
//b5はまた要求されます従ってbmp085GetTemperature (...)は最初に呼ばれなければなりません。
戻った//の価値はPaの単位の圧力です。
長いbmp085GetPressure (無署名の長い上り)
{
 長いx1、x2、x3、b3、b6、p;
 無署名の長いb4、b7;
 
 b6 = b5 - 4000;
 //はB3を計算します
 x1 = (b2 * (b6 * b6) >>12) >>11;
 x2 = (ac2 * b6) >>11;
 x3 = x1 + x2;
 b3 = (((((長い) ac1) *4 + x3) <<OSS) + 2)>>2;
 
 //はB4を計算します
 x1 = (ac3 * b6) >>13;
 x2 = (b1 * ((b6 * b6) >>12))>>16;
 x3 = ((x1 + x2) + 2)>>2;
 b4 = (ac4 * (無署名の長い) (x3 + 32768))>>15;
 
 b7 = ((無署名の長い) (の上で- b3) * (50000>>OSS));
 (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;
}

//は『住所』で読みましたBMP085からの1バイトを
木炭bmp085Read (無署名の木炭の住所)
{
 無署名の木炭データ;
 
 Wire.beginTransmission (BMP085_ADDRESS);
 Wire.send (住所);
 Wire.endTransmission ();
 
 Wire.requestFrom (BMP085_ADDRESS、1);
 間(!Wire.available ())
   ;
   
 帰りWire.receive ();
}

//はBMP085からの2バイトを読みました
//の最初バイトは『住所』からあります
//の第2バイトは『address'+1からあります
int bmp085ReadInt (無署名の木炭の住所)
{
 無署名の木炭のmsb、lsb;
 
 Wire.beginTransmission (BMP085_ADDRESS);
 Wire.send (住所);
 Wire.endTransmission ();
 
 Wire.requestFrom (BMP085_ADDRESS、2);
 間(Wire.available () <2)
   ;
 msb = Wire.receive ();
 lsb = Wire.receive ();
 
 (int) msb<<8を戻して下さい|lsb;
}

//はuncompensated温度の価値を読みました
無署名のint bmp085ReadUT ()
{
 無署名のintのut;
 
 //は記録0xF4に0x2Eを書きます
 //はこれ温度の読書を要求します
 Wire.beginTransmission (BMP085_ADDRESS);
 Wire.send (0xF4);
 Wire.send (0x2E);
 Wire.endTransmission ();
 
 //の待ち時間少なくとも4.5ms
 遅れ(5);
 
 //は記録0xF6および0xF7からの2バイトを読みました
 ut = bmp085ReadInt (0xF6);
 帰りのut;
}

//はuncompensated圧力価値を読みました
無署名の長いbmp085ReadUP ()
{
 無署名の木炭のmsb、lsb、xlsb;
 無署名の長い上りの= 0;
 
 //は0x34+を書きます(OSS<<6)記録0xF4に
 //の要求oversampling設定が付いている圧力読書
 Wire.beginTransmission (BMP085_ADDRESS);
 Wire.send (0xF4);
 Wire.send (0x34 + (OSS<<6));
 Wire.endTransmission ();
 
 転換のための//の待ち時間は、OSSの時間依存を遅らせます
 遅れ(2 + (3<<OSS));
 
 //は読みました記録0xF6 (MSB)、0xF7 (LSB)、および0xF8 (XLSB)を
 Wire.beginTransmission (BMP085_ADDRESS);
 Wire.send (0xF6);
 Wire.endTransmission ();
 Wire.requestFrom (BMP085_ADDRESS、3);
 
 利用できるようになるデータのための//の待ち時間
 間(Wire.available () < 3)
   ;
 msb = Wire.receive ();
 lsb = Wire.receive ();
 xlsb = Wire.receive ();
 
 の上= (((無署名の長い) msb <<16)|((無署名の長い) lsb << 8)|(無署名の長い) xlsb) >> (8-OSS);
 
 リターン;
}

China BMP085 大気圧センサー モジュール supplier

BMP085 大気圧センサー モジュール

お問い合わせカート 0