[STM32] 11. LPS22HB, 대기압 센서 제어하기(B-L475E-IOT01A1 개발보드 활용하기)

반응형

2022.04.12 - [Hardware&Firmware/STmicroelectronic(STM)] - [STM32] 10. HTS221, 온습도 센서 제어하기(B-L475E-IOT01A1 개발보드 활용하기)

 

[STM32] 10. HTS221, 온습도 센서 제어하기(B-L475E-IOT01A1 개발보드 활용하기)

https://vuzwa.tistory.com/entry/STM32-9-B-L475E-IOT01A1-%EA%B0%9C%EB%B0%9C%EB%B3%B4%EB%93%9C-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%ED%99%9C%EC%9A%A9%EB%B0%A9%EB%B2%95B-L475E-IOT01A1-%EA%B0%9C%EB%B0%..

vuzwa.tistory.com

 

 

 

이전포스팅에서는 HTS221 온도센서에 대해 알아봤다. 이번포스팅에서는 LPS22HB? HH? 센서에대해 알아보겠다!

 

대기압을 측정하는 센서로 스펙과 기능은 왼쪽 그림과 같다. 출처는 st 홈페이지 데이터시트, 260~1260 hPa 까지 측정이 가능하고 전류가 3uA란다..와..이게 가능한가...굿~

특별한건 없는것같다. 

 

기능은 여기까지 끝.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

핀 맵은 아래와 같다 

 

 

특이한건 없다. 아래 그림은 개발보드 회로도!

그럼 이제 코드를 작성해보자. 

#include "main.h"
#include "stdio.h"
#include "lps22hb.h"
#include "stm32l475e_iot01.h"

uint8_t id;
void application(void)
{
	id = LPS22HB_P_ReadID(LPS22HB_I2C_ADDRESS);
	while(1)
	{

	}
}

LPS22HB 헤더파일을 추가하고 미리 구현되어있는 ReadID 함수를 이용해 읽어보니 0xB1이나온다. 

 

 

그럼이제 센서를 초기화하고 대기압 값을 읽어 보자.

 

#include "main.h"
#include "stdio.h"
#include "lps22hb.h"
#include "stm32l475e_iot01.h"

float pressure;
void application(void)
{
	if(LPS22HB_WHO_AM_I_VAL == LPS22HB_P_ReadID(LPS22HB_I2C_ADDRESS))	{
		LPS22HB_P_Init(LPS22HB_I2C_ADDRESS);
	}
	else {
		while(1);
	}
	while(1)
	{
		pressure = LPS22HB_P_ReadPressure(LPS22HB_I2C_ADDRESS);
	}
}

 

 

아이디를 정상적으로 읽어오면 센서가 있다고 판단해 센서를 초기화한다. 아이디를 읽어오지 못하는 경우 무한루프를 돌림. 이부분은 알아서 처리해야겠죠? 두번째 while(1)문에서 센서값을 계속 읽어온다. 동작하는 영상을 올리려고 했는데 왜 동영상 업로드가 안돼지? 흠.. 궁금하면 다운받아보세요!

 

LPS22HB 센서 값.mp4
0.03MB

 

 

센서에서 읽어오는 값의 단위는 hPa(헥토파스칼)이다. 센서값을 읽어오기는 했는데...대기압?헥토파스칼? 이게 뭐지? 이건 다른 포스팅에서 ㅎㅎㅎㅎ

 

 

- 끝 -

반응형