我正在为我的巡线机器人编写代码,它需要在特定点转向。 该路线由带右转弯的线路组成,因此从本质上讲,它是一系列 T 形转弯,机器人可以在其中继续前进或向右转弯。 做到这一点的最佳方法是采用跟踪传感器输入来使他转弯。 我正在使用最右边的传感器,在我的代码中我称之为
S5
。
理论上,我已经可以很容易地让它转弯,但是如果我需要我的机器人只在第二个十字路口转弯,例如,我需要他能够计算他已经通过了多少个十字路口,这样:
他在第一个路口一直跟着线往前走;
他在第二个路口右转;
有人可以帮助我吗?
TLDR:我需要一个程序来计算传感器打开或关闭的次数,当计数器达到某个值时,代码可以调用一个函数(向右转)。
这是我的代码的一部分,可能与问题有关:
do
{
if (valor_s2 == HIGH && valor_s4 == HIGH);
{
digitalWrite(motorEsquerdaFrente, HIGH);
digitalWrite(motorEsquerdaTras, LOW);
digitalWrite(motorDireitaFrente, HIGH);
digitalWrite(motorDireitaTras, LOW);
analogWrite(velocidade_motorE,70);
analogWrite(velocidade_motorD,70);
}
if (valor_s2 == HIGH && valor_s4 == LOW);
{
digitalWrite(motorEsquerdaFrente, HIGH);
digitalWrite(motorEsquerdaTras, LOW);
digitalWrite(motorDireitaFrente, HIGH);
digitalWrite(motorDireitaTras, LOW);
analogWrite(velocidade_motorE,70);
analogWrite(velocidade_motorD,60);
}
if (valor_s2 == LOW && valor_s4 == HIGH);
{
digitalWrite(motorEsquerdaFrente, HIGH);
digitalWrite(motorEsquerdaTras, LOW);
digitalWrite(motorDireitaFrente, HIGH);
digitalWrite(motorDireitaTras, LOW);
analogWrite(velocidade_motorE,60);
analogWrite(velocidade_motorD,70);
}
}
while (valor_s1 == LOW && valor_s1 == LOW && //number of times sensor s5 has detected input high);
}