반응형

 

 

 

 

코드

int soundSensor = A0;     // 사운드 센서 핀
int led[6] = {8, 9, 10, 11, 12, 13};  // LED핀 8~13
int threshold = 500; // 소리 크기 기준
int count = 0;      // 박수를 몇 번 쳤는지 카운트

void setup() 
{               
  Serial.begin(9600); // 시리얼모니터 출력
  pinMode(soundSensor, INPUT);  // 사운드 센서 입력으로 설정  
  for(int i=0; i<6; i++)      // LED 핀 출력으로 설정
  pinMode(led[i], OUTPUT);    

  for(int i = 0 ; i < 6; i++)
  {
    if(i%2 == 0) digitalWrite(led[i], HIGH);
    else digitalWrite(led[i], LOW);
  }    
}

void loop() 
{     
  if( analogRead(soundSensor) >= threshold)
  {    // 감지된 소리의 크기가 500 이상일 때
      if(count%2 == 0)  
      {
        for(int i = 0 ; i < 6; i++)
        {
          if(i%2 == 0) digitalWrite(led[i], HIGH);
          else digitalWrite(led[i], LOW);
        }            
      }
      else 
      {
        for(int i = 0 ; i < 6; i++)
        {
          if(i%2 == 1) digitalWrite(led[i], HIGH);
          else digitalWrite(led[i], LOW);
        }   
      }
    if(count < 6) count ++;
    else count = 0;
    
    delay(200);     // 박수 중복 입력이 안되게 200ms 딜레이
  } 
  else       // 감지된 소리의 크기가 500 이하일 때 
  delay(1);
}

 

 

실행영상

 

 

반응형

+ Recent posts