[[2006b/A1/課題3左]] *センサー1個のプログラム [#s70e2974] #define Turn_Time 360 #define Do 523 #define Re 587 #define Mi 659 #define Fa 698 #define Sol 784 #define Ra 880 task play_music() { while(true) { PlayTone(Do,60); Wait(65); PlayTone(Do,60); Wait(65); PlayTone(Sol,60); Wait(65); PlayTone(Sol,60); Wait(65); PlayTone(Ra,60); Wait(65); PlayTone(Ra,60); Wait(65); PlayTone(Sol,120); Wait(125); PlayTone(Fa,60); Wait(65); PlayTone(Fa,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Re,60); Wait(65); PlayTone(Re,60); Wait(65); PlayTone(Do,120); Wait(125); PlayTone(Sol,60); Wait(65); PlayTone(Sol,60); Wait(65); PlayTone(Fa,60); Wait(65); PlayTone(Fa,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Re,120); Wait(125); PlayTone(Sol,60); Wait(65); PlayTone(Sol,60); Wait(65); PlayTone(Fa,60); Wait(65); PlayTone(Fa,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Re,120); Wait(125); PlayTone(Do,60); Wait(65); PlayTone(Do,60); Wait(65); PlayTone(Sol,60); Wait(65); PlayTone(Sol,60); Wait(65); PlayTone(Ra,60); Wait(65); PlayTone(Ra,60); Wait(65); PlayTone(Sol,120); Wait(125); PlayTone(Fa,60); Wait(65); PlayTone(Fa,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Mi,60); Wait(65); PlayTone(Re,60); Wait(65); PlayTone(Re,60); Wait(65); PlayTone(Do,120); Wait(125); Wait(100); } } task main() { SetSensor(SENSOR_1,SENSOR_LIGHT); SetSensor(SENSOR_2,SENSOR_LIGHT); int light_max=0; int time_max; ClearTimer(0); OnFwd(OUT_A); OnRev(OUT_C); start play_music; while(FastTimer(0) < Turn_Time){ if(SENSOR_1 > light_max){ light_max=SENSOR_1; time_max=FastTimer(0); } } stop play_music; OnFwd(OUT_C); OnRev(OUT_A); Wait(Turn_Time-time_max); while(true){ if(light_max>60){ if(SENSOR_1>light_max-20){ OnFwd(OUT_A+OUT_C);} else{ OnFwd(OUT_A); OnRev(OUT_C);} } if(45<=light_max<=60){ if(SENSOR_1>light_max-5){ OnFwd(OUT_A+OUT_C);} else{ OnFwd(OUT_A); OnRev(OUT_C);} } else{ if(SENSOR_1>light_max){ OnFwd(OUT_A+OUT_C);} else{ OnFwd(OUT_A); OnRev(OUT_C);} } } }