Cảm biến áp suất 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 có thể đo được áp suất trong dải 300 ~ 1100hPa 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 BMP180 đi kèm bộ hiệu chỉnh và sẵn sàng cho việc sử dụng, cảm biến có giao tiếp chuẩn I2C và có trở kéo sẵn trên board.
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ơ đồ chân:
Code tham khảo Arduino:
/* ============================================ 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); }
Tài liệu tham khảo:
Video tham khảo: