BMP180은 BMP085의 상위모델로 기압센서입니다. 기압 측정값을 이용해서 고도로 변환이 가능합니다.
□ BMP180
4 pin |
5 pin |
|
□ BMP180 특징(Specification)
항목 |
범위 | 분해능력 | 오차 |
압력 (Pressure range) |
300 ~ 1100 hPa | 0.01 hPa | ± 0.02 hPa ( 약 0.17 m 고도 오차 ) |
온도 |
-40 ~ 85 도(C) | 0.1 도 |
□ BMP180 아두이노 회로 구성도( BMP180 Arduino circuit diagram )
□ BMP180 와 아두이노 Pin 배열( BMP180 Arduino PIN Mapping )
BMP180 4 pin | BMP180 5 pin |
비고(Remark) | ||
Pin 배열 |
Arduino |
Pin 배열 |
Arduino |
|
SCL |
A5(SCL) |
SDA |
A4(SDA) |
|
SDA |
A4(SDA) |
SCL |
A5(SCL) |
|
VIN |
+5V | GND | GND | |
GND |
GND |
VDD |
+3.3V (Only) |
|
VDDIO |
N/A |
I/O voltage |
※ VDD : 5 pin의 경우 3.3V 연결
VDDIO : 특수 저전력 microprocessor용으로, 아두이노의 경우 별도 연결 필요없음
( VDD : Connect the power pins (+ and -) ONLY to a 3.3V supply.
VDDIO : Leave disconnected unless you're connecting to a lower-voltage microprocessor )
□ BMP180 통신 프로토콜
□ BMP180 Sample Source
- 기본 라이브러리(Basic Library)
- Sample 1
#include <Wire.h> #include <Adafruit_BMP085.h> void setup() { Serial.begin(9600); BMP180init(); }
void loop() { BMP180exec(); delay(1000); } Adafruit_BMP085 bmp; void BMP180init() { if (!bmp.begin(BMP085_ULTRAHIGHRES)) { Serial.println("BMP180 센서를 찾을 수 없습니다. 연결을 확인해 주세요!"); } }
void BMP180exec() { float Ftemperature = 0.0; // 온도 측정 값 float Fpressure = 0.0; // 기압 측정 값 float Faltitude = 0.0; // 고도 측정 값
Ftemperature = bmp.readTemperature(); Fpressure = bmp.readPressure(); Faltitude = bmp.readAltitude( 100560 ); // 101560 : 서울 해면기압, 101325 : 표준기압 char CAtemperature [20] = ""; char CApressure [20] = ""; char CAaltitude [20] = ""; char CAbuffer [254] = ""; dtostrf( Ftemperature, 10, 2, CAtemperature ); dtostrf( Fpressure , 10, 2, CApressure ); dtostrf( Faltitude , 10, 2, CAaltitude );
// 온도 압력 고도 sprintf( CAbuffer, "Temp(C): %s\tPres(PA): %s\tAlt(M): %s", CAtemperature, CApressure, CAaltitude ); Serial.println( CAbuffer ); // TEST //Serial.print( "temp(C): " ); Serial.print ( Ftemperature ); //Serial.print( "\tpres(Pa): " ); Serial.print ( Fpressure ); //Serial.print( "\talti(M) : " ); Serial.println( Faltitude ); }
|
- Sample 2
#include <Wire.h>
void BMP180init() { temperature = bmp.readTemperature(); /*
|
- Sample 3
/*************************************************** int index = 0; // 현재 센서값을 넣어야 할 인덱스
void BMP180init() { totalTemperature = totalTemperature - temperatures[index];
/* }
|
'아두이노 > 센서' 카테고리의 다른 글
I2C Address (0) | 2014.11.21 |
---|---|
801s : 진동센서 (0) | 2014.11.20 |
복합 센서 (0) | 2014.11.19 |
GP2Y1010AU0F : 먼지 센서 (0) | 2014.11.18 |
Piezo Disk Sensor (0) | 2014.11.18 |