kohacraft Lab
/
kc_shingo
LEDで自動車と歩行者の信号機を、ブザーでカッコーを再現したプログラムです。自由に改変して使ってください。
Diff: main.cpp
- Revision:
- 1:020620966b3c
- Parent:
- 0:75120f0bbd80
--- a/main.cpp Thu Jul 09 05:28:28 2015 +0000 +++ b/main.cpp Sun Jul 26 03:48:30 2015 +0000 @@ -1,141 +1,94 @@ #include "mbed.h" -DigitalOut B(dp1); //自動車用信号 青 -DigitalOut Y(dp2); // 黄 -DigitalOut R(dp4); // 赤 -DigitalOut B2(dp6); //歩行者用信号 青 -DigitalOut R2(dp9); // 赤 -DigitalOut buzz(LED2); +DigitalOut B(dp17); //自動車用信号 青 +DigitalOut Y(dp16); // 黄 +DigitalOut R(dp15); // 赤 +DigitalOut B2(dp13); //歩行者用信号 青 +DigitalOut R2(dp14); // 赤 +DigitalOut buzz(dp28); //スピーカー -int main() { +int main() { while(1) { - B = 1; - Y = 0; + B = 1; //自動車:5秒間青 + Y = 0; //1がLED ON 0がLED OFF R = 0; - B2 = 0; + B2 = 0; //歩行者:赤 R2 = 1; - wait(5.0); + wait(5.0); //5秒間 - B = 0; + B = 0; //自動車:1秒間黄色 Y = 1; R = 0; B2 = 0; R2 = 1; wait(1.0); - B = 0; + B = 0; //自動車:2秒間赤 Y = 0; R = 1; - B2 = 0; + B2 = 0; //歩行者:赤のまま R2 = 1; - wait(3.0); + wait(2.0); //歩行者の信号を青にする - B = 0; + B = 0; //自動車:赤のまま Y = 0; R = 1; - B2 = 1; + B2 = 1; //歩行者:青にする R2 = 0; - for( int i=0 ; i<5 ; i++ ) - { - //カッコーを鳴らす - for( int i=0 ; i<300 ; i++ ) - { - buzz = 1; - wait(1.0/880.00/4); - buzz = 0; - wait(1.0/880.00/4); - - } - wait(0.2); - - for( int i=0 ; i<700 ; i++ ) - { - - buzz = 0; - wait(1.0/698.45/4); - buzz = 1; - wait(1.0/698.45/4); - - } - wait(0.8); + //カッコーを5回鳴らす + for( int i=0 ; i<5 ; i++ ) + { + //ミの音を鳴らす + for( int i=0 ; i<300 ; i++ ) + { + buzz = 1; //スピーカーをON OFF させて音を作る + wait(1.0/880.00/4); //1オクターブ上のミ 880*2Hz + buzz = 0; + wait(1.0/880.00/4); + } + wait(0.2); + //ドの音を鳴らす + for( int i=0 ; i<700 ; i++ ) + { + + buzz = 0; + wait(1.0/698.45/4); //1オクターブ上のド 698.45*2Hz + buzz = 1; + wait(1.0/698.45/4); + + } + wait(0.8); + } + //歩行者用信号を点滅させる - B = 0; - Y = 0; - R = 1; - B2 = 0; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 1; - R2 = 0; - wait(0.3); + for( int i=0 ; i<5 ; i++ ) + { + B = 0; + Y = 0; + R = 1; + B2 = 1; //歩行者:青を消光らす + R2 = 0; + wait(0.3); + + B = 0; + Y = 0; + R = 1; + B2 = 0; //歩行者:青を消す + R2 = 0; + wait(0.3); + } + B = 0; Y = 0; R = 1; B2 = 0; - R2 = 0; - - B = 0; - Y = 0; - R = 1; - B2 = 1; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 0; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 1; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 0; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 1; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 0; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 1; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 0; - R2 = 0; - wait(0.3); - B = 0; - Y = 0; - R = 1; - B2 = 0; - R2 = 1; - wait(1.0); + R2 = 1; //歩行者:赤を消光らす + wait(2.0); }