본문 바로가기

메이킹/아두이노

사운드 센서(소리감지센서)를 이용한 LED제어하기

반응형

오늘은 사운드 센서(소리 감지 센서)를 이용하여 LED를 제어해보겠습니다. 소리감지센서(사운드 센서)는 발생되는 소리를 마니크로 모아서 소리의 크기를 증폭시켜 출력합니다. 만일 소리가 잘 감지되지 않는다면 가벼너항을 통해 감도를 조절할 수 있으며 기본적으로 아날로그 전압 신호로 출력되기 때문에 아날로그핀(A0~A5)을 통해 측정해야합니다.

 

준비물

- 아두이노 우노

- 버튼

- 브레드 보드

- 점퍼선

- 소리감지 센서(사운드 센서)

 

 

1) 사운드 센서 연결하여 확인하기

회로도

사운드 센서 연결하기

소스코드

int soundSensor = A0;

void setup() {
  Serial.begin(9600);
  pinMode(soundSensor, INPUT);
}

void loop() {
  int val=analogRead(soundSensor);
  Serial.println(val);
}

 

2) 사운드 센서로 LED1개 제어하기

회로도

사운드 센서로 LED 한개 제어하기

소스코드

int soundSensor = A0;

void setup() {
  Serial.begin(9600);
  pinMode(soundSensor, INPUT);
  pinMode(7, OUTPUT);
}

void loop() {
  int val=analogRead(soundSensor);
  Serial.println(val);
  if (val>100){
  	digitalWrite(7, HIGH);
  }
  else{
  	digitalWrite(7, LOW);
    }
}

 

 

3) 사운드 센서로 LED 여러개 제어하기

회로도

사운드센서로 LED 여러개 제어하기

소스코드

int soundSensor = A0; //사운드센서 핀
int led[5]={4,6,8,10,12}; //LED 핀번호
int threshold=300; //소리 크기 기준
int count=0;

void setup() {
  Serial.begin(9600);
  pinMode(soundSensor, INPUT);
  for (int i=0; i<5; i++)
  	pinMode(led[i], OUTPUT);
}

void loop() {
  int sound_val=0;
  
  sound_val=analogRead(soundSensor);

  if (sound_val >=threshold){ //감지된 소리가 300이상일 때
      for(int i=0; i<5; i++){
        if(i==count)
            digitalWrite(led[i], HIGH);
        else
            digitalWrite(led[i], LOW);
  	}
      count=(count<5)? count+1:0;
      delay(200);
  }
  else //감지된 소리가 300이하일 때
  	delay(1);

  Serial.println(sound_val);
}

 박수를 칠때마다 LED가 순서대로 켜집니다. 확인해보고 다른 방법으로 수정해서 자신만의 작품을 만들어보세요!

 

[실행 결과]

 

 

 

반응형