
ハッピイバースデイの音楽が鳴りながらLEDが点滅するプログラムです 改変等自由にご利用ください
main.cpp@0:0bd468acb2cb, 2016-07-16 (annotated)
- Committer:
- kohacraft
- Date:
- Sat Jul 16 05:54:47 2016 +0000
- Revision:
- 0:0bd468acb2cb
ver1.0
Who changed what in which revision?
User | Revision | Line number | New 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 | } |