질문게시판 > 답변 : 초음파센서와 led

TODAY797 TOTAL340,660
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 답변 : 초음파센서와 led

페이지 정보

작성자 master 작성일2018-04-13 23:39 조회935회 댓글1건

본문

	

 

// DateTime : 2018-04-13 오후 11:41:50
// by Ok-Hyun Park
int trigPin1=2,echoPin1=3// 초음파#1
int trigPin2=4,echoPin2=5// 초음파#2
int r=12,g=13;
int maximumRange=10,minimumRange=0// 초음파 최대-최소거리 설정
int Sound=A1;                       // 피에조센서
//
const int system_time=50;                     // 전체 시스템 시간
const int ultrasonic_time=10;                 // 초음파 측정 시간
long duration1,duration2,distance1,distance2// 펄스 시간,거리 측정용 변수
long distance1_a,distance2_a;                 // 구동연산 변수
int ultrasonic_count=2;                       // 초음파 Count만큼 감지 후 평균 값에 의해 동작 함
const long distanse_set=9;                    // 초음파 사람 감지 세팅 값
//
int mode=0,cnt=0;
//
void setup(){
  Serial.begin(9600);
  pinMode(trigPin1,OUTPUT); pinMode(echoPin1,INPUT);
  pinMode(trigPin2,OUTPUT); pinMode(echoPin2,INPUT);
  pinMode(Sound,OUTPUT); pinMode(r,OUTPUT); pinMode(g,OUTPUT);
  delay(system_time);
  digitalWrite(r,HIGH);
}
//
void loop(){
  delay(system_time); distance1_a=0distance2_a=0;  // #1.초음파 센서 ultrasonic_count 만큼 감지 후 저장
  //
  for(int i=1i<=ultrasonic_counti++){                        /***초음파1 감지***/
    digitalWrite(trigPin1,HIGH); delayMicroseconds(10); digitalWrite(trigPin1,LOW);
    duration1=pulseIn(echoPin1,HIGH);  distance1=duration1/58.2// 측정된 시간을 cm로 환산
    distance1_a=distance1_a+distance1delay(ultrasonic_time);
  }
  for(int i=1i<=ultrasonic_counti++){                        /***초음파2 감지***/
    digitalWrite(trigPin2,HIGH); delayMicroseconds(10); digitalWrite(trigPin2,LOW);
    duration2=pulseIn(echoPin2,HIGH);  distance2=duration2/58.2// 측정된 시간을 cm로 환산
    distance2_a=distance2_a+distance2delay(ultrasonic_time);
  }
  //
  distance1=long(distance1_a/ultrasonic_count); distance2=long(distance2_a/ultrasonic_count); //#2.평균
  if(distance1>=maximumRange)distance1=maximumRangeSerial.println(distance1); //#3.초음파 측정 거리 제한
  if(distance2>=maximumRange)distance2=maximumRangeSerial.println(distance2);
  //
  if(mode==0){
    if((distance1<=distanse_set)||(distance2<=distanse_set)){ tone(A1,7000,200); Serial.println("\n"); }
  }
  if((distance1distanse_set)||(distance2distanse_set)){ digitalWrite(Sound,LOW); }
  //
  if(++cnt>=55){ cnt=0;
    mode^=1;
    if(mode){ digitalWrite(rLOW); digitalWrite(g,HIGH); }
    else    { digitalWrite(r,HIGH); digitalWrite(gLOW); }
  }  
}

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 1

조회수 935

뭘보노옹님의 댓글

뭘보노옹 작성일

정말 감사합니다!! 원하는 구동방식으로 구동이 됩니다!! ㅠㅠ

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기