가속도 센서로 각도를 측정하여

자작한 LCD쉴드에 출력

 

serial모니터로 출력하여 측정된값을

컴퓨터로 출력하여 확인하지 않고

아두이노에 LCD를 부착하여 측정값을 바로

확인할수 있도록 하였다.

 

LCD쉴드 http://eskelt.tistory.com/78  글 참고

가속도센서 http://eskelt.tistory.com/79 글 참고

가속도센서로 각도측정 http://eskelt.tistory.com/80 글 참고

 

소스 스케치

============================================================================

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
float x,y,z;

void setup(){
  lcd.begin(16, 2);
}

void loop(){
 
  x = analogRead(0);
  y = analogRead(1);
  z = analogRead(2);
 
  float xsintheta = constrain(mapinfloat(x,268,406,-1,1),-1,1);
  float ysintheta = constrain(mapinfloat(y,267,406,-1,1),-1,1);
  float zsintheta = constrain(mapinfloat(z,275,412,-1,1),-1,1);
 
 
 
  float xtheta = asin(xsintheta)*180/PI;
  float ytheta = asin(ysintheta)*180/PI;
  float ztheta = asin(zsintheta)*180/PI;
 
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("x: ");
  lcd.setCursor(5,0);
  lcd.print(xtheta);
 
  lcd.setCursor(0,1);
  lcd.print("y: ");
  lcd.setCursor(5,1);
  lcd.print(ytheta);
 
  delay(100); 
}

float mapinfloat(float i, float imin,float imax, float omin, float omax){
  float o = (i-imin)*(omax-omin)/(imax-imin) + omin;
  return o;
}

============================================================================

 

작동 영상

영상에서는 x축만 출력하였다.

참고로 -70~70도 사이에서는 비교적 정확하게 측정되나

-70과 70도를 벗어나면서 정확한 값을 측정하기 어려움.

 

+ Recent posts