[Arduino] 5.피에조 스피커
in Arduino
피에조 스피커
피에조 스피커를 이용하면 외부로 소리를 출력할 수 있습니다!
피에조 스피커는 다음과 같이 연결하면 됩니다~!
한 번 버튼을 누르면 스피커에서 소리가 나게 해보겠습니다!
int speaker = 10;
int btn = 13;
void setup() {
pinMode(btn,INPUT);
}
void loop() {
int value = digitalRead(btn);
analogWrite(speaker,LOW);
if(value == 1){
analogWrite(speaker,HIGH);
delay(500);
}
}
예제: 피아노 만들기
이번에는 조도 센서와 버튼4개를 이용해서 피아노를 만들어보겠습니다.
밝을 때 버튼 4개는 도,레,미,파를 의미하고, 어두울 때 버튼 4개는 솔, 라, 시, 도를 의미하게 됩니다~!
int photoR = A1;
int speaker = 10;
int btn[] = {2, 3, 4, 5};
int sw = 0;
int btnValue[4];
#define NOTE_C4 262 //도
#define NOTE_D4 294 //레
#define NOTE_E4 330 //미
#define NOTE_F4 370 //파
#define NOTE_G4 415 //솔
#define NOTE_A4 440 //라
#define NOTE_B4 494 //시
#define NOTE_C5 523 //도
void setup() {
Serial.begin(9600);
for(int i = 0; i < 4; i++){
pinMode(btn[i], INPUT);
}
pinMode(photoR , INPUT);
}
void loop() {
int photoValue = analogRead(photoR);
if(photoValue > 800){
sw = 1;
}else{
sw = 0;
}
for(int i = 0; i < 4; i++){
btnValue[i] = digitalRead(btn[i]);
}
song(sw);
}
void song(int sw){
if(sw ==0 ){ //밝을 때
if(btnValue[0]==1){
tone(speaker, NOTE_C4, 200); delay(300);
}
if(btnValue[1]==1){
tone(speaker, NOTE_D4, 200); delay(300);
}
if(btnValue[2]==1){
tone(speaker, NOTE_E4, 200); delay(300);
}
if(btnValue[3]==1){
tone(speaker, NOTE_F4, 200); delay(300);
}
}else{ //어두울 때
if(btnValue[0]==1){
tone(speaker, NOTE_G4, 200); delay(300);
}
if(btnValue[1]==1){
tone(speaker, NOTE_A4, 200); delay(300);
}
if(btnValue[2]==1){
tone(speaker, NOTE_B4, 200); delay(300);
}
if(btnValue[3]==1){
tone(speaker, NOTE_C5, 200); delay(300);
}
}
}