kohacraft Lab
/
kc_shingo
LEDで自動車と歩行者の信号機を、ブザーでカッコーを再現したプログラムです。自由に改変して使ってください。
main.cpp@1:020620966b3c, 2015-07-26 (annotated)
- Committer:
- kohacraft
- Date:
- Sun Jul 26 03:48:30 2015 +0000
- Revision:
- 1:020620966b3c
- Parent:
- 0:75120f0bbd80
change pin position
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kohacraft | 0:75120f0bbd80 | 1 | #include "mbed.h" |
kohacraft | 0:75120f0bbd80 | 2 | |
kohacraft | 1:020620966b3c | 3 | DigitalOut B(dp17); //自動車用信号 青 |
kohacraft | 1:020620966b3c | 4 | DigitalOut Y(dp16); // 黄 |
kohacraft | 1:020620966b3c | 5 | DigitalOut R(dp15); // 赤 |
kohacraft | 1:020620966b3c | 6 | DigitalOut B2(dp13); //歩行者用信号 青 |
kohacraft | 1:020620966b3c | 7 | DigitalOut R2(dp14); // 赤 |
kohacraft | 1:020620966b3c | 8 | DigitalOut buzz(dp28); //スピーカー |
kohacraft | 0:75120f0bbd80 | 9 | |
kohacraft | 1:020620966b3c | 10 | int main() { |
kohacraft | 0:75120f0bbd80 | 11 | while(1) { |
kohacraft | 0:75120f0bbd80 | 12 | |
kohacraft | 1:020620966b3c | 13 | B = 1; //自動車:5秒間青 |
kohacraft | 1:020620966b3c | 14 | Y = 0; //1がLED ON 0がLED OFF |
kohacraft | 0:75120f0bbd80 | 15 | R = 0; |
kohacraft | 1:020620966b3c | 16 | B2 = 0; //歩行者:赤 |
kohacraft | 0:75120f0bbd80 | 17 | R2 = 1; |
kohacraft | 1:020620966b3c | 18 | wait(5.0); //5秒間 |
kohacraft | 0:75120f0bbd80 | 19 | |
kohacraft | 1:020620966b3c | 20 | B = 0; //自動車:1秒間黄色 |
kohacraft | 0:75120f0bbd80 | 21 | Y = 1; |
kohacraft | 0:75120f0bbd80 | 22 | R = 0; |
kohacraft | 0:75120f0bbd80 | 23 | B2 = 0; |
kohacraft | 0:75120f0bbd80 | 24 | R2 = 1; |
kohacraft | 0:75120f0bbd80 | 25 | wait(1.0); |
kohacraft | 0:75120f0bbd80 | 26 | |
kohacraft | 1:020620966b3c | 27 | B = 0; //自動車:2秒間赤 |
kohacraft | 0:75120f0bbd80 | 28 | Y = 0; |
kohacraft | 0:75120f0bbd80 | 29 | R = 1; |
kohacraft | 1:020620966b3c | 30 | B2 = 0; //歩行者:赤のまま |
kohacraft | 0:75120f0bbd80 | 31 | R2 = 1; |
kohacraft | 1:020620966b3c | 32 | wait(2.0); |
kohacraft | 0:75120f0bbd80 | 33 | |
kohacraft | 0:75120f0bbd80 | 34 | //歩行者の信号を青にする |
kohacraft | 1:020620966b3c | 35 | B = 0; //自動車:赤のまま |
kohacraft | 0:75120f0bbd80 | 36 | Y = 0; |
kohacraft | 0:75120f0bbd80 | 37 | R = 1; |
kohacraft | 1:020620966b3c | 38 | B2 = 1; //歩行者:青にする |
kohacraft | 0:75120f0bbd80 | 39 | R2 = 0; |
kohacraft | 0:75120f0bbd80 | 40 | |
kohacraft | 1:020620966b3c | 41 | //カッコーを5回鳴らす |
kohacraft | 1:020620966b3c | 42 | for( int i=0 ; i<5 ; i++ ) |
kohacraft | 1:020620966b3c | 43 | { |
kohacraft | 1:020620966b3c | 44 | //ミの音を鳴らす |
kohacraft | 1:020620966b3c | 45 | for( int i=0 ; i<300 ; i++ ) |
kohacraft | 1:020620966b3c | 46 | { |
kohacraft | 1:020620966b3c | 47 | buzz = 1; //スピーカーをON OFF させて音を作る |
kohacraft | 1:020620966b3c | 48 | wait(1.0/880.00/4); //1オクターブ上のミ 880*2Hz |
kohacraft | 1:020620966b3c | 49 | buzz = 0; |
kohacraft | 1:020620966b3c | 50 | wait(1.0/880.00/4); |
kohacraft | 1:020620966b3c | 51 | |
kohacraft | 0:75120f0bbd80 | 52 | } |
kohacraft | 1:020620966b3c | 53 | wait(0.2); |
kohacraft | 0:75120f0bbd80 | 54 | |
kohacraft | 1:020620966b3c | 55 | //ドの音を鳴らす |
kohacraft | 1:020620966b3c | 56 | for( int i=0 ; i<700 ; i++ ) |
kohacraft | 1:020620966b3c | 57 | { |
kohacraft | 1:020620966b3c | 58 | |
kohacraft | 1:020620966b3c | 59 | buzz = 0; |
kohacraft | 1:020620966b3c | 60 | wait(1.0/698.45/4); //1オクターブ上のド 698.45*2Hz |
kohacraft | 1:020620966b3c | 61 | buzz = 1; |
kohacraft | 1:020620966b3c | 62 | wait(1.0/698.45/4); |
kohacraft | 1:020620966b3c | 63 | |
kohacraft | 1:020620966b3c | 64 | } |
kohacraft | 1:020620966b3c | 65 | wait(0.8); |
kohacraft | 1:020620966b3c | 66 | } |
kohacraft | 1:020620966b3c | 67 | |
kohacraft | 0:75120f0bbd80 | 68 | //歩行者用信号を点滅させる |
kohacraft | 1:020620966b3c | 69 | for( int i=0 ; i<5 ; i++ ) |
kohacraft | 1:020620966b3c | 70 | { |
kohacraft | 1:020620966b3c | 71 | B = 0; |
kohacraft | 1:020620966b3c | 72 | Y = 0; |
kohacraft | 1:020620966b3c | 73 | R = 1; |
kohacraft | 1:020620966b3c | 74 | B2 = 1; //歩行者:青を消光らす |
kohacraft | 1:020620966b3c | 75 | R2 = 0; |
kohacraft | 1:020620966b3c | 76 | wait(0.3); |
kohacraft | 1:020620966b3c | 77 | |
kohacraft | 1:020620966b3c | 78 | B = 0; |
kohacraft | 1:020620966b3c | 79 | Y = 0; |
kohacraft | 1:020620966b3c | 80 | R = 1; |
kohacraft | 1:020620966b3c | 81 | B2 = 0; //歩行者:青を消す |
kohacraft | 1:020620966b3c | 82 | R2 = 0; |
kohacraft | 1:020620966b3c | 83 | wait(0.3); |
kohacraft | 1:020620966b3c | 84 | } |
kohacraft | 1:020620966b3c | 85 | |
kohacraft | 0:75120f0bbd80 | 86 | B = 0; |
kohacraft | 0:75120f0bbd80 | 87 | Y = 0; |
kohacraft | 0:75120f0bbd80 | 88 | R = 1; |
kohacraft | 0:75120f0bbd80 | 89 | B2 = 0; |
kohacraft | 1:020620966b3c | 90 | R2 = 1; //歩行者:赤を消光らす |
kohacraft | 1:020620966b3c | 91 | wait(2.0); |
kohacraft | 0:75120f0bbd80 | 92 | |
kohacraft | 0:75120f0bbd80 | 93 | |
kohacraft | 0:75120f0bbd80 | 94 | } |
kohacraft | 0:75120f0bbd80 | 95 | } |