蜂鳴器

Buzzer 蜂鳴器

蜂鳴器分為兩種,有源蜂鳴器與無緣蜂鳴器。

有源蜂鳴器,接通電源就會叫。直接將+接上腳位7、-接地,即可以HIGH、LOW控制發出、關閉聲音。

源蜂鳴器要處理聲音頻率與節拍,必須在程式中引用pitches.h

LoudSpeaker 揚聲器

接線說明

1.麵包板:揚聲器紅線(+),接電阻。

2.麵包板:電阻另一端,接UNO腳位8。

3.揚聲器黑線(-),接地(UNO GND)。

程式碼

#include "pitches.h"

// notes in the melody:

int speakPin = 7;

int melody[] = {

  NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4

};

// note durations: 4 = quarter note, 8 = eighth note, etc.:

int noteDurations[] = {

  4, 8, 8, 4, 4, 4, 4, 4

};

void setup() {

  // iterate over the notes of the melody:

  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second divided by the note type.

    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.

    int noteDuration = 1000 / noteDurations[thisNote];

    tone(speakPin , melody[thisNote], noteDuration);

    // to distinguish the notes, set a minimum time between them.

    // the note's duration + 30% seems to work well:

    int pauseBetweenNotes = noteDuration * 1.30;

    delay(pauseBetweenNotes);

    // stop the tone playing:

    noTone(speakPin );

  }

}

void loop() {

  for (int thisNote = 0; thisNote < 8; thisNote++) {

    int noteDuration = 1000 / noteDurations[thisNote];

    tone(speakPin , melody[thisNote], noteDuration);

    int pauseBetweenNotes = noteDuration * 1.30;

    delay(pauseBetweenNotes);

    noTone(speakPin );

  }

}

IMG_7022.MOV

以下僅供參考

int melody[] = {

  NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4

};


int noteDurations[] = {

  4, 8, 8, 4, 4, 4, 4, 4

};


void setup() {

  pinMode(8,OUTPUT);

}


void loop() {

   play(melody, noteDurations, sizeof(melody) / sizeof(int));

   delay(2000);

}


void play(int *melody, int *noteDurations, int num){

  for(int note = 0; note < num; note++){

    int noteDuration = 3000 / noteDurations[note];

    tone(8, melody[note], noteDuration);


    delay(noteDuration * 1.30);

  }

}

妹妹揹著洋娃娃

int melody[] = {

  NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_D4, NOTE_C4,

  NOTE_E4, NOTE_D4, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_A3, NOTE_G3,

  NOTE_A3, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_D4, NOTE_E4,

  NOTE_D4, NOTE_D4, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_C4,

}; 

int noteDurations[] = {

  6, 16, 8, 8, 8, 8, 4,

  6, 16, 8, 8, 8, 8, 4,

  6, 16, 8, 8, 8, 8, 4,

  6, 16, 8, 8, 8, 8, 4,

}; 

青花瓷

int melody[] = {

  NOTE_, NOTE_D4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_,

  NOTE_, NOTE_D4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_,

 

  NOTE_, NOTE_G3, NOTE_A3, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_,

  NOTE_, NOTE_E4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_C4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_,

 

  NOTE_, NOTE_D4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_A3, NOTE_G3, NOTE_,

  NOTE_, NOTE_G3, NOTE_A3, NOTE_E4, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_,

 

  NOTE_, NOTE_D4, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4, NOTE_D4,

  NOTE_C4, NOTE_A3, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_A3, NOTE_C4, NOTE_C4, NOTE_C4, NOTE_,

  //

  NOTE_, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_A3, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_,

  NOTE_, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_G3, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_D4, NOTE_C4, NOTE_,

 

  NOTE_, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_,

  NOTE_, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_D4, NOTE_C4, NOTE_D4, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_,

 

  NOTE_, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_A3, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_,

  NOTE_, NOTE_G4, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_E4, NOTE_G3, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_D4, NOTE_C4, NOTE_,

 

  NOTE_, NOTE_C4, NOTE_D4, NOTE_E4, NOTE_G4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_G4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4,

  NOTE_G3, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_D4, NOTE_C4, NOTE_,

};


int noteDurations[] = {

  16, 16, 16, 16, 8, 16, 16, 8, 16, 16, 16, 16, 8, 8,

  16, 16, 16, 16, 8, 16, 16, 8, 16, 16, 16, 16, 8, 8,

 

  16, 16, 16, 16, 8, 16, 16, 8, 16, 16, 16, 16, 16, 16, 8,

  16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 8, 8,

 

  16, 16, 16, 16, 8, 16, 16, 8, 16, 16, 16, 16, 8, 8,

  16, 16, 16, 16, 8, 16, 16, 8, 16, 16, 16, 16, 8, 8,

 

  16, 16, 16, 16, 16, 16, 16, 16, 8,

  16, 16, 16, 16, 16, 16, 8, 16, 4, 8,

  //

  16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 16, 4, 8,

  16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 16, 4, 8,

 

  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 4, 8,

  16, 16, 16, 16, 16, 16, 16, 16, 16, 8, 16, 16, 8, 8,

 

  16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 16, 4, 8,

  16, 16, 16, 16, 16, 16, 8, 16, 16, 16, 16, 4, 8,

 

  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 4,

  16, 8, 16, 16, 16, 4, 8,

}; 

參考文獻

https://yehnan.blogspot.com/2012/02/arduinoloudspeaker.html (揚聲器)