BMP180 adalah sensor tekanan barometrik (digital barometric pressure sensor) dan temperatur udara dari Bosch Sensortec yang berkinerja sangat tinggi yang dapat diaplikasikan pada berbagai perangkat. BMP180 lebih kecil (lebih hemat energi dengan konsumsi energi sangat rendah, kurang dari 3 μA), BMP180 juga menjadi menojol karena kinerjanya yang sangat stabil terlepas dari pasokan tegangan yang digunakan.
Blok Diagram BMP 180 |
Modul BMP 180 |
Spesifikasi dasar Modul BMP 180 antara lain sebagai berikut:
- Rentang tekanan: 300 s.d. 1100 hPa
- Antarmuka kendali: I2C (kecepatan transfer hingga 3,4 MHz)
- Resolusi: Tekanan = 0,01 hPa, Temperatur = 0,1 °C
- Rata-rata konsumsi arus (1 sampling / detik): 3μA pada mode hemat energi, 32μA pada moda resolusi tinggi
- Tipikal arus puncak: 650μA (0,65 mA)
- Konsumsi arus pada mode siaga: 0,1μA (tipikal)
- Catu daya: 1,8 - 3,6 Volt DC (VDD)
- Rentang suhu operasional: -40°C s.d. +85°C
- Waktu pendeteksian tekanan: 5 msec (tipikal pada moda standar)
Antarmuka I2C
Modul BMP 180 memiliki antarmuka I2C menggunakan dua kabel SDA (serial data) dan SCL (serial Clock) dengan frekuensi 3,4Mbps, pin SDA dan SCL membutuhkan pull-up resistor sebesar 4.7 KOhm. Pada antarmuka I2C ini, modul BMP 180 bertindak sebagai slave dengan alamat 0xEF untuk baca dan 0xEE untuk tulis. Semua perintah yang dikirim melalui antarmuka I2C diawali dengan start condition dan diakhiri dengan stop condition.
Pengukuran
|
Kontrol
Register
|
Max. Waktu
Konversi
(ms)
|
Temperatur
|
0x2E
|
4.5
|
Tekanan
(oss = 0)
|
0x34
|
4.5
|
Tekanan
(oss = 0)
|
0x74
|
7.5
|
Tekanan
(oss = 0)
|
0xB4
|
13.5
|
Tekanan
(oss = 0)
|
0xF4
|
25.5
|
Kalibrasi Koefisien
Setiap modul sensor memiliki nilai koefisien. Sebelum kalkulasi Tekanan dan Temperatur, Mikrokontroler perlu membaca data koefisien pada EEPROM. Ada 11 koefisien yang dapat dilihat pada tabel.
Pengukuran Tekanan dan Temperatur
Mikrokontroler mengirim sinyal start untuk pengukuran tekanan atau temperatur setelah konversi selesai data pengukuran temperatur dapat diambil pada register 0xF6 untuk MSB, 0xF7 untuk LSB yang terdiri dari 16 bit sedangkan data untuk tekanan dapat di ambil pada register 0xF6 untuk MSB, 0xF7 untuk LSB dan 0xF8 untuk XLSB data ini terdiri dari 16 bit s.d 19 bit tergantung dari Over Sampling Setting, untuk mendapatkan pengukuran yang sebenarnya dapat dilihat pada gambar.
Dengan mengetahui tekanan p dan tekanan di permukaan laut yaitu 1013,25 hPa maka altitude (tinggi permukaan) dapat dihitung. Perubahan tekanan Δp = 1hPa setiap perubahan altitude 8,43 m di permukaan laut.
Pengujian Sensor BMP 180
Pengujian ini bertujuan untuk mengetahui tegangan I2C, baik itu pin SCA maupun pin SDA.
Pada komunikasi I2C dibutuhkan rangkaian pull-up sebagai pendukung. Tegangan pada pin SDA dan SCL mendekati nilai Vin. Pada gambar, sinyal warna kuning menunjukkan sinyal data (SDA) sedangkan sinyal warna biru adalah sinyal clock (SCL). Ketika BMP 180 bekerja mendeteksi tekanan menggunakan metode piezo-resistive, besaran tekanan diubah kedalam besaran tahanan karena tahanan merupakan besaran elektrik maka tahanan diubah kedalam bentuk digital menggunakan ADC untuk selanjutnya nilai digital ini dikirim ke mikrokontroler untuk diolah. Panjang bit pengukuran dalam rentang 16-19 bit tergantung dari sampling. Sebenarnya data digital ini belum presisi, dibutuhkan perhitungan lanjutan agar nilainya presisi menggunakan nilai suhu dan nilai konstanta yang telah disimpan pada EEPROM BMP 180. Pada BMP 180 ada kontrol unit untuk mengontrol data masuk maupun data yang akan keluar atau bisa dianalogikan sebagai gerbang.
Setiap modul sensor memiliki nilai koefisien. Sebelum kalkulasi Tekanan dan Temperatur, Mikrokontroler perlu membaca data koefisien pada EEPROM. Ada 11 koefisien yang dapat dilihat pada tabel.
Parameter
|
MSB
|
LSB
|
AC1
|
0xAA
|
0xAB
|
AC2
|
0xAC
|
0xAD
|
AC3
|
0xAE
|
0xAF
|
AC4
|
0xB0
|
0xB1
|
AC5
|
0xB2
|
0xB3
|
AC6
|
0xB4
|
0xB5
|
B1
|
0xB6
|
0xB7
|
B2
|
0xB8
|
0xB9
|
MB
|
0xBA
|
0xBB
|
MC
|
0xBC
|
0xBD
|
MD
|
0xBE
|
0xBF
|
Pengukuran Tekanan dan Temperatur
Mikrokontroler mengirim sinyal start untuk pengukuran tekanan atau temperatur setelah konversi selesai data pengukuran temperatur dapat diambil pada register 0xF6 untuk MSB, 0xF7 untuk LSB yang terdiri dari 16 bit sedangkan data untuk tekanan dapat di ambil pada register 0xF6 untuk MSB, 0xF7 untuk LSB dan 0xF8 untuk XLSB data ini terdiri dari 16 bit s.d 19 bit tergantung dari Over Sampling Setting, untuk mendapatkan pengukuran yang sebenarnya dapat dilihat pada gambar.
Algoritma Pengukuran Tekanan dan Temperatur |
Altitude Diatas Permukaan Laut |
Pengujian Sensor BMP 180
Pengujian ini bertujuan untuk mengetahui tegangan I2C, baik itu pin SCA maupun pin SDA.
Hasil Pengukuran BMP 180 |
Bagaimana cara mengukur tegangan SDA, SCA dengan osiloskop?
ReplyDelete