본문 바로가기
아두이노_프로세싱/아두이노

피에조 스피커를 이용, 소리에 반응하는 LED

by 돌돌쌤 2012. 6. 26.

피에조 스피커를 이용, 소리에 반응하는 LED


피에조 센서를 이용하여 외부에서 자극을 주면 LED가 반응하도록
하였다.

피에조 센서는 외부 소리나 압력에 의해 진동이 발생하면 전류가 흐른다.
피에조 센서를 이용해야하나 구조는 같으므로 피에조 스피커(부저)를 센서로 이용 
LED를 소리에 반응 하도록 하였다.

일단 아두이노에 피에조 스피커를 연결은


회로도 상으로는 1메가옴의 저항을 연결했지만 저항이 없어 10킬로옴으로 대체

소스 스케치
/*피에조 스피커를 이용 소리에 반응하는 LED*/
int ledPin = 10;
int sensorPin = A0;
int ledstate = LOW;
int val = 0;
int sensorcut = 3; //최저 소리감지값
void setup(){
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}
void loop(){
  val = analogRead(sensorPin);

  if(val  > sensorcut){
    ledstate = !ledstate;
    digitalWrite(ledPin,ledstate);
    Serial.println("knock!");
    Serial.println(val);
    delay(100);
 }
}

위 소스 스케치에서 if문을 while문으로 대치하면
void loop(){
  val = analogRead(sensorPin);
  while(val  <= sensorcut); // val 값을 미리 읽고 while에 쓰면 작동하지 않음
  while((val = analogRead(sensorPin)) <= sensorcut);// while문 안에 조건을 넣으면 작동
  ledstate = !ledstate;
  digitalWrite(ledPin,ledstate);
  Serial.println("knock!");
  Serial.println(val);
  delay(100);
}
도 가능하다.





작동영상