수동 부저란?
- 수동 부저는 아두이노에서 소리를 내는 모듈이다. (일종의 손가락만한 스피커)
- 다리의 길이가 같다.
- 전원을 공급해도 바로 소리가 나지 않는다.
- 여러가지 음을 낼 수 있다.
<-->
능동 부저란?
- 수동 부저와 달리 한 개의 음만 출력 가능한 모듈이다.
- 다리의 길이가 다르다.
- 전원을 공급하면 바로 소리가 난다.
ex.<코드>

*tone(pin(제어하고자 하는 핀의 번호), frequency(음 주파수)); : 해당 pin을 통해 특정한 주파수의 사각 파형을 생성(?)
cf. 사각파형 = 디지털 신호.
*noTone(pin(제어하고자 하는 핀의 번호)); : 음의 생성을 멈춘다.
*pinMode(핀번호, 입출력 여부);
초음파 센서란?
-초음파를 대상에게 발사하여 반사되어 오는 반사파를 받을 때까지의 시간을 확인하여 거리를 측정하는 센서
- trig: 수신, Echo: 송신
- 일정한 속도로 똑바로 날아감.
- 경우에 따라 굴절 방향이 달라질 수 있다.
ex.<코드>

*Serial.begin(통신속도);
*digitalWrite(핀 번호 참거짓유무); --> HIGH = 1, LOW = 0
직접 해보자!
1. 음악을 만들어보자!

<회로도>
코드 :
int bu = 4;// 부저를 4번으로하고
int trig = 2;// 송신핀은 2번으로
int echo = 3;// 수신핀은 3번으로함
void setup() {
Serial.begin(9600);//9600bps의 속도로 설정
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(bu, OUTPUT);
}
void loop() { //반복
digitalWrite(trig, HIGH);
delay(10);
digitalWrite(trig, LOW);
float distance = (340*pulseIn(echo, HIGH) / 1000/2);
if(distance <= 100){
tone(bu, 262);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 262);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 391);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 391);
delay(500);
noTone(bu);
tone(bu, 440);
delay(500);
noTone(bu);
tone(bu, 391);
delay(500);
noTone(bu);
tone(bu, 440);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 262);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 262);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 392);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 392);
delay(500);
noTone(bu);
tone(bu, 440);
delay(500);
noTone(bu);
tone(bu, 392);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 262);
delay(500);
noTone(bu);
tone(bu, 294);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 392);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
tone(bu, 349);
delay(500);
noTone(bu);
}
}
2. LED를 켜보자!

<회로도>
코드 :
int LED = 4;// LED를 4번으로하고
int trig = 2;// 송신핀은 2번으로
int echo = 3;// 수신핀은 3번으로함
void setup() {
Serial.begin(9600);//9600bps의 속도로 설정
pinMode(LED, OUTPUT);
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
}
void loop() { //반복
digitalWrite(trig, HIGH);
delay(10);
digitalWrite(trig, LOW);
float distance = (340*pulseIn(echo, HIGH)/1000/2);
if(distance <= 100){
digitalWrite(LED, HIGH);
}
else{
digitalWrite(LED, LOW);
}
}