kohacraft Lab
/
kc_1_ningyo_classic
クラシック音楽が鳴りながらLEDが点滅するプログラムです 改変等自由にご利用ください
main.cpp@0:310cbbca646a, 2016-07-16 (annotated)
- Committer:
- kohacraft
- Date:
- Sat Jul 16 05:54:31 2016 +0000
- Revision:
- 0:310cbbca646a
ver1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 0:310cbbca646a | 1 | /* クラシック音楽の鳴る人形のプログラムです */ |
kohacraft | 0:310cbbca646a | 2 | #include "mbed.h" |
kohacraft | 0:310cbbca646a | 3 | |
kohacraft | 0:310cbbca646a | 4 | PwmOut sp(dp1); //スピーカーのピンを設定します |
kohacraft | 0:310cbbca646a | 5 | DigitalOut l1(dp13);//1つ目のLEDのピンを設定します |
kohacraft | 0:310cbbca646a | 6 | DigitalOut l2(dp14);//2つ目のLEDのピンを設定します |
kohacraft | 0:310cbbca646a | 7 | Ticker flipper; //タイマー割り込みを利用します |
kohacraft | 0:310cbbca646a | 8 | |
kohacraft | 0:310cbbca646a | 9 | void flip() { //定期的にここのプログラ実行されます |
kohacraft | 0:310cbbca646a | 10 | l1 = !l1; //LED1がONだったら反対のOFFに、OFFだったら反対のONにします |
kohacraft | 0:310cbbca646a | 11 | l2 = !l2; |
kohacraft | 0:310cbbca646a | 12 | } |
kohacraft | 0:310cbbca646a | 13 | |
kohacraft | 0:310cbbca646a | 14 | //指定した周波数の音を指定した時間鳴らします ヘルツ,秒 |
kohacraft | 0:310cbbca646a | 15 | void tone( float t , float n ){ |
kohacraft | 0:310cbbca646a | 16 | float na; |
kohacraft | 0:310cbbca646a | 17 | |
kohacraft | 0:310cbbca646a | 18 | na = 1 / n; |
kohacraft | 0:310cbbca646a | 19 | for( int i=0 ; i< t / na ; i++ ){ |
kohacraft | 0:310cbbca646a | 20 | sp = 1; |
kohacraft | 0:310cbbca646a | 21 | wait(1.0 / t / 2); |
kohacraft | 0:310cbbca646a | 22 | sp = 0; |
kohacraft | 0:310cbbca646a | 23 | wait(1.0 / t / 2); |
kohacraft | 0:310cbbca646a | 24 | } |
kohacraft | 0:310cbbca646a | 25 | } |
kohacraft | 0:310cbbca646a | 26 | |
kohacraft | 0:310cbbca646a | 27 | int main() { |
kohacraft | 0:310cbbca646a | 28 | sp.period(0.00001); //PWMの周期を細かくしておく |
kohacraft | 0:310cbbca646a | 29 | |
kohacraft | 0:310cbbca646a | 30 | l1 = 0; |
kohacraft | 0:310cbbca646a | 31 | l2 = 1; //片方のLEDだけを光らせておく |
kohacraft | 0:310cbbca646a | 32 | flipper.attach(&flip, 0.2); //0.2秒ごとにflipというプログラムを実行する |
kohacraft | 0:310cbbca646a | 33 | |
kohacraft | 0:310cbbca646a | 34 | while(1) { |
kohacraft | 0:310cbbca646a | 35 | // ヘルツ 秒 |
kohacraft | 0:310cbbca646a | 36 | tone( 784 , 0.4 ); |
kohacraft | 0:310cbbca646a | 37 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 38 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 39 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 40 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 41 | |
kohacraft | 0:310cbbca646a | 42 | tone( 784 , 0.4 ); |
kohacraft | 0:310cbbca646a | 43 | tone( 523.3 , 0.35 ); |
kohacraft | 0:310cbbca646a | 44 | wait(0.05); |
kohacraft | 0:310cbbca646a | 45 | tone( 523.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 46 | |
kohacraft | 0:310cbbca646a | 47 | tone( 880 , 0.4 ); |
kohacraft | 0:310cbbca646a | 48 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 49 | tone( 784 , 0.2 ); |
kohacraft | 0:310cbbca646a | 50 | tone( 880 , 0.2 ); |
kohacraft | 0:310cbbca646a | 51 | tone( 987.8 , 0.2 ); |
kohacraft | 0:310cbbca646a | 52 | |
kohacraft | 0:310cbbca646a | 53 | tone( 1047 , 0.4 ); |
kohacraft | 0:310cbbca646a | 54 | tone( 523.3 , 0.35 ); |
kohacraft | 0:310cbbca646a | 55 | wait(0.05); |
kohacraft | 0:310cbbca646a | 56 | tone( 523.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 57 | |
kohacraft | 0:310cbbca646a | 58 | tone( 698.5 , 0.4 ); |
kohacraft | 0:310cbbca646a | 59 | tone( 784 , 0.2 ); |
kohacraft | 0:310cbbca646a | 60 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 61 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 62 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 63 | |
kohacraft | 0:310cbbca646a | 64 | tone( 659.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 65 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 66 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 67 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 68 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 69 | |
kohacraft | 0:310cbbca646a | 70 | tone( 493.9 , 0.4 ); |
kohacraft | 0:310cbbca646a | 71 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 72 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 73 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 74 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 75 | tone( 587.3 , 1.2 ); |
kohacraft | 0:310cbbca646a | 76 | |
kohacraft | 0:310cbbca646a | 77 | tone( 784 , 0.4 ); |
kohacraft | 0:310cbbca646a | 78 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 79 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 80 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 81 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 82 | |
kohacraft | 0:310cbbca646a | 83 | tone( 784 , 0.4 ); |
kohacraft | 0:310cbbca646a | 84 | tone( 523.3 , 0.35 ); |
kohacraft | 0:310cbbca646a | 85 | wait(0.05); |
kohacraft | 0:310cbbca646a | 86 | tone( 523.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 87 | |
kohacraft | 0:310cbbca646a | 88 | tone( 880 , 0.4 ); |
kohacraft | 0:310cbbca646a | 89 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 90 | tone( 784 , 0.2 ); |
kohacraft | 0:310cbbca646a | 91 | tone( 880 , 0.2 ); |
kohacraft | 0:310cbbca646a | 92 | tone( 987.8 , 0.2 ); |
kohacraft | 0:310cbbca646a | 93 | |
kohacraft | 0:310cbbca646a | 94 | tone( 1047 , 0.4 ); |
kohacraft | 0:310cbbca646a | 95 | tone( 523.3 , 0.35 ); |
kohacraft | 0:310cbbca646a | 96 | wait(0.05); |
kohacraft | 0:310cbbca646a | 97 | tone( 523.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 98 | |
kohacraft | 0:310cbbca646a | 99 | tone( 698.5 , 0.4 ); |
kohacraft | 0:310cbbca646a | 100 | tone( 784 , 0.2 ); |
kohacraft | 0:310cbbca646a | 101 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 102 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 103 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 104 | |
kohacraft | 0:310cbbca646a | 105 | tone( 659.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 106 | tone( 698.5 , 0.2 ); |
kohacraft | 0:310cbbca646a | 107 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 108 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 109 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 110 | |
kohacraft | 0:310cbbca646a | 111 | tone( 587.3 , 0.4 ); |
kohacraft | 0:310cbbca646a | 112 | tone( 659.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 113 | tone( 587.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 114 | tone( 523.3 , 0.2 ); |
kohacraft | 0:310cbbca646a | 115 | tone( 493.9 , 0.2 ); |
kohacraft | 0:310cbbca646a | 116 | tone( 523.3 , 1.2 ); |
kohacraft | 0:310cbbca646a | 117 | |
kohacraft | 0:310cbbca646a | 118 | wait(0.4); |
kohacraft | 0:310cbbca646a | 119 | } |
kohacraft | 0:310cbbca646a | 120 | } |