Difference between revisions of "3 Make some noise with buzzer"
(Created page with "Category:Arduino Tutorials 680px") |
|||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
[[Category:Arduino Tutorials]] | [[Category:Arduino Tutorials]] | ||
[[File:Arduino Interface buzzer.JPG|680px]] | [[File:Arduino Interface buzzer.JPG|680px]] | ||
| + | ====Code==== | ||
| + | <syntaxhighlight> | ||
| + | /* | ||
| + | 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. | ||
| + | } | ||
| + | |||
| + | |||
| + | </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. }
