전체상품목록 바로가기

본문 바로가기



현재 위치

  1. 게시판
  2. 코딩교실

초음파센서를 이용한 피에조 부조 출력하기
subject 초음파센서를 이용한 피에조 부조 출력하기
writer 대표 관리자 (ip:)
  • date 2016-08-31 17:08:45
  • recom 추천 하기
  • hit 1172
  • point 0점

초음파센서를 이용한 피에조 부조 출력하기

 

준비물

초음파센서

피에조 부저

점프선

아두이노

우노 보드

1

1

8

1

 

작품설명

초음파 거리 센서(HC-SR04)로 거리를 측정하여

거리에 따라 다른 음을 피에조 부저(Piezo Buzzer)로 출력한다.


 

 

*초음파 거리 센서(HC-SR04)

초음파를 이용하여 거리를 계산하는 센서이다. 초음파의 속도는 340m/s이고 초음파가 발생되어 물체에 부딪히게 되면 반사되어 돌아오게 된다. 이 시간차를 계산하면 거리를 계산 할 수 있다.

  1. 4개의 핀으로 구성, VCC Gnd를 통해 전원(5V)을 입력 받는다.

  2. Trig핀을 통해 신호를 입력 받으면 초음파를 발신, 초음파가 다시 수신되면 Echo핀을 통해 신호를 출력한다.

    3. 센서는 5V에서 작동하며 약 15mA의 전류를 사용한다.

    4. 측정 범위는 최소 2cm에서 4m이지만 주변 환경에 의해 오차가 발생할 수 있다.

     

*피에조 부저

피에조 부저는 스피커와 마찬가지로 전기적으로 금속판 등을 떨리게 하여서 소리를 출력하는 장치이다.

  1. 극성이 있어 핀이 긴쪽이 + 이고 짧은쪽이 - 이다.

    짧은쪽은 GND에 긴쪽은 아두이노 디지털 단자에 연결해 준다.

  1. 아두이노 IDE(개발환경)에서 tone() 함수로 제어한다.

 

 

 

회로도

스코드

/*

 *  Code by ThinkCoding

 */

int trigDigitalPin = 8;      //초음파센서의 trig pin 번호

int echoDigitaPin = 9;    //초음파센서의 echo pin 번호

int speakerpin = 3;        //피에조 부저 출력 디지털핀 번호

int note[] = {2093,2349,2637,2794,3136,3520,3951,4186};   //도레미파솔라시도

 

void setup()

{

  Serial.begin (9600);

  pinMode(echoDigitaPin, INPUT);    //echoPin을 입력모드

  pinMode(trigDigitalPin, OUTPUT);  //trigPin을 출력모드

  pinMode(speakerpin,OUTPUT);        //피에조부조 출력모드

}

 

void loop()

{

  int dist=0, duration =0, noteIndex = 0;

 

  digitalWrite(trigDigitalPin, LOW);   

  digitalWrite(trigDigitalPin, HIGH);

  delayMicroseconds(2);

  digitalWrite(trigDigitalPin, LOW);

 

  // 초음파 센서를 이용하여 거리를 측정한다.

  duration = pulseIn(echoDigitaPin, HIGH);

  dist = ( duration/2)/29.1;

    

  // 거리에 따라 음을 연주한다. 

  int distCnt  = 3;          // 연주 간격을 조절하기 위한 변수 선언, 기본 연주 간격  3cm

  if(dist > 0 && dist <= distCnt*1 )

  {

    noteIndex = 0;      //

   }

   else if(dist > distCnt*1 && dist <= distCnt*2)

   {

     noteIndex = 1;    //

   }

   else if(dist > distCnt*2 && dist <= distCnt*3)

  {

    noteIndex =  2;   //

    }

  else if(dist > distCnt*3 && dist <= distCnt*4)

  {

    noteIndex = 3;    //

  }

  else if(dist > distCnt*4 && dist <= distCnt*5)

  {

    noteIndex = 4;    //

  }

  else if(dist > distCnt*5 && dist <= distCnt*6)

  {

     noteIndex = 5;   //

  }

  else if(dist > distCnt*6 && dist <= distCnt*7)

  {

   noteIndex = 6;   //

  }

  else if(dist > distCnt*7 && dist <= distCnt*8)

  {

    noteIndex = 7;  //

  }

  else

  {

    noteIndex = 8;

    noTone(speakerpin);

  }

 

  // 거리를 벗어나지 않는 경우만 피에조부저를 울린다.

  if( noteIndex < 8)

  {

     tone(speakerpin, note[noteIndex]);

     delay(200);

  }

}

동영상

 

문의처

다두이노와 딩코가 함께하는 코딩스쿨

교육문의: daduino@daduino.co.kr

 

file 피에조부저 사진.png
password * 삭제하려면 비밀번호를 입력하시고 엔터키를 눌러주세요.
목록 삭제 수정 답변
댓글 수정

password

수정 취소

/ byte

reply

댓글 입력

name password 관리자답변보기

확인

/ byte

* 왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

회원에게만 댓글 작성 권한이 있습니다.


이전 제품

다음 제품