LEDで自動車と歩行者の信号機を、ブザーでカッコーを再現したプログラムです。自由に改変して使ってください。

Dependencies:   mbed

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);
         
       
     }