BASIC4MCU | 센서 | 적외선거리센서 | 2Y0A21 공식으로 거리값 계산
페이지 정보
작성자 키트 작성일2017-08-29 15:53 조회1,516회 댓글0건본문
![]()
거리에 역수를 취했지만 직선성이 좀 떨어집니다.
0.4V 정도에서 0.01(100cm)
3.0V 에서 0.014(7.14cm) 입니다.
ADC입력을 받으면 어떻게 처리 해줘야 할까요
우선 전압으로 변경하면
float adc_f;
int adc_i;
adc_i=ADCW; // ADC 값을 받아서
adc_f= (float)adc_i * 5.0 / 1023.0; // 전압으로 변경하고 0~5V
if(adc_f>3.0)adc_f=3.0; // 3.0V 컷
if(adc_f<0.4)adc_f=0.4; // 0.4V 컷
adc_f-=0.4; // 0.4~3.0를 0.0~2.6V로 변경
adc_f=(adc_f*0.13/2.6) + 0.01; // 거리의 역수 형태로 변경
// x축이 0.01~0.14 이므로 0.14-0.01=0.13, 전압 최대치=2.6V
// 0.4V에서의 0.01를 더해줍니다.
adc_f=1.0/adc_f; //역수를 취해서 cm로 환산 합니다.
직선성이 그다지 좋지 않아서 제대로 값이 나올런지 모르겠습니다.
댓글 0
조회수 1,516등록된 댓글이 없습니다.