[[戻る>2005/A6]]
 int light_max=0;          //光の最大強度を定義し、0からスタート
 int i;                    //変数iを定義
 int i_brightness;         //光強度最大のときのiをi_brightnessと定義
 sub turn_left()           //3/100秒左周り
 {
    OnFwd(OUT_A);
    OnRev(OUT_C);
    Wait(3);
    Off(OUT_A+OUT_C);
 }
 sub turn_right()          //光強度最大の場所に右周りで戻る
 {
    OnRev(OUT_A);
    OnFwd(OUT_C);
    Wait(237-i_brightness*3);
    Off(OUT_A+OUT_C);
 }
 
 task main()
 {
    SetSensor(SENSOR_2, SENSOR_LIGHT); //センサー2を光センサに
       
    for (i=1; i<=79; i++)              //1からカウントしながら79回以下の動作を繰り返す
    {
       turn_left();                    //左周り
       if(SENSOR_2 > light_max)        //もしセンサの値が直前までのlight_maxより大きければ
       {
          light_max = SENSOR_2;        //その値を最大強度に
          i_brightness = i;            //そのときのカウンタの回数をi_brightnessに
          Wait(3);                     //左周りに要する時間と同じだけ待つ              
       }
    }
    turn_right();                      //光の最大強度のところに戻る
 }

 **感想
     滑らかに一回転するのに要する時間と、止まりながら一回転するのに要する時間が異るのに困った。
     結局なんとなくつじつまを合わせることで解決。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS