개발자/Arduino

LPS22HB 압력 센서 아두이노 실습하기

지구빵집 2021. 10. 6. 19:18
반응형

 

 

ARDUINO AND LPS22HB ABSOLUTE PRESSURE SENSOR EXAMPLE 

 

가을이 쏴 몰려온다. 노랑, 주황10월 부터 대면수업이 가능해 지고 학교는 부쩍 아이들이 많아졌다. 지금 이 순간보다 더 좋은 때는 이전에도 없었고, 앞으로도 오지 않는다. 강의실을 변경해 대면수업을 진행하기로 한다. 가장 아름답고 건강하고 푸르디 푸른 시절을 지내는 아이들에게 계절따위가 무어그리 대수인가? 계절은 지루하고 지루하게 일상을 사는 어른들이 하다 하다 못해 계절에게까지 의미를 부여하는 일을 만들어 준다. 

 

"가을이 좋다고 생각하니 갑자기 주체할 수 없을 정도로 가을이 좋아졌다. 누렇게 떡잎 진 나뭇잎이 길바닥에 뒹구는 것도 좋았고, 노란 잔디가 시들고 엉성하게 꺾어져 가는 모습도 못 견디게 좋았다. 그리고 그것들 위에 떠 있는 그 말간 하늘이며 흰 구름은 가을에만 있는 것 같아서 보다 소중스러웠다." 손소희 / 그 해 가을 중

 

짧은 단어를 쓸 수 있을 때는 절대 긴 단어를 쓰지 않는다. 빼도 지장이 없는 단어가 있을 경우에는 반드시 뺀다. 능동태를 쓸 수 있는데도 수동태를 쓰는 경우는 절대 없도록 한다. - 조지 오웰   

 

아두이노에서 LPS22HB 압력센서 모듈을 테스트 하는 글입니다. 여기서는 절대 압력 센서를 살펴봅니다. LPS22HB는 디지털 출력 기압계로 작동하는 초소형 압저항 절대 압력 센서입니다. 이 장치는 감지 소자와 I2C 또는 SPI 인터페이스를 통해 감지 소자에서 애플리케이션으로 통신하는 I2C 인터페이스로 구성됩니다.

 

절대압을 감지하는 센싱 요소는 ST가 개발한 전용 공정을 통해 제조된 부유 멤브레인으로 구성됩니다. LPS22HB는 풀 몰드, 홀드 LGA 패키지(HLGA)로 제공됩니다. -40°C ~ +85°C의 온도 범위에서 작동이 보장됩니다. 패키지는 외부 압력이 감지 요소에 도달할 수 있도록 구멍이 뚫려 있습니다. 

 

ARDUINO AND LPS22HB ABSOLUTE PRESSURE SENSOR EXAMPLE 

 

스펙을 간단하게 알아보면 다음과 같다.

 

  • Features 260 to 1260 hPa absolute pressure range
  • Current consumption down to 3 μA
  • High overpressure capability: 20x full-scale
  • Embedded temperature compensation
  • 24-bit pressure data output
  • 16-bit temperature data output
  • ODR from 1 Hz to 75 Hz
  • SPI and I²C interfaces
  • Embedded FIFO
  • Interrupt functions: Data Ready, FIFO flags, pressure thresholds
  • Supply voltage: 1.7 to 3.6 V
  • High shock survivability: 22,000 g 

 

연결도는 아래 그림과 같다. 연결은 I2C 인터페이스로 연결한다.

 

연결도 http://arduinolearning.com/code/arduino-and-lps22hb-absolute-pressure-sensor-example.php

 

아래 실습코드에서 사용하는 라이브러리는 IoThings Arduino Library for LPS22HB MEMS Pressure Sensor (260-1260 hPa) Absolute Digital Barometer Breakout 라이브러리를 사용합니다. 물론 더 간단하고 쉬운 라이브러를 구하거나 직접 아두이노 IDE에서 라이브러리 설치가 가능한지도 알아봐야 한다.

 

 

/***************************************************************************
This is a library for the LPS22HB Absolute Digital Barometer
Designed to work with all kinds of LPS22HB Breakout Boards
These sensors use I2C, 2 pins are required to interface, as this :
VDD to 3.3V DC
SCL to A5
SDA to A4
GND to common groud
Written by Adrien Chapelet for IoThings
***************************************************************************/
#include <Wire.h>
#include "IO_LPS22HB.h"

IO_LPS22HB lps22hb;

void setup()
{
    Serial.begin(9600);
    Serial.println("IoThings LPS22HB Arduino Test");
    lps22hb.begin(0x5D);
    byte who_am_i = lps22hb.whoAmI();
    Serial.print("Who Am I? 0x");
    Serial.print(who_am_i, HEX);
    Serial.println(" (expected: 0xB1)");
    if (who_am_i != LPS22HB_WHO_AM_I_VALUE) 
    {
        Serial.println("Error while retrieving WHO_AM_I byte...");
        while (true) 
        {
            // loop forever
        }
    }
}

void loop()
{
    Serial.print("P=");
    Serial.print(lps22hb.readPressure());
    Serial.print(" mbar, T=");
    Serial.print(lps22hb.readTemperature());
    Serial.println("C");
    delay(300);
}

 

시리얼 모니터를 열어 결과를 확인하면 아래와 같다.

 

IoThings LPS22HB Arduino Test
Who Am I? 0xB1 (expected: 0xB1)
P=982.52 mbar, T=18.21C
P=982.56 mbar, T=18.25C
P=982.51 mbar, T=18.26C
P=982.52 mbar, T=18.27C
P=982.54 mbar, T=18.27C
P=982.55 mbar, T=18.27C
P=982.51 mbar, T=18.26C
P=982.55 mbar, T=18.26C
P=982.55 mbar, T=18.26C

 

LPS22HB 센서 데이터쉬트를 올려둔다.

 

lps22hb.pdf
1.46MB

 

 

 

 

반응형