このサンプルプログラムはメロディを演奏するプログラムです。 メロディデータはプログラムコードにデータテーブルとして記憶しています。 This sample program is a program that plays the melody. Melody data is stored as data tables in the program code. =video= {{http://www.youtube.com/watch?v=wX-QUprMvT0}}

Dependencies:   mbed Sound

メロディ出力Library のLPC1114FN28対応

https://www.youtube.com/watch?v=CDjyflSWb4Y&feature=c4-overview&list=UUBKFbjZziYG1M-dKWqTlUwA

LPC1768用に作成したメロディLibraryをLPC1114FN28に対応させました。
PWM周期を1[us]から10[us]にして、メロディ出力のためのタイマー割り込みも20[us]から40[us]にしました。(音質にはさほど影響は無いと感じました)

サンプルプログラムはLPC1768用ですので、LPC1114FN28で使用する場合は、main.cppの30行目をコメントアウトして、31行目を有効にして、コンパイルしてください。

Information

SoundLibraryExample_Melody_ProgramData
main.cpp

30行目 //Sound sound(p21, p23);  // LPC1768 p21(PwmOut), p23(DigitalOut)
31行目 Sound sound(dp1, dp2); // LPC1114FN28 dp1(PwmOut), dp2(DigitalOut)

スピーカはLCP1114FN28のdp1とdp2に接続してください。(とりあえずは電流制限抵抗は無くてもかまいません)

/media/uploads/suupen/lpc1114fn28-------.jpg

Committer:
suupen
Date:
Sun Nov 10 07:29:45 2013 +0000
Revision:
2:fc37c5923b0c
Parent:
1:aa04f8cd7355
sound library update v0.5

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 0:f773f5034b8b 1 //=============================================
suupen 0:f773f5034b8b 2 // Sound Library Example Program
suupen 0:f773f5034b8b 3 // This sample program will play a melody
suupen 0:f773f5034b8b 4 // Melody data for this program is set in the program as a data table.(DEMEKIN[])
suupen 0:f773f5034b8b 5 // <schematic>
suupen 0:f773f5034b8b 6 //
suupen 1:aa04f8cd7355 7 // <LPC1768>
suupen 0:f773f5034b8b 8 // /
suupen 0:f773f5034b8b 9 // mbed -------------- --/
suupen 0:f773f5034b8b 10 // p21(pwmOut) -----| R:200[ohm] |-----| | speaker
suupen 0:f773f5034b8b 11 // -------------- | |
suupen 0:f773f5034b8b 12 // | |
suupen 1:aa04f8cd7355 13 // p23(DigitalOut) ------------------------| |
suupen 1:aa04f8cd7355 14 // --\
suupen 1:aa04f8cd7355 15 // \
suupen 1:aa04f8cd7355 16 //
suupen 1:aa04f8cd7355 17 // <LPC1114FN28>
suupen 1:aa04f8cd7355 18 // /
suupen 1:aa04f8cd7355 19 // mbed -------------- --/
suupen 1:aa04f8cd7355 20 // db1(pwmOut) -----| R:200[ohm] |-----| | speaker
suupen 1:aa04f8cd7355 21 // -------------- | |
suupen 1:aa04f8cd7355 22 // | |
suupen 1:aa04f8cd7355 23 // db2(DigitalOut) ------------------------| |
suupen 0:f773f5034b8b 24 // --\
suupen 0:f773f5034b8b 25 // \
suupen 0:f773f5034b8b 26 //==============================================
suupen 0:f773f5034b8b 27 #include "mbed.h"
suupen 0:f773f5034b8b 28 #include "Sound.h"
suupen 0:f773f5034b8b 29
suupen 1:aa04f8cd7355 30 Sound sound(p21, p23); // LPC1768 p21(PwmOut), p23(DigitalOut)
suupen 1:aa04f8cd7355 31 // Sound sound(dp1, dp2); // LPC1114FN28 dp1(PwmOut), dp2(DigitalOut)
suupen 1:aa04f8cd7355 32
suupen 0:f773f5034b8b 33 // "demekin no uta" melody data
suupen 0:f773f5034b8b 34 const Sound::sound_t DEMEKIN[] = {
suupen 1:aa04f8cd7355 35 // onkai,hatuon jikan[ms]
suupen 1:aa04f8cd7355 36 // hanon siji 0:b(flat) 1:tujo 2:#(sharp)
suupen 1:aa04f8cd7355 37 // | C1 - B9 kan deno onkai(Gx ha 9x ni okikae te siji) 0xFF=end data
suupen 1:aa04f8cd7355 38 // | | time (1/1[ms]/count)
suupen 1:aa04f8cd7355 39 // | | | envelope(yoin) (1/1 [ms]/count)
suupen 1:aa04f8cd7355 40 // | | | |
suupen 0:f773f5034b8b 41 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 42 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 43 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 44 {1,0x00,600,500},
suupen 0:f773f5034b8b 45
suupen 0:f773f5034b8b 46 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 47 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 48 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 49 {1,0x00,600,500},
suupen 0:f773f5034b8b 50
suupen 0:f773f5034b8b 51 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 52 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 53 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 54 {1,0x95,600,500}, // no
suupen 0:f773f5034b8b 55 {1,0x95,150,500}, // shi
suupen 0:f773f5034b8b 56 {1,0x00,900,500},
suupen 0:f773f5034b8b 57 {1,0xE5,750,500}, // po
suupen 0:f773f5034b8b 58 {1,0x00,450,500},
suupen 0:f773f5034b8b 59
suupen 0:f773f5034b8b 60 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 61 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 62 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 63 {1,0x00,600,500},
suupen 0:f773f5034b8b 64
suupen 0:f773f5034b8b 65 {1,0xC5,600,500}, // de
suupen 0:f773f5034b8b 66 {1,0xE5,600,500}, // me
suupen 0:f773f5034b8b 67 {1,0x95,600,500}, // kin
suupen 0:f773f5034b8b 68 {1,0x00,600,500},
suupen 0:f773f5034b8b 69
suupen 0:f773f5034b8b 70 {1,0x95,600,500}, // ju
suupen 0:f773f5034b8b 71 {1,0xE5,600,500}, // go
suupen 0:f773f5034b8b 72 {1,0xD5,600,500}, // n
suupen 0:f773f5034b8b 73 {1,0xC5,600,500}, // no
suupen 0:f773f5034b8b 74 {1,0xE5,150,500}, // shi
suupen 0:f773f5034b8b 75 {1,0x00,900,500},
suupen 0:f773f5034b8b 76 {1,0xC5,750,500}, // po
suupen 0:f773f5034b8b 77 {1,0x00,1350,500},
suupen 0:f773f5034b8b 78
suupen 0:f773f5034b8b 79 {1,0xFF,1000,0}, // end
suupen 0:f773f5034b8b 80
suupen 1:aa04f8cd7355 81 };
suupen 0:f773f5034b8b 82
suupen 1:aa04f8cd7355 83 int main() {
suupen 0:f773f5034b8b 84
suupen 1:aa04f8cd7355 85 // Specifying the data to play melody
suupen 1:aa04f8cd7355 86 sound.sound_enso((Sound::sound_t*)DEMEKIN);
suupen 0:f773f5034b8b 87
suupen 1:aa04f8cd7355 88 while(1) {
suupen 1:aa04f8cd7355 89 if(sound.sound_enso() == false) {
suupen 1:aa04f8cd7355 90 sound.sound_enso(true);
suupen 1:aa04f8cd7355 91 }
suupen 1:aa04f8cd7355 92 wait(10);
suupen 0:f773f5034b8b 93 }
suupen 0:f773f5034b8b 94 }
suupen 1:aa04f8cd7355 95