ハッピイバースデイの音楽が鳴りながらLEDが点滅するプログラムです 改変等自由にご利用ください

Dependencies:   mbed

Committer:
kohacraft
Date:
Sat Jul 16 05:54:47 2016 +0000
Revision:
0:0bd468acb2cb
ver1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kohacraft 0:0bd468acb2cb 1 /* ハッピイバースデイの音楽が鳴る人形のプログラムです */
kohacraft 0:0bd468acb2cb 2 #include "mbed.h"
kohacraft 0:0bd468acb2cb 3
kohacraft 0:0bd468acb2cb 4 PwmOut sp(dp1); //スピーカーのピンを設定します
kohacraft 0:0bd468acb2cb 5 DigitalOut l1(dp13);//1つ目のLEDのピンを設定します
kohacraft 0:0bd468acb2cb 6 DigitalOut l2(dp14);//2つ目のLEDのピンを設定します
kohacraft 0:0bd468acb2cb 7 Ticker flipper; //タイマー割り込みを利用します
kohacraft 0:0bd468acb2cb 8
kohacraft 0:0bd468acb2cb 9 void flip() { //定期的にここのプログラ実行されます
kohacraft 0:0bd468acb2cb 10 l1 = !l1; //LED1がONだったら反対のOFFに、OFFだったら反対のONにします
kohacraft 0:0bd468acb2cb 11 l2 = !l2;
kohacraft 0:0bd468acb2cb 12 }
kohacraft 0:0bd468acb2cb 13
kohacraft 0:0bd468acb2cb 14 //指定した周波数の音を指定した時間鳴らします ヘルツ,秒
kohacraft 0:0bd468acb2cb 15 void tone( float t , float n ){
kohacraft 0:0bd468acb2cb 16 float na;
kohacraft 0:0bd468acb2cb 17
kohacraft 0:0bd468acb2cb 18 na = 1 / n;
kohacraft 0:0bd468acb2cb 19 for( int i=0 ; i< t / na ; i++ ){
kohacraft 0:0bd468acb2cb 20 sp = 1;
kohacraft 0:0bd468acb2cb 21 wait(1.0 / t / 2);
kohacraft 0:0bd468acb2cb 22 sp = 0;
kohacraft 0:0bd468acb2cb 23 wait(1.0 / t / 2);
kohacraft 0:0bd468acb2cb 24 }
kohacraft 0:0bd468acb2cb 25 }
kohacraft 0:0bd468acb2cb 26
kohacraft 0:0bd468acb2cb 27 int main() {
kohacraft 0:0bd468acb2cb 28 sp.period(0.00001); //PWMの周期を細かくしておく
kohacraft 0:0bd468acb2cb 29
kohacraft 0:0bd468acb2cb 30 l1 = 0;
kohacraft 0:0bd468acb2cb 31 l2 = 1; //片方のLEDだけを光らせておく
kohacraft 0:0bd468acb2cb 32 flipper.attach(&flip, 0.2); //0.2秒ごとにflipというプログラムを実行する
kohacraft 0:0bd468acb2cb 33
kohacraft 0:0bd468acb2cb 34 while(1) {
kohacraft 0:0bd468acb2cb 35 // ヘルツ 秒
kohacraft 0:0bd468acb2cb 36 tone( 523.3 , 0.25 );
kohacraft 0:0bd468acb2cb 37 wait(0.05);
kohacraft 0:0bd468acb2cb 38 tone( 523.3 , 0.1 );
kohacraft 0:0bd468acb2cb 39
kohacraft 0:0bd468acb2cb 40 tone( 587.3 , 0.4 );
kohacraft 0:0bd468acb2cb 41 tone( 523.3 , 0.4 );
kohacraft 0:0bd468acb2cb 42 tone( 698.5 , 0.4 );
kohacraft 0:0bd468acb2cb 43
kohacraft 0:0bd468acb2cb 44 tone( 659.3 , 0.8 );
kohacraft 0:0bd468acb2cb 45 tone( 523.3 , 0.25 );
kohacraft 0:0bd468acb2cb 46 wait(0.05);
kohacraft 0:0bd468acb2cb 47 tone( 523.3 , 0.1 );
kohacraft 0:0bd468acb2cb 48
kohacraft 0:0bd468acb2cb 49 tone( 587.3 , 0.4 );
kohacraft 0:0bd468acb2cb 50 tone( 523.3 , 0.4 );
kohacraft 0:0bd468acb2cb 51 tone( 784 , 0.4 );
kohacraft 0:0bd468acb2cb 52
kohacraft 0:0bd468acb2cb 53 tone( 698.5 , 0.8 );
kohacraft 0:0bd468acb2cb 54 tone( 523.3 , 0.25 );
kohacraft 0:0bd468acb2cb 55 wait(0.05);
kohacraft 0:0bd468acb2cb 56 tone( 523.3 , 0.1 );
kohacraft 0:0bd468acb2cb 57
kohacraft 0:0bd468acb2cb 58 tone( 1049 , 0.4 );
kohacraft 0:0bd468acb2cb 59 tone( 880 , 0.4 );
kohacraft 0:0bd468acb2cb 60 tone( 698.5 , 0.4 );
kohacraft 0:0bd468acb2cb 61
kohacraft 0:0bd468acb2cb 62 tone( 659.3 , 0.4 );
kohacraft 0:0bd468acb2cb 63 tone( 587.3 , 1.2 );
kohacraft 0:0bd468acb2cb 64 wait(0.2);
kohacraft 0:0bd468acb2cb 65 tone( 932.33 , 0.25 );
kohacraft 0:0bd468acb2cb 66 wait(0.05);
kohacraft 0:0bd468acb2cb 67 tone( 932.33 , 0.1 );
kohacraft 0:0bd468acb2cb 68
kohacraft 0:0bd468acb2cb 69 tone( 880 , 0.4 );
kohacraft 0:0bd468acb2cb 70 tone( 698.5 , 0.4 );
kohacraft 0:0bd468acb2cb 71 tone( 784 , 0.4 );
kohacraft 0:0bd468acb2cb 72 tone( 698.5 , 0.8 );
kohacraft 0:0bd468acb2cb 73
kohacraft 0:0bd468acb2cb 74 wait(0.4);
kohacraft 0:0bd468acb2cb 75 }
kohacraft 0:0bd468acb2cb 76 }