• 강의
  • 커뮤니티
  • 북마크
GCR

자료실

코딩자료 | 차량 후방감지 센서

최고관리자
2019.12.09 11:39 42 0

본문

#define sound 8 // 부저 출력핀
#define trigPin 13 // 초음파 출력핀
#define echoPin 12 // 초음파감지 입력핀
int distance = 0; // 거리 저장 정수형 변수

void setup() {
  Serial.begin(9600); // 시리얼 통신을 위한
  pinMode(sound, OUTPUT); // 부저 출력핀
  pinMode(trigPin, OUTPUT); // 초음파 송신을 위한 OUTPUT 설정
  pinMode(echoPin, INPUT); // 초음파 수신을 위한 INPUT 설정
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
/* 위 부분은 초음파 센서를 사용전에 안정화 하기 위한 작업으로 짧은시간에 On/ Off함으로써 좀더 정확한 센서 동작을 하기 위한 초기 작업 이다 */
/* 초음파의 송신과 수신의 시간차이를 이용하여 거리를 계산하는 식이다. (duration/2)/29.1 = distance를 아래 식으로 대체한 것 */

  distance = pulseIn(echoPin, HIGH)/58.2;
/* 시리얼 통신창에 거리를 표시해주기 위한 코드 */
  Serial.print(distance);
  Serial.println(" cm");
/* 10cm에는 빠른 비트, 30cm에서는 천천히, 40cm 매우 천천히로 이에 따라 delay를 주어 사운드 출력하는 부분, 40cm를 벗어나는 거리는 부저가 울리지 않는다.*/

  if(distance <= 10){
      tone(sound, 1760);
      delay(50);
      noTone(sound);
  }
  else if(distance <= 30){
      tone(sound, 1760);
      delay(100);
      noTone(sound);
  }
  else if(distance <= 40){
      tone(sound, 1760);
      delay(400);
      noTone(sound);
  }
  else{
      noTone(sound);
  }
  delay(100);
}

댓글목록 0

등록된 댓글이 없습니다.