Module de sonde de la pression BMP085 barométrique

Certification:CE
Nom de marque:arduino
Prix:15.55usd
Point d'origine:porcelaine
Numéro de type:BMP085
Quantité d'ordre minimum:1
Contacter

Add to Cart

Membre actif
Shenzhen Guangdong
Adresse: Salle 620, bâtiment yutian, chanson route de lin, Shenzhen, en Chine, district de Futian
dernière connexion fois fournisseur: dans 1 heures
Détails du produit Profil de la société
Détails du produit

Description : C'est un panneau simple d'évasion pour le BMP085 haute précision, capteur de basse puissance de pression barométrique. Le BMP085 offre une gamme de mesure du hPa 300 1100 avec une exactitude absolue de vers le bas 0,03 hPa. Il a basé sur de technologie pour la stabilité de robustesse d'EMC, de grande précision et des linéarités aussi bien qu' long terme piézorésistive. Ce capteur soutient un approvisionnement de tension entre 1,8 et 3.6VDC. Il est conçu pour être relié directement un microcontrôleur par l'intermédiaire de l'autobus du ² C d'I

Ce conseil qui respecte les planches pain éclate toutes les goupilles du BMP085 6 une borne 0,1" en-tête de lancement. Les approvisionnements analogues et numériques (VDDD et VDDA) en BMP085 sont attachés ensemble et éclatés une goupille simple. Nous avons également mis deux résistances 4.7k cabreuses sur leslignesd'I2C.

Caractéristiques :

  • Interface deux fils de Digital (I2C)
  • Grand choix de pression barométrique
  • Gamme flexible de tension d'alimentation
  • Puissance très réduite
  • Mesure faible bruit
  • Entièrement calibré
  • Mesure de la température incluse
  • empreinte de pas Ultra-plate et petite

Dimensions :

  • 0,65 x 0,65" (16,5 x 16,5 millimètres)

 

L'accrochant :

Voici le guide illustre comment relier un Arduino au conseil de l'évasion ADXL345. Ce qui suit est une description de table quelles goupilles sur l'Arduino devraient être reliées aux goupilles sur l'accéléromètre :

 

Pin d'ArduinoPin ADXL345
A4SDA
A5Cble coaxial
3V3VCC
La terre

LA terre

 

 

 

 

Code d'essai :


#include <Wire.h>

Adresse du #define BMP085_ADDRESS 0x77 //I2C de BMP085

char non signé de const OSS = 0 ;  Arrangement de //Oversampling

Valeurs de calibrage de //
international ac1 ;
international ac2 ;
international ac3 ;
international non signé ac4 ;
international non signé ac5 ;
international non signé ac6 ;
international b1 ;
international b2 ;
mi-bande d'international ;
international mètre-bougie ;
DM d'international ;

//b5 est calculé dans bmp085GetTemperature (...), cette variable est également employé dans bmp085GetPressure (...)
//ainsi… la température (...) doit s'appeler avant… la pression (...).
long b5 ;

la température courte ;
longue pression ;

installation nulle ()
{
  Serial.begin (9600) ;
  Wire.begin () ;
  bmp085Calibration () ;
}

boucle nulle ()
{
  la température = bmp085GetTemperature (bmp085ReadUT ());
  pression = bmp085GetPressure (bmp085ReadUP ());
  Serial.print (la « température : ") ;
  Serial.print (la température, DEC) ;
  Serial.println (« *0.1 deg. C ») ;
  Serial.print (« pression : ") ;
  Serial.print (pression, DEC) ;
  Serial.println (« PA ») ;
  Serial.println () ;
  retard (1000) ;
}

//stocke toutes les valeurs de calibrage de bmp085 dans des variables globales
Des valeurs de calibrage de //sont exigées pour calculer le temp et la pression
//cette fonction devrait s'appeler au début du programme
bmp085Calibration nuls ()
{
  ac1 = bmp085ReadInt (0xAA) ;
  ac2 = bmp085ReadInt (0xAC) ;
  ac3 = bmp085ReadInt (0xAE) ;
  ac4 = bmp085ReadInt (0xB0) ;
  ac5 = bmp085ReadInt (0xB2) ;
  ac6 = bmp085ReadInt (0xB4) ;
  b1 = bmp085ReadInt (0xB6) ;
  b2 = bmp085ReadInt (0xB8) ;
  mi-bande = bmp085ReadInt (0xBA) ;
  mètre-bougie = bmp085ReadInt (0xBC) ;
  DM = bmp085ReadInt (0xBE) ;
}

//calculent l'ut donné par température.
La valeur de //retournée sera dans les unités de 0,1 deg. C
bmp085GetTemperature court (ut non signé d'international)
{
  long x1, x2 ;
 
  x1 = (((long) ut - (long) ac6) * (long) ac5) >> 15 ;
  x2 = ((long) mètre-bougie << 11)/(x1 + DM) ;
  b5 = x1 + x2 ;

  retournez ((b5 + 8)>>4) ;  
}

//calculent la pression abandonnée
des valeurs de calibrage de //doivent être connues
//b5 est également exigé ainsi bmp085GetTemperature (...) doit s'appeler d'abord.
La valeur de //retournée sera pression dans les unités de la PA.
long bmp085GetPressure (longs hauts non signés)
{
  long x1, x2, x3, b3, b6, p ;
  long b4 non signé, b7 ;
 
  b6 = b5 - 4000 ;
  //calculent B3
  x1 = (b2 * (b6 * b6) >>12) >>11 ;
  x2 = (ac2 * b6) >>11 ;
  x3 = x1 + x2 ;
  b3 = (((((long) ac1) *4 + x3) <<OSS) + 2)>>2 ;
 
  //calculent B4
  x1 = (ac3 * b6) >>13 ;
  x2 = (b1 * ((b6 * b6) >>12))>>16 ;
  x3 = ((x1 + x2) + 2)>>2 ;
  b4 = (ac4 * (long non signé) (x3 + 32768))>>15 ;
 
  b7 = ((long non signé) (vers le haut de - b3) * (50000>>OSS));
  si (b7 < 0x80000000)
    p = (b7<<1)/b4 ;
  autrement
    p = (b7/b4) <<1 ;
    
  x1 = (p>>8) * (p>>8) ;
  x1 = (x1 * 3038) >>16 ;
  x2 = (- 7357 * p)>>16 ;
  p += (x1 + x2 + 3791) >>4 ;
 
  p de retour ;
}

//a lu 1 octet du BMP085 la “adresse”
char bmp085Read (adresse non signée de char)
{
  données non signées de char ;
 
  Wire.beginTransmission (BMP085_ADDRESS) ;
  Wire.send (adresse) ;
  Wire.endTransmission () ;
 
  Wire.requestFrom (BMP085_ADDRESS, 1) ;
  tandis que (! Wire.available ())
    ;
    
  Wire.receive de retour () ;
}

//a lu 2 octets du BMP085
Le premier octet de //sera de “adresse”
Octet de //le deuxième sera de “address'+1
international bmp085ReadInt (adresse non signée de char)
{
  msb non signé de char, lsb ;
 
  Wire.beginTransmission (BMP085_ADDRESS) ;
  Wire.send (adresse) ;
  Wire.endTransmission () ;
 
  Wire.requestFrom (BMP085_ADDRESS, 2) ;
  tandis que (Wire.available () <2)
    ;
  msb = Wire.receive () ;
  lsb = Wire.receive () ;
 
  renvoyez (international) msb<<8 | lsb ;
}

//a lu la valeur incompensée de la température
international non signé bmp085ReadUT ()
{
  ut non signé d'international ;
 
  //écrivent 0x2E dans le registre 0xF4
  //ceci demande une lecture de la température
  Wire.beginTransmission (BMP085_ADDRESS) ;
  Wire.send (0xF4) ;
  Wire.send (0x2E) ;
  Wire.endTransmission () ;
 
  Attente au moins 4.5ms de //
  retard (5) ;
 
  //a lu deux octets partir des registres 0xF6 et 0xF7
  ut = bmp085ReadInt (0xF6) ;
  ut de retour ;
}

//a lu la valeur incompensée de pression
longs bmp085ReadUP non signés ()
{
  msb non signé de char, lsb, xlsb ;
  long = 0 haut non signé ;
 
  //écrivent 0x34+ (OSS<<6) dans registre 0xF4
  Demande de //une lecture de pression avec l'arrangement oversampling
  Wire.beginTransmission (BMP085_ADDRESS) ;
  Wire.send (0xF4) ;
  Wire.send (0x34 + (OSS<<6)) ;
  Wire.endTransmission () ;
 
  L'attente de //la conversion, retardent dépendant du temps sur OSS
  retard (2 + (3<<OSS));
 
  //a lu le registre 0xF6 (MSB), 0xF7 (LSB), et 0xF8 (XLSB)
  Wire.beginTransmission (BMP085_ADDRESS) ;
  Wire.send (0xF6) ;
  Wire.endTransmission () ;
  Wire.requestFrom (BMP085_ADDRESS, 3) ;
 
  Attente de //des données devenir disponibles
  tandis que (Wire.available () < 3)
    ;
  msb = Wire.receive () ;
  lsb = Wire.receive () ;
  xlsb = Wire.receive () ;
 
  vers le haut de = ((msb (long non signé) << 16) | (lsb (long non signé) << 8) | xlsb (long non signé)) >> (8-OSS) ;
 
  retour ;
}

China Module de sonde de la pression BMP085 barométrique supplier

Module de sonde de la pression BMP085 barométrique

Inquiry Cart 0