[Arduino] 5.피에조 스피커




피에조 스피커



피에조 스피커를 이용하면 외부로 소리를 출력할 수 있습니다!


image




피에조 스피커는 다음과 같이 연결하면 됩니다~!


image




한 번 버튼을 누르면 스피커에서 소리가 나게 해보겠습니다!


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);
   }
 }
}




실행결과입니다~!