Cảm biến áp suất không khí BMP180 đo áp suất của môi trường sử dụng áp kế số. Bằng cách chuyển đổi áp suất thành độ cao tương ứng, bạn có thể dùng cho việc xác định độ cao của robot, máy bay hay một vật thể được phóng lên cao.
Cảm biến áp suất không khí BMP180 có thể đo được áp suất trong dải 300 ~ 1100hPa, Thiết bị chỉ hoạt động với dòng điện nhỏ khoảng 0.3uA thích hợp cho các thiết bị sử dụng Pin.
Cảm biến đi kèm bộ hiệu chỉnh và sẵn sàng cho việc sử dụng. Giao tiếp chuẩn I2C đã có trở kéo lên sẵn trên board thuận tiện cho việc sử dụng. Sử dụng I2C, thiết bị cung cấp áp suất và nhiệt độ lên đến 16bits
THÔNG SỐ KỸ THUẬT
- Điện áp cung cấp: 1.8 ~ 3.6V
- Công suất tiêu thụ thập: 0.5uA tại 1Hz
- Giao tiếp chuẩn I2C
- Tốc độ I2C max: 3.5MHz
- Độ nhiễu rất thấp:: lên đến 0.02hPa (17cm)
- Có sẵn bộ hiểu chỉnh bên trong.
- Dải đo áp suất: 300hPa ~ 1100hPa (+9000m đến -500m)
- Trọng lượng: 1.18g
- Kích thước: 21mm x 18mm
SƠ ĐỒ KẾT NỐI CẢM BIẾN ÁP SUẤT KHÔNG KHÍ
————————–CODE THAM KHẢO————————–
/* ============================================ Kết nối: BMP180 UNO R3 MEGA VCC 3.3V 3.3V GND GND GND SCL A5 SCL SDA A4 SDA Nạp code chọn No line ending, baud 9600. =============================================== */ #include "Wire.h" #include "I2Cdev.h" #include "BMP085.h" BMP085 barometer; float temperature; float pressure; float altitude; int32_t lastMicros; #define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6) bool blinkState = false; void setup() { // join I2C bus (I2Cdev library doesn't do this automatically) Wire.begin(); Serial.begin(9600); Serial.println("Initializing I2C devices..."); barometer.initialize(); Serial.println("Testing device connections..."); Serial.println(barometer.testConnection() ? "BMP085 connection successful" : "BMP085 connection failed"); pinMode(LED_PIN, OUTPUT); } void loop() { barometer.setControl(BMP085_MODE_TEMPERATURE); lastMicros = micros(); while (micros() - lastMicros < barometer.getMeasureDelayMicroseconds()); temperature = barometer.getTemperatureC(); barometer.setControl(BMP085_MODE_PRESSURE_3); while (micros() - lastMicros < barometer.getMeasureDelayMicroseconds()); pressure = barometer.getPressure(); altitude = barometer.getAltitude(pressure); Serial.print("T/P/At"); Serial.print(temperature); Serial.print("t"); Serial.print(pressure); Serial.print("t"); Serial.print(altitude); Serial.println(""); blinkState = !blinkState; digitalWrite(LED_PIN, blinkState); delay(100); }