带轨道传感器和Arduino的计数线[关闭]

问题描述 投票:0回答:0

我正在为我的巡线机器人编写代码,它需要在特定点转向。 该路线由带右转弯的线路组成,因此从本质上讲,它是一系列 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);
}
arduino robotics robot arduino-c++
© www.soinside.com 2019 - 2024. All rights reserved.