안녕하세요 디바이스마트 입니다
이번 시간엔 3축 가속 모듈 !!
가속도 센서에 대해 알아보도록 하겠습니다
"
가속도 센서란?
"
가속도 센서는 말 그대로 가속도를 측정하는 센서로,
X, Y, Z축에 대해 각각의 가속도를 측정해주는 센서입니다.
따라서 가속도 센서를 이용하면 움직임, 기울기 등 여러가지
측정이 가능하며, 그 예시로 스마트폰 화면 회전이 있습니다
따라서 이번 시간엔 3축 가속 모듈을 통해
기울기를 감지하는 방법에 대해 포스팅 해보겠습니다 ~
WK ADXL345 3축 가속도 센서 모듈
[WK-ADB-K07-25]
▼스펙▼
정격전압 : 5V
인터페이스 : IC2
칩셋 : ADXL345
크기 : 30 * 23mm
아두이노 우노와 쉴드 사용법을 모를 경우 !
🔼클릭🔼
1. 회로도 & 배선도
2. 코드 예제
#include <Wire.h>
#define I2C_Address 0x53
#define POWER_CTL 0x2D
#define DATA_FORMAT 0x31
#define X_axis 0x32
#define Y_axis 0x34
#define Z_axis 0x36
#define Range_2g 0
#define Range_4g 1
#define Range_8g 2
#define Range_16g 3
void setup() {
Wire.begin();
Serial.begin(9600);
Init_ADXL345(Range_2g);
}
void loop() {
if(Read_Axis(Z_axis)< -100){
Serial.print("뒤집어짐");
}
else if(Read_Axis(Y_axis) < -50){
Serial.print("우로 기울어짐");
}
else if(Read_Axis(Y_axis) > 50){
Serial.print("좌로 기울어짐");
}
else if(Read_Axis(X_axis) > 50){
Serial.print("앞으로 기울어짐");
}
else if(Read_Axis(X_axis) < -51){
Serial.print("뒤로 기울어짐");
}
else if(Read_Axis(X_axis) > -50 && Read_Axis(Y_axis) > -20 && Read_Axis(Y_axis) < 20 && Read_Axis(Z_axis) > 200){
Serial.print("정상입니다.");
}
Serial.print(" ");
Serial.print("X: ");
Serial.print(Read_Axis(X_axis));
Serial.print(" Y: ");
Serial.print(Read_Axis(Y_axis));
Serial.print(" Z: ");
Serial.print(Read_Axis(Z_axis));
Serial.println();
delay(1000);
}
int Read_Axis(byte a){ //IC2 통신으로 값 받아오기
int data;
Wire.beginTransmission(I2C_Address);
Wire.write(a);
Wire.endTransmission();
Wire.beginTransmission(I2C_Address);
Wire.requestFrom(I2C_Address, 2);
if(Wire.available()){
data=(int)Wire.read();
data=data|(Wire.read()<<8);
}
else{
data=0;
}
Wire.endTransmission();
return data;
}
void Init_ADXL345(byte r){
Wire.beginTransmission(I2C_Address);
Wire.write(DATA_FORMAT);
Wire.write(r);
Wire.endTransmission();
Wire.beginTransmission(I2C_Address);
Wire.write(POWER_CTL);
Wire.write(0x08);
Wire.endTransmission();
}
▲
위 예제는 가속도 센서를 통해 기울기를 감지 하는 예제입니다
IC2 통신으로 각각 X,Y,Z 가속도를 측정하고,
조건문을 통해 기울기를 방지하는 방식입니다
ㅑㅊ
지금까지 3축 가속 모듈에 대해 실습 해 보았습니다
위 예제를 참고해서 여러가지 방식으로
작동해보시길 바랍니다
그럼 저는 다음 센서/모듈 포스팅으로 돌아오겠습니다 !!
0 댓글