음 지난 포스팅 이후 정신없는 시간을 보내면서 포스팅을 이어나가지 못했다. 이제 조금(?) 여유가 생겨 포스팅을 이어 나가보려고 한다.
지난 포스팅은 대기압 센서 제어.
[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://vuzw
vuzwa.tistory.com
이번 포스팅에서 다룰 센서는 LIS3MDL, 자기 계(Magnetometer) 센서다. 센서 주변의 자기장이나 자기 모먼트를 측정하는 센서다. 센서의 정확한 정의는 아래 위키백과 링크 참고하기 바란다. https://ko.wikipedia.org/wiki/%EC%9E%90%EA%B8%B0%EA%B3%84
자기계 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. -->
ko.wikipedia.org
가장 대표적으로 사용되는 곳이 스마트폰이다. 스마트폰에서 나침반 기능이 가장 대표적이고, 금속물체를 탐지하는 기계에 사용된다. 센서에 대해 설명을 다루는 포스팅이 아니기 때문에 센서에 대한 내용은 이 정도로 마무리하고 센서를 제어하는 방법을 확인해 보도록 하겠다
우선 개발보드에서 제공하는 드라이버를 가져와야한다. 아래링크 참고
[STM32] 9. B-L475E-IOT01A1 개발보드 드라이버 활용방법(B-L475E-IOT01A1 개발보드 활용하기)
2022.04.08 - [Hardware&Firmware/STmicroelectronic(STM)] - [STM32] 8. UART(B-L475E-IOT01A1 개발보드 활용하기), HAL 드라이버, LL 드라이버 [STM32] 8. UART(B-L475E-IOT01A1 개발보드 활용하기), HAL 드라이버, LL 드라이버 https://vu
vuzwa.tistory.com
이 드라이버는 B-L475E-IOT01A1에서만 사용할 수 있는건 아니다. I2C 부분만 수정해주면 어느 MCU에서든 사용 가능하다.
코드는 아래와 같다.
#include "main.h"
#include "stm32l475e_iot01_hsensor.h"
#include "stm32l475e_iot01_magneto.h"
#define HTS221_DEVICE_ID 0x5F<<1
float temp;
float humi;
int16_t magneto[3];
void application(void)
{
while(HSENSOR_OK != BSP_HSENSOR_Init());
while(MAGNETO_OK != BSP_MAGNETO_Init());
while(1)
{
temp = HTS221_T_ReadTemp((uint16_t)HTS221_DEVICE_ID);
humi = HTS221_H_ReadHumidity((uint16_t)HTS221_DEVICE_ID);
LIS3MDL_MagReadXYZ(magneto);
}
}
이전에 제어했던 온습도 센서 부분도 일부수정을 했다. LIS3MDL_MagReasXYZ 함수를 이용해 센서의 값을 가져온다.
- 끝 -
'Hardware&Firmware > STmicroelectronic(STM)' 카테고리의 다른 글
STM32CubeIDE에서 개발환경 C or C++로 전환하기 (1) | 2024.11.22 |
---|---|
STM32CubeIDE에서 Terminal 프로그램 사용하기 (0) | 2022.11.11 |
ST Link V3 리뷰, 사용법, 후기 (0) | 2022.07.14 |
STM32 MCU 전원회로설계 가이드 및 주의사항 (0) | 2022.06.27 |
[STM32] 11. LPS22HB, 대기압 센서 제어하기(B-L475E-IOT01A1 개발보드 활용하기) (0) | 2022.04.15 |