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








 게시판 검색





 
 
회원등록 비번분실


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

      거래은행 바로가기
 
 Sensor Applications
아듀이노 공개소스
작성자 avrtools™        
작성일 2011/09/18
첨부#1 MaxSonarEZ1.EXE (3,856KB) (Down:104)
ㆍ추천: 0  ㆍ조회: 5278   
  초음파 거리 측정기의 제작
MaxSonar EZ1
   
초음파 거리측정의 원리
 
 
초음파 센서의 송신 및 수신 파형

 
 
초음파 전달시간
매질                     전달속도 m/s
이산화탄소            268
공기 0°C               331.6
공기 20°C              344      <--- 이 값이 공기중에서 사용하는 초음파 진행속도이다
공기 30°C              349.6   <--- 주위온도 변화에 따라서 전달속도의 보정을 하면 더 정확하다. 
수소                     1310
물                        1483     <--- 물속에서는 초음파 진행속도가 빠르고, 감쇄가 매우 적어 효율적이다.
글리세린               1923
황동                     3420   
유리                     5000
철                        5200

초음파 센서의 온도보상
 
공기중에서 초음파의 진행속도는 1°C 상승할 때마다 0.6m 씩 빨라진다.

그러므로 초음파 진행속도는 331.5 m/s + (0.6 *  현재온도 °C) = 초음파 속도[m/sec] 이다.
아듀이노 기판의 주위온도를 측정하는 방법은 ATmega328P 비밀온도 센서를 참조하라

거리 변환 공식
Distance[µs*cm] = Time[µs] / Velocity of sound[µs/cm] x 2 (왕복) 이므로.
20 °C에서, 초음파 진행속도 343.5 m로 왕복 시간이 2 초로 반사파가 수신되었다면,
2,000,000us / 343,524mm = 5.822 [us/mm]로 초음파가 1mm를 진행하는 시간이 확인된다. 
측정거리는 반사파 수신시간 2,000,000us / 초음파 진행시간 5.822us  = 343,524 [mm]로 계산할 수 있다.
 
MaxSonar EZ-1 규격
하나의 진동자로 송수신을 겸용, (완전 방수용과 밀폐형도 있다) 
초음파 진동자의 주파수는 42KHz, (주파수는 높을수록 분해능이 좋으나 감쇄가 많아지므로 송신전력이 커져야 한다)
초음파 출력은 10 Vpp이다. (2개의 TTL 핀으로 구동하므로 VCC x 2 배가 된다.)
검출거리는 25 mm ~ 6450 mm, 6450mm 레인지에서 분해능은 25mm, 25mm 이하의 거리는 측정불가.
측정간격 50ms로 1초에 20 번 측정, 
가변이득 조절기능과 측면 비임을 억제하여 지향성이 좋다.

디지털 출력은 펄스 147us/inch를 출력, 37.5ms 이상 high이면 타겟이 없는 것임
아날로그 출력은 0 ~ 5V, 거리측정 9.8 mV/inch 혹은 (Vcc/512) = inch, 거리측정 오차 2% 이내.
직렬통신 출력은 9600,N,8,1로 데이터 포맷 R + 255 + CR, 숫자는 0 ~ 255, 단위는 inch. 
소비 전력 : 5V 2mA
수명 (MTBF) : 232,896 시간
제조 회사 : http://maxbotix.com/

Max Sonar EZ1의 회로도 
 

 
Max Sonar EZ1 기판


인터페이스 핀
GND : 접지
+5V : 전원 입력 5 ±0.5V 3mA (리셋트 시간 = 250ms, 자동교정시간 49ms, 최초측정 49ms 필요)
TX : UART 9600,N,8,1 출력 (TTL)
RX : UART 9600,N,8,1 입력 (내부에서 풀업), low로 하면 정지, High로 400us 이상이면 free Run)
AN : 0 ~ 5V 아날로그 거리출력
PW : 거리 펄스(147us/inch) 출력
BW : 사용 안함 (open 혹은 low 에서 측정값이 Serial로 출력됨)

EZ1의 연결방법
아래와 같이 연결하고, RX핀에 40uS의 High 펄스를 주고 Low로 하면 1회만 작동된다.
RX 핀을 400uS 이상 계속 High로 하면, 모든 센서가 Free run 상태로 연속 작동된다.
  
센서의 출력은 아날로그 포트로 읽는 방법이 간단하다. 아날로그 값은 9.8 mV가 1 인치이다. 
측정거리는 (아날로그값 /9.8) * 2.54 = [cm]로, (아날로그값 /9.8) * 25.4 = [mm]로 계산할 수 있다.  

EZ1의 성능시험
PC용 거리측정 프로그램 (4MB): http://www.maxbotix.com/uploads/MaxSonarEZ1.zip
USB2 serial 컨버터 TTL 입출력의 RX 핀 입력을 ZE1의 TX 핀 출력에 연결, GND 핀을 EZ1의 GND 핀에 연결합니다.

초음파 거리측정 센서 EZ1의 출력을 PC와 USB2serial로 연결하여 그래프를 그립니다. 
  

표시할 거리의 단위를 선택하고, USB2serial 칸버터의 Port를 선택한 다음, Run을 누르면 작동됩니다.  
참조 사이트 : Maxbotix Max Sonar EZ1

아듀이노 소스 #1 (직렬 포트로 읽는 방법) 
int val;

void setup() {
  Serial1.begin(9600);  // MaxSonar-EZ1 connected to Serial1 Pin
  Serial.begin(9600);   // Serial set to 9600 as specified by MaxSonar.
}

void loop() {
  val = Serial1.read();
  Serial.println(val);
  val = 0;
  delay(500);


아듀이노 소스 #2 (아날로그 포트로 읽는 방법)
#define apin 0

void setup(){
 Serial.begin(38400);
}
void loop(){
 Serial.println(analogRead(apin));
 delay(500);
}

아듀이노 소스 #3 (아날로그로 읽은 50회 평균을 직렬포트로 PC에 송신하는 방법)
int sum=0; // Create sum variable
int avgrange=50;    // Quantity of values to average

for(int i = 0; i < avgrange ; i++)
{
  sum+=analogRead(0);
  delay(10);
}
Serial.println(sum/avgrange);  //Print average of all measured values
sum=0;      //Reset sum variable to zero

아듀이노 소스 #4 
11회를 측정하여 중심값을 LCD에 표시 혹은 직렬포트로 송신하여 PC에서 cm로 표시한다.
 


구성 : Arduino Duemilanove Mega328, LV-MaxSonar EZ1, HD44760 LCD 16x2 문자표시
설명 : 거리를 측정하여 cm로 변환하여 표시한다. 최소거리는 10 cm, 최대거리는 600 cm 이다.
참조 : http://www.jpkh.org/content/arduino-projects

#define PIN_IN 1 // EZ1의 AN 핀
#define PIN_OUT 2 // EZ1의 RX 핀
#define BAUD 9600  // 통신 속도
#define USELCD 1

#ifdef USELCD
#include
LiquidCrystal lcd(6, 7, 8, 9, 10, 11); // LCD 접속을 6, 7, 8, 9, 10, 11 로 변경
#endif

long cm, w;
long middle,median;
long samples = 11; // 홀수로 평균횟수를 설정한다
long metering[255]; // 아날로그 신호의 범위
 
void setup() {
 Serial.begin(BAUD);
 pinMode(PIN_IN, INPUT);  // EZ1의 AN 핀에 연결할 포트를 입력으로 설정
 pinMode(PIN_OUT, OUTPUT);  // EZ1의 RX핀에 연결할 포트를 출력으로 설정

 #ifdef USELCD
 lcd.begin(16,2); // 16x2 문자 LCD 표시기를 초기화
 #endif
}

void loop() {
 int l,i,j;
 
 for (l = 0; l < samples; l++){   // 평균횟수 만큼 측정을 반복한다
  digitalWrite(PIN_OUT, HIGH); // EZ1의 RX 핀을 High로 출력 
  delayMicroseconds(20);      // 20 us를 기다린다.
  digitalWrite(PIN_OUT, LOW); // EZ1의 RX 핀을 Low로 출력 
  delayMicroseconds(20);     // 20 us를 기다린다.
  metering[l] = analogRead(PIN_IN);  // 측정된 거리를 아날로그 입력으로 읽는다
}

 for (i = 0;  i < samples - 1;  i++){   // 거리값에 따라서 변수의 위치를 정렬(sorting)한다
   for (j = i + 1;  j < samples;  j++){
     if (metering[i] > metering[j]){
     w = metering[i];
     metering[i] = metering[j];
     metering[j] =w;
    }
  }
 }

 middle=(samples + 1) / 2; // 측정값에서 중간 값을 찾는다
 median = metering[middle];
 cm = (median / 2) * 2.54;  // 중간 값을 cm로 변환한다

 #ifdef USELCD      // LCD가 있으면 다음을 실행한다. 
 lcd.setCursor(0,0);
 lcd.print("Dist: ");  // 제목을 표시한다
 lcd.print(cm);      // 측정한 값을 표시한다
 lcd.print(" cm "); // 단위를 표시한다.
 #endif

 Serial.print(cm);     // 직렬포트로 PC에 송신한다.  
 Serial.print(" cm");
 Serial.println();
}

인터넷에서 판매하는 Maxbotics LV-EZ1 제품
 

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

   
윗글 nRF24L01 무선모듈의 사용방법
아래글 3축 가속도 센서 ADXL335
    N         제목    글쓴이 작성일 조회 추천
61 비접점식 QTouch 방식 근접검출 스위치 leeky 2016/01/21 (목) 1074 0
60 Arduino 고속 오실로스코프 #3 avrtools™ 2012/03/29 (목) 18175 0
59 아날로그 8ch 데이터 로거 avrtools™ 2012/03/29 (목) 3058 0
58 Arduino DMX512 송신기 제작 avrtools™ 2012/03/15 (목) 3208 0
57 nRF24L01 무선모듈의 사용방법 avrtools™ 2012/03/07 (수) 6498 0
56 초음파 거리 측정기의 제작 avrtools™ 2011/09/18 (일) 5278 0
55 3축 가속도 센서 ADXL335 avrtools™ 2011/09/09 (금) 3802 0
54 Arduino Uno USBserial 펌웨어의 변경 avrtools™ 2011/08/27 (토) 3327 0
53 Arduino MIDI의 소개 avrtools™ 2011/08/19 (금) 3704 0
52 Arduino 고속 Oscillo Scope #2 avrtools™ 2011/08/12 (금) 3345 0
51 Arduino Uno 및 USB2serial Uno의 소개 [2] avrtools™ 2011/07/30 (토) 3625 0
50 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 8294 0
49 아듀이노 초음파 거리측정 및 응용 avrtools™ 2010/03/14 (일) 4367 0
48 M328-USB의 비밀 온도센서 avrtools™ 2010/01/02 (토) 3775 0
47 M168-mini로 만드는 USBasp avrtools™ 2009/10/10 (토) 5718 0
46 OBDuino ISO9141 소스의 설명 avrtools™ 2009/10/08 (목) 4444 0
45 아듀이노 0017 업그레이드 avrtools™ 2009/08/18 (화) 3953 0
44 Arduino 0015 업그레이드 avrtools™ 2009/06/01 (월) 3654 0
43 CC2500 Zigbee RF Modem #1 [4] avrtools™ 2008/11/20 (목) 6985 0
42 아듀이노 소프트웨어 Ver 0012 avrtools™ 2008/09/23 (화) 4145 0
41 Arduino 소프트웨어 설치방법 avrtools™ 2008/08/31 (일) 5837 0
40 아듀이노 PC 카메라 제작 avrtools™ 2008/10/28 (화) 7483 0
39 아듀이노 AVR-ISP V2의 제작 [6] avrtools™ 2008/10/22 (수) 8639 0
38 아듀이노 J1850-PWM 스캐너 avrtools™ 2008/10/15 (수) 4685 0
37 아듀이노 MPGduino의 제작 avrtools™ 2008/10/11 (토) 5179 0
36 아듀이노 OBD-II PID 처리함수 avrtools™ 2008/10/12 (일) 5833 0
35 아듀이노 OBD-II PID 송수신 함수 avrtools™ 2008/10/09 (목) 10058 0
34 아듀이노 ODB-II 스캐너 제작 [9] avrtools™ 2008/10/04 (토) 17994 0
33 아듀이노 AC전원 THD 측정 [2] avrtools™ 2008/09/30 (화) 7033 0
32 아듀이노 소프트방식 16Bit ADC avrtools™ 2008/09/23 (화) 5748 0
31 아듀이노 초음파 모듈의 제작. avrtools™ 2008/09/22 (월) 5118 0
30 아듀이노 Wii 프로세싱 avrtools™ 2008/09/20 (토) 4320 0
29 아듀이노 초음파 거리측정 avrtools™ 2008/09/20 (토) 6311 0
28 아듀이노 8x5 초소형 전광판 avrtools™ 2008/09/11 (목) 4881 0
27 아듀이노 4선식 터치패널 avrtools™ 2008/09/10 (수) 4817 0
26 아듀이노 2색 8x8 LED avrtools™ 2008/09/10 (수) 5142 0
25 아듀이노 24x6 LED 전광판 avrtools™ 2008/09/10 (수) 5688 0
24 아듀이노 8x8 LED 프로세싱 avrtools™ 2008/09/10 (수) 4267 0
23 아듀이노 32x16 RGB 전광판 avrtools™ 2008/09/06 (토) 13896 0
22 아듀이노 맥박검출기 avrtools™ 2008/09/03 (수) 9851 0
21 아듀이노 적외선 거리센서 avrtools™ 2008/09/01 (월) 6147 0
20 아듀이노 DMX 수신장치 [7] avrtools™ 2008/08/31 (일) 7098 0
19 아듀이노 AVR-ISP 만들기 avrtools™ 2008/08/30 (토) 4345 0
18 아듀이노 POV #3 avrtools™ 2008/08/30 (토) 3636 0
17 아듀이노 POV #2 avrtools™ 2008/08/30 (토) 3409 0
16 AVR 병렬포트 굽기장치 avrtools™ 2008/08/30 (토) 5490 0
15 아듀이노 DMX 송신기 avrtools™ 2008/08/28 (목) 5331 0
14 아듀이노 부트로더의 개조 [1] avrtools™ 2008/08/28 (목) 5991 0
13 아듀이노 병렬포트 굽기장치 avrtools™ 2008/08/26 (화) 4396 0
12 아듀이노 POV #1 avrtools™ 2008/08/26 (화) 3658 0
11 아듀이노 MIDI 드럼 leeky 2008/08/24 (일) 4991 0
10 아듀이노 SD/MMC 카드 avrtools™ 2008/08/24 (일) 9969 0
9 아듀이노 MIDI 플륫 avrtools™ 2008/08/24 (일) 3843 0
8 아듀이노 RGB LED avrtools™ 2008/08/23 (토) 5258 0
7 아듀이노 USB 오실로스코프 [2] leeky 2008/08/21 (목) 6824 0
6 가속도계 ADXL202 응용소스 avrtools™ 2008/08/20 (수) 5137 0
5 아듀이노 가속도센서 avrtools™ 2008/08/18 (월) 5171 0
4 아듀이노 RC서보 제어 avrtools™ 2008/08/17 (일) 5468 0
3 아듀이노 910-ISP 만들기 avrtools™ 2008/08/16 (토) 5036 0
2 아듀이노 온도센서, XBee 송수신 avrtools™ 2008/08/15 (금) 7920 0
1 아듀이노 기본명령 avrtools™ 2008/08/07 (목) 7059 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