Use a buzz (piezo) to produce music

Dependencies:   mbed

Fork of Arch_Play_Music by Yihui Xiong

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "pitches.h"
00003 
00004 DigitalOut myled(LED1);
00005 
00006 PwmOut buzzer(PTD4);
00007 
00008 //int frequency[] = {NOTE_C4, NOTE_G3,NOTE_G3, NOTE_A3, NOTE_G3, 1, NOTE_B3, NOTE_C4};
00009 //int beat[] = {4, 8, 8, 4,4,4,4,4 };
00010 
00011 int frequency[] = {NOTE_C5, NOTE_B4,NOTE_G4, NOTE_C5, NOTE_B4,NOTE_E4, 1.0, NOTE_C5,NOTE_C4,NOTE_G4,NOTE_A4,NOTE_C5};
00012 int beat[] = {16, 16, 16,  8,  8,  16, 32, 16, 16, 16, 8, 8 };
00013 
00014 int main() {
00015     for (int i = 0; i < (sizeof(frequency) / sizeof(int)); i++) {
00016         buzzer.period(1.0 / frequency[i]);//set period
00017         buzzer.write(0.5);//set duty cycle
00018         wait(1.0 / beat[i]);
00019         buzzer.write(0);
00020         wait(0.05);
00021     }
00022     
00023     while(1) {
00024         myled = !myled;
00025         wait(1);
00026     }
00027 }