가속도 센서
사용한 가속도센서는 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 |