ケース内に条件を追加するにはどうすればよいですか。結果が15cm未満の場合、停車して後退し、左折または右折する機能を追加したいと考えています。
if (Serial.available())
{ val = Serial.read();
switch(val)
{
case 'a':
servoX.write(lx);
qian(); // forward
break;
case 'b':
hou(); //back
break;
ケース内に条件を追加するにはどうすればよいですか。結果が15cm未満の場合、停車して後退し、左折または右折する機能を追加したいと考えています。
if (Serial.available())
{ val = Serial.read();
switch(val)
{
case 'a':
servoX.write(lx);
qian(); // forward
break;
case 'b':
hou(); //back
break;
@Barmarは正しいです。switchステートメントでネストロジックを形成するのを止めるものは何もないので、ケースブロックの1つにif条件を追加しても問題ありません。
余談ですが、車を避けて壁を走るのが初めての場合は、何かがセンサーに近づきすぎたときに信号に何が起こるかに注意してください。ほとんどのセンサーでは、離れていることを示す読み取り値が得られるようになります。動作範囲よりも近づきます。このため、単に制限を設定するよりも賢く試すか、センサーの最小動作範囲よりも少し高い制限を設定する必要があります。超音波センサーは、安価な IR 距離センサーよりも優れていますが、速度を上げるには注意が必要です。また、非常に感度の高い超音波センサーを使用する場合は、反応する前に連続していくつかの一貫した読み取り値が必要になることをお勧めします.