초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

엔트리 x 오렌지보드-사운드 센서

2016-01-08 11:26:47

개요

 

주위의 소리를 테스트 해보고 싶은적 없나요? 그렇다면 방법이 여기 있습니다!  바로 " 사운드 센서(음향 센서)  "  입니다

사운드 센서는 소리를 전기적 신호로 변환하여 입력받는 원리입니다. 

사운드 센서를 이용해 주변의 소리를 응용한다면,  정말 다양한 프로젝트를 만들 수 있습니다.

사운드 센서를 이용한 " 수박쨈 " 님의 프로젝트가  kocoafab에도 있으니, 사운드 센서를 이용하여 만들어 보세요! ^^

 

<사운드 센서와 LED를 이용한 프로젝트>

링크  -   Music Visualizer 꽃병 만들기

 

 

그러나 만약 하고자 하는 것이 음성인식이라면 이야기가 달라집니다.

음성인식과 같은 멀티미디어, 신호처리 과정은 아두이노로 수행하기 버거운 작업입니다.

이 경우는 휴대폰에서 음성인식과 같은 처리를 수행하고 그 결과값만 아두이노로 전송해주는 형태로 구현하는 것이 좋을 것 같습니다.

 

 

<사운드 센서>

 

 그럼 기본적인 사운드 센서 사용법에 대해 알아봅시다.
 
보통의 사운드 센서는 위의 그림과 같이 VCC,GND,AOUT,DOUT 으로 이루어져 있는데,  아날로그와 디지털 모두 검출이 가능합니다.
경우에 따라서 아날로그만 읽어들이는 사운드 센서도 있습니다.
 
다음 내용과 같이 VCC,GND,AOUT,DOUT을 연결해 줄수 있습니다.
 
  • VCC ↔ 3.3V ~ 5.3V 
  • GND ↔ power supply ground 
  • AOUT ↔ MCU.IO (analog output) 
  • DOUT ↔ MCU.IO (digital output)

  그럼 주변 소리에 따라 아날로그 핀으로 들어오는 전압이 변화하고, 아날로그 핀을 읽었을 때 값이 바뀌게 됩니다.

 

* 원하는 소리가 잘 인식되지 않는 경우 가변저항을 돌려 감도를 조절하면 됩니다.

 

 

 

미리보기

 

 

 

 

바로 이 사운드 센서를 이용해서 엔트리로 코딩을 해 볼건데요, 주변의 소음에 따라 밝기가 변하는 모습을 볼 수 있습니다.

 

 

 

 

 

 

 

 

 

 

부품목록

 

NO    

부품명                                                                         

수량     

상세설명

1

오렌지 보드

1

아두이노 호환 보드

2

사운드 센서

1

센서

3

점퍼 케이블

3

(암,수)

4

LED

1

LED

 

 

부품명 오렌지 보드 사운드 센서 점퍼케이블 LED
파트 X 1  X 1  X 3      X 1

 

 

하드웨어 making

 

브레드보드

 

전자 회로도

엔트리 coding

 

엔트리코드는 다음과 같습니다.

 

위의 엔트리 코드는 아날로그 0번 센서값(사운드 센서)을 디지털 범위(0~255)로 변환시킨뒤, 그 변환된 값을 디지털 11번 핀에 꼽혀있는 LED에 전달을 해주어서,

사운드 센서값에 따라 LED가 변하는 모습을 볼 수 있습니다.

 

* 보라색 값은 어떻게 만드는 것이냐구요? 바로 변수입니다.

변수 사용 설명은 엔트리를 이용한 변수 사용 을 참조해 주세요. ^^

 

 

 

 

아두이노 coding

 

아두이노 코드는 다음과 같습니다.

 

// 사운드 센서를 A0번핀에 연결합니다.
int sensorPin = A0; 
// LED를 11번핀에 연결합니다.
int ledPin = 11; 

void setup() {
        // ledPin을 출력으로 설정합니다.
        pinMode(ledPin,OUTPUT);
        //시리얼 통신을 시작합니다.
        Serial.begin(9600); 
}

void loop() {
        // 사운드 센서로부터 MIC 센서값을 읽어 들입니다.
        int value = analogRead(sensorPin); 
        // 읽어들인 MIC 센서의 값을 0~255로 변환합니다.
        int intensity = map(value,20,300,0,255);
        //ledPin에 변환된 값을 넣어줍니다.
        analogWrite(ledPin, intensity); 
        //센서값을 시리얼 모니터로 출력하여 현재 센서값을 보여줍니다.
        Serial.println(value);
        //1000ms 동안 대기
        delay(100);
}

 

 

map(value, fromLow, fromHigh, toLow, toHigh ) 함수는 첫번째 인자값을 지정된 범위로 선형사상하여 반환해 주는 것입니다. 

 

 

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

엔트리, 사운드 센서, 아두이노, 오렌지보드