BASIC4MCU | 질문게시판 | 답변 : 아두이노 휴지통 적외선센서 질문
페이지 정보
작성자 master 작성일2018-09-05 11:16 조회6,918회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=2918
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-09-08 오전 11:25:18// by Ok-Hyun Park//#include <Servo.h>Servo SV;//int trig=8,echo=9;int Sensor=A0;int led[10]={ 2,3,4,5,6,7,11,12,13,A1};//int data,mV,Cm=0,level;//void setup(){ pinMode(trig,OUTPUT); pinMode(echo,INPUT); for(int i=0; i<10; i++)pinMode(led[i],OUTPUT); SV.attach(10); Serial.begin(9600);}//void loop(){ digitalWrite(trig,1); delayMicroseconds(10); digitalWrite(trig,0); long duration=pulseIn(echo,HIGH); long distance=(340*duration)/2/10000; if(distance<=10){ SV.write(100); delay(1000); } else{ SV.write(10); } //--------------------------------------- data=analogRead(Sensor); mV=map(data,0,1023,0,5000); // mV 단위로 변경 Cm=(21.61/(mV-169.6))*1000; // cm 변환 Serial.println(distance); // if(Cm>30)Cm=30; if(Cm<10)Cm=10; // max,min 처리 level=map(Cm,10,30,11,0); // level 0~11로 변경(10cm거리면 레벨11) for(int i=0; i<10; i++){ if(level>i)digitalWrite(led[i],1); else digitalWrite(led[i],0); } // delay(100);}
적외선 거리센서는 이 예제를 참고했으니 연결은 사이트 참고하시고
//적외선 거리 센서로 부터 측정값을 읽어온다 int data = analogRead(pinNum);//측정한 volt값을 0에서 5000사이의 값으로 변환 int volt = map(data, 0, 1023, 0, 5000);//측정값을 통해 거리를 계산 distance = (21.61/(volt-0.1696))*1000;
위 0.1696 값은 0~5.0V 일 때의 값인 것 같아서mV 단위인 169.6으로 수정 했습니다.
댓글 0
조회수 6,918등록된 댓글이 없습니다.