로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Sensor Applications
아듀이노 공개소스
작성자 avrtools™        
작성일 2011/09/09
첨부#1 ADXL335.pdf (425KB) (Down:434)
ㆍ추천: 0  ㆍ조회: 3560   
  3축 가속도 센서 ADXL335
목적 : ADXL335 가속도 센서의 읽기
참조 : http://www.electronicsblog.net/
 
3축 가속도 센서 ADXL335 모듈
 
 
3축 가속도 센서 ADXL335 모듈의 회로
 
 
3축 가속도 센서 ADXL335 규격
검출 범위 (Full Sscale) = 3 g(중력 가속도)
출력 = 아날로그
AXIS = 3축
응답 속도 (대역폭) = 1600 (x/y), 550 (z) Hz/max
소비 전력 = 350 uA at 1.8V ~ 3.6V
추가 기능 = 자체 시험기능 있음 (ST는 Self  Test 핀)
 
3축 가속도 센서 ADXL335의 설명 
ADXL335는 아날로그디바이스 사의 아날로그를 출력하는 3축 가속도 센서이다.
ADXL335 센서 규격은 첨부 파일 #1을 참조 하세요.
 
ADXL335 센서의 측정범위는 ±3 g 이다.
전원 전압은 1.8 -  3.6 V 이며, 모든 규격은 3.0 V의 측정값이다.
이 가속도계는 3개의 출력을 가속도에 비례하는 전압으로 출력한다.

가속도 0g 에서 전원전압의 1/2 이 출력된다.
만일 전원 전압이 3V 이면, 출력은 1.5V 이고, 출력 감도는 300 mV/g 즉 0.3 V/g 이다
 
3축 가속도계의 아듀이노 회로
ADXL335를 아듀이노 기판에 연결하는 방법은 간단하다. 가속도계의 전원은 아듀이노 기판의 3.3V를 센서에 공급할 수도 있다.
그러나 데이터는 3.0V의 값이므로 중심값이 틀리다. 그래서 LM317을 사용하여 3.0V를 센서에 공급한다.
3.0V 중심전압을 3.3V로 환산하여, 소스의 상수를 바꾸어 주면 3.3V로 작동이 되는데, 구태여 3V를 공급할 필요는 없다.  
 
출력 X,Y,Z 축은 아듀이노의 아날로그 입력에 각각 연결한다.
 

센서를 뒤집어 지구인력(gravity) 방향으로 움직인 결과는 Z축의 출력이 -1g로 나온다.
  

이 프로그램은 3축의 가속도 값을 단순하게 직렬포트로 송신하지 않습니다.
가속도계는 X,Y,Z 축을 중심으로 주위를 회전한 값으로 계산합니다.
 
 
0 g 전압은 1.569 V로 간단히 교정을 합니다. 표준감도인 300 mV/g 즉 0.3 V/g를 사용하여 감도를 계산합니다.
중심값 상수는 센서 모듈을 수평으로 놓고, 3.3V 전원으로 X,Y,Z 출력을 측정하면 3V LDO를 생략할 수 있다.  
#define ADC_ref 2.56
#define zero_x 1.569  // 3.3V 에서는 1.650을 사용 
#define zero_y 1.569  // 3.3V 에서는 1.650을 사용
#define zero_z 1.569  // 3.3V 에서는 1.800을 사용


감도는 규격을 보면, 전원전압에 의존해서 센서의 감도가 동기되는 방식이므로 0.33으로 사용하면 가능함.
(감도를 무조건 0.3 이나 0.33으로 사용하는 것도 문제이니, 다시 확일할 필요가 있습니다)
#define sensitivity_x 0.3  // 2.7~ 3.3 범위에서 교정이 필요함
#define sensitivity_y 0.3  // 2.7~ 3.3 범위에서 교정이 필요함
#define sensitivity_z 0.3  // 2.7~ 3.3 범위에서 교정이 필요함

아듀이노 기판의 3.3V를 센서 전원으로 사용하는 회로
 
 
기판의 5V 전원은 불안정하므로, ADC의 기준전압 AREF 전압은 내부 기준전압 2.56V를 사용합니다.
초기화 함수에서 아날로그 기준을 2.56V로 설정하고, 직렬포트의 통신속도는 256000으로 설정합니다.
void setup()   {   // 아듀이노 초기화 시작
analogReference(INTERNAL2V56);  // AREF는 내부 2.56V로 설정
Serial.begin(256000);  // 직렬통신 속도는 256000으로 설정
}  // 아듀이노 초기화 끝
 
주함수에서 A/D 변환기는 3개의 채널을 각각의 X,Y,Z 축에 사용합니다.
void loop() {  // 아듀이노 주함수의 자동반복을 시작한다.
value_x = analogRead(0);  // A0 핀의 아날로그 전압을 읽는다
value_y = analogRead(1);  // A1 핀의 아날로그 전압을 읽는다
value_z = analogRead(2);  // A1 핀의 아날로그 전압을 읽는다
 
가속도는 여기에서 계산됩니다.
xv =(value_x/1024.0*ADC_ref-zero_x) /sensitivity_x;

Z축 회전의 계산은 아크-탄젠트(atan2) 내장함수를 사용합니다. 
X,Y 벡터로 부터 각도를 계산합니다. *57.2957795는 Rad을 Deg로 변환합니다. +180은 편차(offset)입니다.
angle_z =atan2(-yv,-xv) *57.2957795 +180;
 
3축 가속도 센서 ADXL335 아듀이노 소스 #1
#define ADC_ref 2.56
#define zero_x 1.569
#define zero_y 1.569
#define zero_z 1.569

#define sensitivity_x 0.3
#define sensitivity_y 0.3
#define sensitivity_z 0.3
 
unsigned int value_x;
unsigned int value_y;
unsigned int value_z;


float xv;
float yv;
float zv;


float angle_x;
float angle_y;
float angle_z;

 
void setup()   {
analogReference(INTERNAL2V56);
Serial.begin(256000);
}
 
void loop() {
 value_x = analogRead(0);
 value_y = analogRead(1);
 value_z = analogRead(2);

 
 xv=(value_x/1024.0*ADC_ref-zero_x)/sensitivity_x;
 Serial.print ("x= ");
 Serial.print (xv);
 Serial.print(" g ");


 yv=(value_y/1024.0*ADC_ref-zero_y)/sensitivity_y;
 Serial.print ("y= ");
 Serial.print (yv);
 Serial.print(" g ");


 zv=(value_z/1024.0*ADC_ref-zero_z)/sensitivity_z;
 Serial.print ("z= ");
 Serial.print (zv);
 Serial.print(" g ");

 Serial.print(" ");
 
 Serial.print("Rotation ");
 Serial.print("x= ");
 angle_x =atan2(-yv,-zv)*57.2957795+180;
 Serial.print(angle_x);
 Serial.print(" deg ");

 Serial.print("y= ");
 angle_y =atan2(-xv,-zv)*57.2957795+180;
 Serial.print(angle_y);
 Serial.print(" deg ");
 
 Serial.print("z= ");
 angle_z =atan2(-yv,-xv)*57.2957795+180;
 Serial.print(angle_z);
 Serial.print(" deg ");

 
 delay(1000);
 delay(1000);
}


3축 가속도 센서 ADXL335 아듀이노 소스 #2
int x, y, z;       // 정수형 변수 3개를 준비
void setup() {  // 아듀이노 초기화 함수 시작
  Serial.begin(9600);      // 직렬포트를 9600 bps로 설정
}                    // 아듀이노 초기화 함수 끝 

 
void loop() {   // 아듀이노 주함수의 시작
  x = analogRead(0);       // A0 핀의 값을 아날로그로 읽는다
  y = analogRead(1);       // A1 핀의 값을 아날로그로 읽는다

  z = analogRead(2);       // A2 핀의 값을 아날로그로 읽는다

  Serial.print("accelerations are x, y, z: ");  // 가속도 x,y,z를 PC에 표시
  Serial.print(x, DEC);    // X 축의 가속도 값을 10진으로 PC에 전송

  Serial.print(" ");          // 표시값의 중간에 공백을 추가
  Serial.print(y, DEC);   // Y 축의 가속도 값을 10진으로 PC에 전송

 
  Serial.print(" ");          // 표시값의 중간에 공백을 추가
  Serial.println(z, DEC);  // Z 축의 가속도 값을 10진으로 PC에 전송
 
  delay(100);                // 0.1 초를 기다린다
}                                // 아듀이노 주함수의 끝 -> 자동으로 처음부터 다시 실행된다.

 
이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
AVRTOOLS™

   
윗글 초음파 거리 측정기의 제작
아래글 Arduino Uno USBserial 펌웨어의 변경
    N         제목    글쓴이 작성일 조회 추천
61 비접점식 QTouch 방식 근접검출 스위치 leeky 2016/01/21 (목) 852 0
60 Arduino 고속 오실로스코프 #3 avrtools™ 2012/03/29 (목) 17930 0
59 아날로그 8ch 데이터 로거 avrtools™ 2012/03/29 (목) 2925 0
58 Arduino DMX512 송신기 제작 avrtools™ 2012/03/15 (목) 3063 0
57 nRF24L01 무선모듈의 사용방법 avrtools™ 2012/03/07 (수) 6112 0
56 초음파 거리 측정기의 제작 avrtools™ 2011/09/18 (일) 5029 0
55 3축 가속도 센서 ADXL335 avrtools™ 2011/09/09 (금) 3560 0
54 Arduino Uno USBserial 펌웨어의 변경 avrtools™ 2011/08/27 (토) 3122 0
53 Arduino MIDI의 소개 avrtools™ 2011/08/19 (금) 3524 0
52 Arduino 고속 Oscillo Scope #2 avrtools™ 2011/08/12 (금) 3149 0
51 Arduino Uno 및 USB2serial Uno의 소개 [2] avrtools™ 2011/07/30 (토) 3417 0
50 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 8092 0
49 아듀이노 초음파 거리측정 및 응용 avrtools™ 2010/03/14 (일) 4234 0
48 M328-USB의 비밀 온도센서 avrtools™ 2010/01/02 (토) 3650 0
47 M168-mini로 만드는 USBasp avrtools™ 2009/10/10 (토) 5504 0
46 OBDuino ISO9141 소스의 설명 avrtools™ 2009/10/08 (목) 4291 0
45 아듀이노 0017 업그레이드 avrtools™ 2009/08/18 (화) 3803 0
44 Arduino 0015 업그레이드 avrtools™ 2009/06/01 (월) 3491 0
43 CC2500 Zigbee RF Modem #1 [4] avrtools™ 2008/11/20 (목) 6772 0
42 아듀이노 소프트웨어 Ver 0012 avrtools™ 2008/09/23 (화) 4086 0
41 Arduino 소프트웨어 설치방법 avrtools™ 2008/08/31 (일) 5701 0
40 아듀이노 PC 카메라 제작 avrtools™ 2008/10/28 (화) 7328 0
39 아듀이노 AVR-ISP V2의 제작 [6] avrtools™ 2008/10/22 (수) 8435 0
38 아듀이노 J1850-PWM 스캐너 avrtools™ 2008/10/15 (수) 4612 0
37 아듀이노 MPGduino의 제작 avrtools™ 2008/10/11 (토) 5039 0
36 아듀이노 OBD-II PID 처리함수 avrtools™ 2008/10/12 (일) 5712 0
35 아듀이노 OBD-II PID 송수신 함수 avrtools™ 2008/10/09 (목) 9786 0
34 아듀이노 ODB-II 스캐너 제작 [9] avrtools™ 2008/10/04 (토) 17564 0
33 아듀이노 AC전원 THD 측정 [2] avrtools™ 2008/09/30 (화) 6890 0
32 아듀이노 소프트방식 16Bit ADC avrtools™ 2008/09/23 (화) 5649 0
31 아듀이노 초음파 모듈의 제작. avrtools™ 2008/09/22 (월) 4962 0
30 아듀이노 Wii 프로세싱 avrtools™ 2008/09/20 (토) 4222 0
29 아듀이노 초음파 거리측정 avrtools™ 2008/09/20 (토) 6161 0
28 아듀이노 8x5 초소형 전광판 avrtools™ 2008/09/11 (목) 4752 0
27 아듀이노 4선식 터치패널 avrtools™ 2008/09/10 (수) 4738 0
26 아듀이노 2색 8x8 LED avrtools™ 2008/09/10 (수) 5015 0
25 아듀이노 24x6 LED 전광판 avrtools™ 2008/09/10 (수) 5553 0
24 아듀이노 8x8 LED 프로세싱 avrtools™ 2008/09/10 (수) 4173 0
23 아듀이노 32x16 RGB 전광판 avrtools™ 2008/09/06 (토) 13763 0
22 아듀이노 맥박검출기 avrtools™ 2008/09/03 (수) 9644 0
21 아듀이노 적외선 거리센서 avrtools™ 2008/09/01 (월) 6053 0
20 아듀이노 DMX 수신장치 [7] avrtools™ 2008/08/31 (일) 6911 0
19 아듀이노 AVR-ISP 만들기 avrtools™ 2008/08/30 (토) 4222 0
18 아듀이노 POV #3 avrtools™ 2008/08/30 (토) 3541 0
17 아듀이노 POV #2 avrtools™ 2008/08/30 (토) 3309 0
16 AVR 병렬포트 굽기장치 avrtools™ 2008/08/30 (토) 5330 0
15 아듀이노 DMX 송신기 avrtools™ 2008/08/28 (목) 5224 0
14 아듀이노 부트로더의 개조 [1] avrtools™ 2008/08/28 (목) 5877 0
13 아듀이노 병렬포트 굽기장치 avrtools™ 2008/08/26 (화) 4284 0
12 아듀이노 POV #1 avrtools™ 2008/08/26 (화) 3558 0
11 아듀이노 MIDI 드럼 leeky 2008/08/24 (일) 4875 0
10 아듀이노 SD/MMC 카드 avrtools™ 2008/08/24 (일) 9878 0
9 아듀이노 MIDI 플륫 avrtools™ 2008/08/24 (일) 3705 0
8 아듀이노 RGB LED avrtools™ 2008/08/23 (토) 5132 0
7 아듀이노 USB 오실로스코프 [2] leeky 2008/08/21 (목) 6545 0
6 가속도계 ADXL202 응용소스 avrtools™ 2008/08/20 (수) 5001 0
5 아듀이노 가속도센서 avrtools™ 2008/08/18 (월) 5010 0
4 아듀이노 RC서보 제어 avrtools™ 2008/08/17 (일) 5337 0
3 아듀이노 910-ISP 만들기 avrtools™ 2008/08/16 (토) 4858 0
2 아듀이노 온도센서, XBee 송수신 avrtools™ 2008/08/15 (금) 7699 0
1 아듀이노 기본명령 avrtools™ 2008/08/07 (목) 6804 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0