본문 바로가기

개발자/Arduino

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

반응형

 

 

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

 

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

귀사가 성공하기까지의 긴 고난의 시간을 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩