Arduino 避障寻线小车代码解析
这段代码是一个循环函数,用于控制避障和寻线小车的行为。
首先,在setup()函数中初始化了各个引脚的输入输出模式。
然后,在loop()函数中,首先读取了三个循迹传感器(trace1、trace2、trace3)的值,并存储在对应的变量中。
接下来,通过调用函数checkdistance_0_0(),获取了三个超声波传感器(Dist1、Dist2、Dist3)测得的距离。
接下来,根据循迹和避障的条件,进行不同的控制操作:
-
如果循迹传感器和避障传感器都没有检测到障碍物,则执行以下操作:
- 如果Dist2和Dist3的距离都小于等于25,说明左边有障碍物,向左转。
- 如果Dist2和Dist1的距离都小于等于25,说明右边有障碍物,向右转。
- 如果Dist3和Dist1的距离都大于等于20,说明前方没有障碍物,直行。
- 如果Dist1的距离小于等于20,说明右侧有障碍物,向右调整。
- 如果Dist3的距离小于等于20,说明左侧有障碍物,向左调整。
- 如果Dist2的距离小于等于15,说明前方有障碍物,后退。
-
如果循迹传感器检测到黑线,则执行以下操作:
- 如果trace2为1且trace1为1且trace3为0,或者trace2为0且trace1为1且trace3为0,说明需要向左转。
- 如果trace2为1且trace1为0且trace3为1,或者trace2为0且trace1为0且trace3为1,说明需要向右转。
- 如果trace3为1且trace2为1且trace1为1,说明直行。
以上就是这段代码的详细解释,它通过读取传感器的数值来判断小车的行动方式,实现了避障和寻线的功能。
原文地址: https://www.cveoy.top/t/topic/bGMs 著作权归作者所有。请勿转载和采集!