본문 바로가기

아두이노+랩뷰 컴파일러 - ADXL335 가속도계 연결

반응형

스마트폰에서 게임을 하거나 페이지를 크게 보기 위해서 가로로 보기도 한다. 스마트폰을 회전 시키면 센서가 이것을 인식해서 화면을 가로에 맞는 해상도로 변환해준다.어느 정도 기울여져있지?? 세로로 되어 있나?? 가로로 되어있나?? 이런 것을 감지하는 것이 가속도센서나 자이로센서다. 오늘은 ADXL335 가속도센서와 아두이노를 연결해보겠다. 전에는 I2C통신으로 연결했다면 오늘은 전압값을 바로 받아서 시리얼포트로 출력값을 확인한다.또한 어느정도 기울여져 있는지를 인식해서 그 값에 해당할 때는 13번 LED가 켜져있고, 그 값을 벗어났을 떄는 껴지는 것도 확인해본다



[준비물]

아두이노 우노&USB 케이블

ADXL335 가속도계

점퍼케이블 5개


[연결방법]




[블럭다이어그램]

1. Pin Mode.vi 를 호출해서 디지털핀을 아웃풋으로 설정

2. 디버깅을 위해 시리얼 포트를 열고 가속도계의 데이터를 전송

3. Analog Read.vi를 사용해 X축 채널로 부터 전압입력을 받는다  

4. Analog Read.vi를 사용해 Y축 채널로 부터 전압입력을 받는다

5. Analog Read.vi를 사용해 Z축 채널로 부터 전압입력을 받는다

6. 아두이노가 10비트 해상도를 가지고 있으므로 거기에 맞춰서 5V를 1024 눈금으로 나눠서 사용한다. 비록 3.3V 센서를 사용하지만 5V표준 전압을 사용한다. (5V/1024 counts) * input = 0.004882814 * input

7. 대략적인 중간 정도의 전압인 0g 바이어스 레벨이나 1.65V(데이터시트참조)를 빼준다.

8. x/y/z 가속을 라디안 단위로 roll and pitch 값으로 변환한다.

9. 라디안값을 각도(Degrees)로 변경한다.

10. Roll and pitch의 값이 정해놓은 최소값과 최상값에 따라 반응하는지 확인하라. 어떤 저항에 상대적으로 평행을 유지하고 있다는 것 나타낸다. 센서를 회전시켜 정해진 값을 벗어나면 LED는 꺼질 것이다. 

11. LED가 켜지면 roll and pitch가 지정된 범위에 있는 것이며, 그 값을 벗어나면 LED는 꺼질 것이다.

12. 디버깅이 켜져있으면 x/y/z accelerometer voltages과 roll and pitch값을 시리얼 포트로 보낸다.

13. 무한반복


NOTE: 에러와이어는 플로우컨트롤을 위한 것 뿐이며, 클러스터 안의 데이터는 아두이노 타겟에 접속하거나 쓸 수 없다.


[프런트패널]

프런트 패널은 이하와 같다. X,Y,Z핀 지정 및 Roll and Pitch값 계산을 위해 lower limit(deg)와 upper limit(deg)값을 입력한다. 


[시리얼포트]

컴파일러창의 위쪽에 빨간색 사각형으로 표시한 시리얼모양을 클릭한다.

아래 그림과 같이 X,Y,Z 값과 Roll,Pitch 값이 출력됨을 알 수 있다.


반응형
-->