반응형
오늘은 사운드 센서(소리 감지 센서)를 이용하여 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개 제어하기
회로도
소스코드
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 여러개 제어하기
회로도
소스코드
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가 순서대로 켜집니다. 확인해보고 다른 방법으로 수정해서 자신만의 작품을 만들어보세요!
[실행 결과]
반응형
'피지컬컴퓨팅 > 아두이노' 카테고리의 다른 글
I2C LCD 활용하기(센서 측정 값 나타내기-초음파센서, 온습도 센서) (0) | 2024.03.21 |
---|---|
I2C LCD 활용하기 (0) | 2024.03.21 |
저항없이 버튼사용하기(아두이노 버튼 피아노 만들기) (0) | 2024.03.18 |
틴커캐드(Thinkercad)로 회로 시뮬레이션하기 (0) | 2024.03.17 |
저항없이 버튼 활용하기(LED, 모터 제어하기-선풍기 모듈) (0) | 2024.03.17 |