가속도 센서
사용한 가속도센서는 ADXL335로
3축(x,y,z축) ±3g 측정가능하다.
datasheet를 참고 하면
전원은 3V를 사용 (유의 해야한다. 아두이노의 3.3V를 사용하면된다.)
각 축이 0g상태에서는 1.5V를 출력하고
±1g 마다 ±300mV로 가감하여 출력한다.
실제로 자연 상태는 1g로
센서의 각 축을 -90도와 90도로 기울리면
각각 -1g와 1g가 측정할수 있다.
즉 (x축만 정리하면)
x축이 중력방향으로 기울면 (90도, 지표의 수직아래) |
1g상태 |
x축 단자에서 1.8V출력 |
x축이 중력방항과 수직이면 (0도, 지표와 수평) |
0g상태 |
x축 단자에서 1.5V출력 |
x축이 중력방향과 반대방향으로 기울면 (-90도, 지표의 수직위) |
-1g상태 |
x축 단자에서 1.2V출력 된다. |
=> 1g 방향과 각도, -1g 방항과 각도는 반대일수도....
실제 스케치후 출력되는 전압을 테스터로 찍어본결과
1g / 0g / -1g에서
1.9V / 1.58V/ 1.26V 로 측정되었다.
(datasheet 에서의 오차 범위에서 측정됨.)
센서의 출력된 값을
아두이노에서 아날로그 핀으로 입력을 받아 처리된 값을 계산해보면
입력받은 0~5V를 0~1023값으로 표현하므로
0g에서 센서가 1.5V를 출력한다면
아두이노에서는 1.5V를 입력받아
(1.5/5)*1024 = 307.2 로 처리될것으로 계산된다.
따라서 정리하면
각도 |
가속도 |
측정한 출력전압 |
아두이노 아날로그값 계산 |
실제 아두이노에서 아날로그로 입력값 |
90 |
1g |
1.9V |
(1.9/5)*1024 = 389.12 |
407 |
0 |
0g |
1.58V |
(1.58/5)*1024 = 323.58 |
338 |
-90 |
-1g |
1.26V |
(1.26/5)*1024 = 258.04 |
270 |
=> 계산된 값과 12~18정도 차이를 보임(왜????...)
결국 -1g ~ 1g를 x축은 270~407로 표현하므로 이값을 이용 각도로 표현이 가능하겠다
(각도로 표현 하는 것은 다음글에서 정리...)
센서 연결 회로도
가속도센서값을 받기 위한 스케치
-----------------------------------------------------------------------------
int x,y,z;
void setup(){
Serial.begin(9600);
}
void loop(){
x = analogRead(0);
y = analogRead(1);
z = analogRead(2);
Serial.print("x : ");
Serial.print(x);
Serial.print(" ");
Serial.print("y : ");
Serial.print(y);
Serial.print(" ");
Serial.print("z : ");
Serial.println(z);
delay(100);
}
-----------------------------------------------------------------------------
입력 받은 센서값(x:0g / y:0g / z:1g)
'아두이노_프로세싱 > 아두이노' 카테고리의 다른 글
LCD쉴드 + 가속도센서 각도 측정 (0) | 2013.06.28 |
---|---|
가속도 센서로 각도 측정 (1) | 2013.06.28 |
LCD 쉴드 자작 (0) | 2013.04.25 |
말하는 도트매트릭스 (2) | 2012.12.22 |
xbee 통신 + 기울기센서로 모터제어 (3) | 2012.08.29 |