반응형

아두이노, 사운드 센서와 부저 출력 예제 

글. 오상문 sualchi@daum.net 

 

연결은 다음과 같습니다.

                                    <아두이노>

부저 : + 핀   --------------- 디지털 2번

       반대핀 --------------- 그라운드 

 

사운드 센서 : A0 핀 ---------- 아나로그 A0   

               그라운드(G) ----- 그라운드 

               + 핀 ----------- 5V 

4핀인 경우, 남는 핀은 그냥 둡니다. 

 

다음은 예제 코드입니다. 

 

int nTones[] = {262,294,330,349,392,440,495,524};

int nMusic[] = {0,2,4,0,2,4,5,5,5,4,4,4,3,3,3,2,2,2,1,1,1,0,0,0};

const int SOUND_SENSOR_PIN = A0;

int sensorValue;

 

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

}

 

void loop() {

  sensorValue = analogRead(SOUND_SENSOR_PIN);

  Serial.println(sensorValue);

  if(sensorValue > 28) {    // 28은 시리얼창에 나오는 숫자들보다 1~2정도 높은 값으로 적습니다.

    int nMax = sizeof(nMusic) / sizeof(int); 

    for(int i=0; i<nMax; i++) {

      tone(2, nTones[nMusic[i]]);

      delay(100); 

    }

    noTone(2);    

  }

  delay(100);

}

 

<이상>

반응형

+ Recent posts