Difference between revisions of "3 Make some noise with buzzer"
Line 4: | Line 4: | ||
<syntaxhighlight> | <syntaxhighlight> | ||
/* | /* | ||
− | + | Make some noise with buzzer | |
Plays a melody | Plays a melody | ||
circuit: | circuit: | ||
− | * Buzzer on digital pin 8 | + | *Buzzer on digital pin 8 |
+ | */ | ||
#include "pitches.h" | #include "pitches.h" | ||
// notes in the melody: | // notes in the melody: | ||
Line 37: | Line 38: | ||
// no need to repeat the melody. | // no need to repeat the melody. | ||
} | } | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 16:42, 15 September 2014
Code
/* Make some noise with buzzer Plays a melody circuit: *Buzzer on digital pin 8 */ #include "pitches.h" // notes in the melody: 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(8, 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(8); } } void loop() { // no need to repeat the melody. }