전체상품목록 바로가기

본문 바로가기



현재 위치

  1. 게시판
  2. 코딩교실

초음파센서를 이용한 LED, 피에조부조 제어
subject 초음파센서를 이용한 LED, 피에조부조 제어
writer 대표 관리자 (ip:)
  • date 2016-08-29 09:34:36
  • recom 추천 하기
  • hit 346
  • point 0점

초음파센서를 이용한 LED, 피에조부조 제어

 

준비물(16)

HC-SR04

초음파 센서모듈

RGB LED

모듈

피에조부저

스위치

브레드보드

점프선

아두이노

우노 보드

162_shop1_341266.jpg

제목 없음.png

1

1

1

1

1

20

1

 

 

작품설명

초음파 센서는 물체와의 거리를 측정할 수 있는 센서이다.

TRIG를 통해 초음파를 내보내고 물체에 초음파가 닿아 ECHO로 돌아 오는 시간을 측정 한 후 그것을 거리값으로 계산해서 사용할 수 있다. 그렇게 측정, 계산된 거리 값을 이용하여 LED의 색과 피에조 부저의 음계값을 제어해본다.

그림1.png

 

회로도

텍스트 상자: s그림2.png

 

 

소스코드

#include "pitches.h"

#define TRIG 2

#define ECHO 3

#define  RED 11

#define GREEN 10

#define BLUE 9

 

#define NOTE_C4  262  //

#define NOTE_D4  294  //

#define NOTE_E4  330  //

#define NOTE_F4  349  //

#define NOTE_G4  392  //

#define NOTE_A4  440  //

#define NOTE_B4  494  //

#define NOTE_C5  523  //

 

int note[] = { NOTE_C4,NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5 };

 

void setup() {

pinMode(TRIG,OUTPUT);

pinMode(ECHO,INPUT);

pinMode (4, INPUT_PULLUP);//풀업스위치

}

 

void loop() {

if( digitalRead(4) == LOW) {

digitalWrite(TRIG,LOW);//처음값은 꺼놓는다.

delayMicroseconds(2);//스위치를 켜고끄는데 필요한물리적인 시간

digitalWrite(TRIG,HIGH);

delayMicroseconds(10);

digitalWrite(TRIG,LOW);//껐다켰다하는 과정

 

long duration = pulseIn (ECHO,HIGH);

//TRIG에서 쏜 초음파가 물체까지 닿아서 ECHO까지 돌아오는데 걸린 시간

 

long distance = (duration/2)/29.1;

/* 시간을 거리로 계산해주는 값 : 29.1 ,

 갔다가 돌아오는 시간이 측정되었으므로 duration/2 의 값에서 다시 29.1을 나누어준다*/

 

analogWrite(RED,0);

analogWrite(GREEN,0);

analogWrite(BLUE,0);

 

if(distance <10 ){

  analogWrite(RED,255);

  tone (8,note[0],20);

    }

if(distance <20 && distance>=10){

 analogWrite(RED,255);

 analogWrite(GREEN,255);

 tone (8,note[1],50);

  }

if(distance <30 && distance >=20 ){

 analogWrite(GREEN,255);

 tone (8,note[2],50);

    }

if(distance <40 && distance >=30){

analogWrite(GREEN,255);

analogWrite(BLUE,255);

 tone (8,note[3],50);

    }

if(distance <50 && distance>=40){

 analogWrite(BLUE,255);

  tone (8,note[4],50);

    }

if(distance <60 && distance>=50 ){

 analogWrite(BLUE,255);

analogWrite(RED,255);

  tone (8,note[5],50);

    }

if(distance <70 && distance >=60 ){

 analogWrite(BLUE,125);

 analogWrite(RED,125);

analogWrite(RED,125);

  tone (8,note[6],50);

    }

if(distance <80 && distance >=70){

 analogWrite(BLUE,255);

 analogWrite(GREEN,255);

 analogWrite(RED,255);

  tone (8,note[7],50);

   }

}

if (digitalRead(4) == HIGH) {

  analogWrite(RED,0);

  analogWrite(GREEN,0);

analogWrite(BLUE,0);}

}

 

동영상


문의처

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

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

 

 

 

file 초음파 거리측정1.png
password * 삭제하려면 비밀번호를 입력하시고 엔터키를 눌러주세요.
목록 삭제 수정 답변
댓글 수정

password

수정 취소

/ byte

reply

댓글 입력

name password 관리자답변보기

확인

/ byte

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

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


이전 제품

다음 제품