Give a try, 每次都要把光值先寫在程式裡, 好像有點麻煩。
所以祥瑞老哥想了一個自動記錄的功能, 咱的目標是光感車直接出發, 就可以走完全程。
所以按下3號touch sensor之後會紀錄1號light的白色值與2號光感的黑色值。
按下4號touch sensor之後會紀錄1號light的黑色值與2號光感的白色值。
按鈕的部分其實可以用NXT的左右鍵, 但用touch sensor比較有扣板機的感覺。
請看NXC程式碼:
#define H 60
#define L 40
task main(){
SetSensorLight(S1);
SetSensorLight(S2);
SetSensorTouch(S3);
SetSensorTouch(S4);
int S1_N;
int S2_N;
int S1_Br;
int S1_Da;
int S2_Br;
int S2_Da;
until(Sensor(S3)==1);
S1_Br=Sensor(S1);
S2_Da=Sensor(S2);
until(Sensor(S4)==1);
S1_Da=Sensor(S1);
S2_Br=Sensor(S2);
S1_N=(S1_Br+S1_Da)/2;
S2_N=(S2_Br+S2_Da)/2;
while(true){
if(Sensor(S1)>S1_N && Sensor(S2)>S2_N){
OnRev(OUT_AC, L);
}
else if(Sensor(S1)>S1_N && Sensor(S2)<=S2_N){
OnRev(OUT_A, H);
//OnRev(OUT_C, L);
Off(OUT_C);
Wait(500);
}
else if(Sensor(S1)<=S1_N && Sensor(S2)>S2_N){
Off(OUT_A);
//OnRev(OUT_A, L);
OnRev(OUT_C, H);
Wait(500);
}
else{
OnRev(OUT_AC, L);
//PlayTone(440, 50);
}
}
}