библиотека adafruit_bmp085.h для bmp180

Тема в разделе "Arduino & Shields", создана пользователем zsm, 24 июн 2015.

  1. zsm

    zsm Гик

    подскажите пожалуйста , как переключаются режимы точности измерения в этой библиотеке,
    и какой режим стоит по умолчанию? в описаниях всех говорится о высокоточном и экономном режимах, но как их включить нигде не сказано..
    заранее спасибо.
     
  2. Unixon

    Unixon Оракул Модератор

    Код (Text):

    Adafruit_BMP085 sensor;

    //sensor.begin(BMP085_ULTRALOWPOWER);
    sensor.begin(BMP085_STANDARD);
    //sensor.begin(BMP085_HIGHRES);
    //sensor.begin(BMP085_ULTRAHIGHRES);
     
     
    9xA59kK и zsm нравится это.
  3. zsm

    zsm Гик

    спасибо
     
  4. zsm

    zsm Гик

    добавил в void setup()
    Adafruit_BMP085 sensor;
    sensor.begin(BMP085_ULTRAHIGHRES);

    как будто не изменилось ничего прыгает давление так же как раньше..
    при том что 100 значений усредняются
    может разницу видно только между супер экономным режимом и супер точным..
     
  5. vvr

    vvr Инженерище

    в библиотеке открытую строку закомментируйте, а нужную откройте
     
  6. zsm

    zsm Гик

    понял спасибо
     
  7. zsm

    zsm Гик

    в библиотеке такого нет..
    все файлы проверил

    Код (Text):
    /***************************************************
      This is a library for the Adafruit BMP085/BMP180 Barometric Pressure + Temp sensor

      Designed specifically to work with the Adafruit BMP085 or BMP180 Breakout
      ----> http://www.adafruit.com/products/391
      ----> http://www.adafruit.com/products/1603

      These displays use I2C to communicate, 2 pins are required to
      interface
      Adafruit invests time and resources providing this open source code,
      please support Adafruit and open-source hardware by purchasing
      products from Adafruit!

      Written by Limor Fried/Ladyada for Adafruit Industries.
      BSD license, all text above must be included in any redistribution
    ****************************************************/

    #ifndef ADAFRUIT_BMP085_H
    #define ADAFRUIT_BMP085_H

    #if (ARDUINO >= 100)
    #include "Arduino.h"
    #else
    #include "WProgram.h"
    #endif
    #include "Wire.h"

    #define BMP085_DEBUG 0

    #define BMP085_I2CADDR 0x77

    #define BMP085_ULTRALOWPOWER 0
    #define BMP085_STANDARD      1
    #define BMP085_HIGHRES      2
    #define BMP085_ULTRAHIGHRES  3
    #define BMP085_CAL_AC1          0xAA  // R  Calibration data (16 bits)
    #define BMP085_CAL_AC2          0xAC  // R  Calibration data (16 bits)
    #define BMP085_CAL_AC3          0xAE  // R  Calibration data (16 bits)  
    #define BMP085_CAL_AC4          0xB0  // R  Calibration data (16 bits)
    #define BMP085_CAL_AC5          0xB2  // R  Calibration data (16 bits)
    #define BMP085_CAL_AC6          0xB4  // R  Calibration data (16 bits)
    #define BMP085_CAL_B1            0xB6  // R  Calibration data (16 bits)
    #define BMP085_CAL_B2            0xB8  // R  Calibration data (16 bits)
    #define BMP085_CAL_MB            0xBA  // R  Calibration data (16 bits)
    #define BMP085_CAL_MC            0xBC  // R  Calibration data (16 bits)
    #define BMP085_CAL_MD            0xBE  // R  Calibration data (16 bits)

    #define BMP085_CONTROL          0xF4
    #define BMP085_TEMPDATA          0xF6
    #define BMP085_PRESSUREDATA      0xF6
    #define BMP085_READTEMPCMD          0x2E
    #define BMP085_READPRESSURECMD            0x34


    class Adafruit_BMP085 {
    public:
      Adafruit_BMP085();
      boolean begin(uint8_t mode = BMP085_ULTRAHIGHRES);  // by default go highres
      float readTemperature(void);
      int32_t readPressure(void);
      int32_t readSealevelPressure(float altitude_meters = 0);
      float readAltitude(float sealevelPressure = 101325); // std atmosphere
      uint16_t readRawTemperature(void);
      uint32_t readRawPressure(void);

    private:
      int32_t computeB5(int32_t UT);
      uint8_t read8(uint8_t addr);
      uint16_t read16(uint8_t addr);
      void write8(uint8_t addr, uint8_t data);

      uint8_t oversampling;

      int16_t ac1, ac2, ac3, b1, b2, mb, mc, md;
      uint16_t ac4, ac5, ac6;
    };


    #endif //  ADAFRUIT_BMP085_H
     
     
  8. oleg_kazakof

    oleg_kazakof Нуб

    Возможно ВЫ сможете мне помочь.

    Добрый день. Суть проблемы: подключил два датчика BMP180 к ардуине через мультиплексор, работают, но
    выдают верные показания только, если инициализация датчиков происходит при каждом обращении к конкретному датчику. Вопрос: судя по даташиту в датчиках стоит EEPROM (а как известно её ресурс ограничен), не могу найти внятного ответа на вопрос ПРОИСХОДИТ ЛИ ЗАПИСЬ в EEPROM при инициализации BMPшки.
     
  9. edcop

    edcop Нуб

    Приветствую всех. Подскажите, как для этой библиотеки вводить корректировку на высоту над уровнем моря? К примеру я живу на высоте 123 м., а датчик показывает -57м. И даввление показывает всегда выше чем механический барометр.
    Заранее благодарен.
     
    Последнее редактирование: 21 фев 2017