3축 아날로그 자이로 모듈 -ENC03
(3-Axis Analog Gyro Module-ENC03)
개요
- 본 제품은 무라타사의 ENC-03 칩을 기반으로 디자인된 자이로 센서입니다.
- 위치 제어 등의 빠른 움직임 측정이 필요한 어플리케이션에 사용이 가능합니다.
- 세 개의 ENC-03이 장착되어 있어 3축 각속도 출력(아날로그 전압 출력)을 제공합니다.
특징
- Supply Voltage: 2.7V~5.25V DC
- Resonance Frequency: 30.8 kHz
- Max Angular Velocity: +/-300 Degree
- Output (at Angular Velocity=0): 1.35 V DC
- Scale Factor: 0.67 mV/deg/sec.
- Linearity: +/-5%;
문서
- ENC-03 Datasheet
- ENC-03 Introduction on bsiswoyo
- 아두이노와 아래와 같이 핀을 결선합니다.
- 5V-5V, Gnd-Gnd, X-A0, Y-A1, Z-A2
-
int X_Axis = A0; // select the input pin for the sensor
int Y_Axis = A1;
int Z_Axis = A2;
float X_reference_Value=0;
float Y_reference_Value=0;
float Z_reference_Value=0;
int X_Axis_Value = 0; // variable to store the value coming from the sensor
int Y_Axis_Value = 0;
int Z_Axis_Value = 0;
void setup() {
int i;
float X_sum=0,Y_sum=0, Z_sum=0;
pinMode(X_Axis, INPUT);
pinMode(Y_Axis, INPUT);
pinMode(Z_Axis, INPUT);
Serial.begin(9600);
Serial.println("Please do not rotate it before calibrate!");
Serial.println("Get the reference value:");
for(i=0;i<1000;i++)
{
// read the value from the sensor:
X_Axis_Value = analogRead(X_Axis);
Y_Axis_Value = analogRead(Y_Axis);
Z_Axis_Value = analogRead(Z_Axis);
X_sum += X_Axis_Value;
Y_sum += Y_Axis_Value;
Z_sum += Z_Axis_Value;
delay(5);
}
X_reference_Value = X_sum/1000.0;
Y_reference_Value = Y_sum/1000.0;
Z_reference_Value = Z_sum/1000.0;
Serial.print("reference_Value: ");
Serial.print("X:");
Serial.print(X_reference_Value);
Serial.print(" Y:");
Serial.println(Y_reference_Value);
Serial.print(" Z:");
Serial.println(Z_reference_Value);
Serial.println("Now you can begain your test!");
}
void loop()
{
double X_angularVelocity,Y_angularVelocity,Z_angularVelocity;
X_Axis_Value = analogRead(X_Axis);
Y_Axis_Value = analogRead(Y_Axis);
Z_Axis_Value = analogRead(Z_Axis);
X_angularVelocity =((double)(X_Axis_Value-X_reference_Value)*4930.0)/1023.0/0.67; //get the angular velocity
Y_angularVelocity =((double)(Y_Axis_Value-Y_reference_Value)*4930.0)/1023.0/0.67;
Z_angularVelocity =((double)(Z_Axis_Value-Z_reference_Value)*4930.0)/1023.0/0.67;
Serial.print("angularVelocity: ");
Serial.print("X:");
Serial.print(X_angularVelocity);
Serial.print("deg/s");
Serial.print(" Y:");
Serial.print(Y_angularVelocity);
Serial.print("deg/s");
Serial.print(" Z:");
Serial.print(Z_angularVelocity);
Serial.print("deg/s");
Serial.println(" ");
delay(500);
} - 위의 예제 코드를 아두이노에 올리고 나면 센서를 보정하여야 합니다.
- 코드를 올리고 센서를 수평방향으로 놓습니다.
- 그 후 아두이노의 리셋버튼을 누르고 시리얼 모니터 창을 엽니다.
- 위와 같이 테스트를 할 수 있다는 화면이 나오면 보정이 된 것입니다.
- 테스트 메세지 아래나오는 결과 값은 센서를 다음과 같이 돌려서 각속도를 측정된 결과값입니다.