肉球型LED基板で遊ぶ、マイコン・プログラミング体験教室

小学4年 H.S.さんのプログラム

2022.08.23



/* ############# メインの関数 ############### */
void main(void) {
    // マイコンの初期化
    SYSTEM_Initialize();
        
    // ループはじめ
    while(1) {
        pat0(); //パターン0 実行
        pat1(); //パターン1 実行
        pat2(); //パターン2 実行
        pat3(); //パターン3 実行
        pat4(); //パターン4 実行
        pat5(); //パターン5 実行
    }
    //ループおわり
}
// メインの関数終わり
 
 
 
 
 
 
 
 
/* ############# パターン0 ############### */
char pat0( void ) {
    // ループはじめ
    while(1) {
        
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_On(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 500 ); // お休み
        
    }
    // ループおわり
}
//パターン0おわり
 
 



/* ############# パターン1 ############### */
char pat1( void ) {
    // ループはじめ
    while(1) {
        
        LED1_Off(); // LED1 を消す
        LED2_On(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 500 ); // お休み
        
        LED1_On(); // LED1 を点ける
        LED2_Off(); // LED2 を点ける
        LED3_On(); // LED3 を点ける
        LED4_Off(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 500 ); // お休み
            }

    // ループおわり
}
//パターン1おわり

 



/* ############# パターン2 ############### */
char pat2( void ) {
    // ループはじめ
    while(1) {
        
        LED1_On(); // LED1 を点ける
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_On(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 100 ); // お休み
        
        LED1_On(); // LED1 を消す
        LED2_On(); // LED2 を点ける
        LED3_Off(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 20 ); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_On(); // LED3 を点ける
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 0); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_On(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_On(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
    }
    // ループおわり
}
//パターン2おわり
 
 

 
/* ############# パターン3 ############### */
char pat3( void ) {
    // ループはじめ
    while(1) {
        
        LED1_Off(); // LED1 を点ける
        LED2_Off(); // LED2 を消す
        LED3_On(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 2 ); // お休み
        
        LED1_On(); // LED1 を消す
        LED2_On(); // LED2 を点ける
        LED3_Off(); // LED3 を消す
        LED4_On(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 1 ); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_On(); // LED3 を点ける
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_On(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
        LED1_On(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を点ける
        LED4_On(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 1); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を点ける
        LED3_Off(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 1); // お休み
        
    }
    // ループおわり
}
//パターン3おわり
 

 


/* ############# パターン4 ############### */
char pat4( void ) {
    // ループはじめ
    while(1) {
        
        LED1_O(); // LED1 を点ける
        LED2_Off(); // LED2 を消す
        LED3_On(); // LED3 を消す
        LED4_On(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 100 ); // お休み
        
        LED1_On(); // LED1 を点ける
        LED2_On(); // LED2 を点ける
        LED3_Off(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 900 ); // お休み
        
        LED1_On(); // LED1 を点ける
        LED2_Off(); // LED2 を点ける
        LED3_On(); // LED3 を点ける
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
        LED1_Off(); // LED1 を点ける
        LED2_On(); // LED2 を点ける
        LED3_On(); // LED3 を点ける
        LED4_Off(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 0 ); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_On(); // LED2 を点ける
        LED3_On(); // LED3 を点ける
        LED4_Off(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
        LED1_On(); // LED1 を消す
        LED2_On(); // LED2 を消す
        LED3_On(); // LED3 を点ける
        LED4_On(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 2000000 ); // お休み
        
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_On(); // LED4 を点ける
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
        LED1_On(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        if ( end() ) return 1; // もしボタンが押されたら終わり
        sleep( 200 ); // お休み
        
    }
    // ループおわり
}
//パターン4おわり
 
 

 
/* ############# パターン5 ############### */
char pat5( void ) {
    // 変数の宣言
int random, x, y, z, a, b, c;
    
    // ループはじめ
    while(1) {
        
        // いったん全部消す
        LED1_Off(); // LED1 を消す
        LED2_Off(); // LED2 を消す
        LED3_Off(); // LED3 を消す
        LED4_Off(); // LED4 を消す
        
        // 1~4のランダムな数字を得る
        random = getRand( 1, 4 );
                
        // ランダムが1ならば
        if ( random == 1 ) {
          LED1_On(); // LED1 を点ける
        }
        // ランダムが2ならば
        if ( random == 2 ) {
            LED2_On(); // LED2 を点ける
        }
        // ランダムが3ならば
        if ( random == 3 ) {
            LED3_On(); // LED3 を点ける
        }
        // ランダムが4ならば
        if ( random == 4 ) {
            LED4_On(); // LED4 を点ける
        }
        
        
        if ( end() ) return 1; // もしボタンが押されたら終わり
        
        // 50ミリ秒~1000ミリ秒の間のランダムな時間待つ
        random = getRand( 50, 1000 );
        sleep( random ); // お休み
        
    }
    // ループおわり
    
}
//パターン5おわり