在调试过程中,发现红外循迹模块不容易识别黑色和白色。
但是我们知道红外模块是发出光线,并检测反射光线判断反射物体的特征,所以红外模块可以通过检测到反射光的不同判断黑色和白色。白色反射的光更多,黑色反射的光少,所以白色相当于靠的近的物体,黑色相当于离得远的物体。
我们用一个物体靠近红外模块的探测头,在某个距离a处,红外模块发出提示光表示检测到物体,而我们稍微远离一下物体,提示光并未关闭,直到距离b处,提示光熄灭表示探测到的物体消失。显而易见,检测阈值a<消失阈值b。我们相当于用检测阈值a检测白色!!!消失阈值b检测黑色!!!
如果,我们不断调用检测阈值a,让它既检测黑色又检测白色呢?那样就可以大大提升检测灵敏度了!
所以方案是让红外模块的供电引脚每隔5ms通断一次,相当于每10ms检测一次(也可以根据实际状况改变间隔),这样相当于每10ms刷新一次检测模块,检测阈值a发挥作用,而消失阈值b不发挥作用。
代码思路:
在调试时在main()中写一个
while(1){
if(读取给vcc电平=0)
{设置vcc为高电平 }
else
{设置vcc为低电平};
延时5ms;
}
在使用时用TIM定时器中断,每隔5ms执行一次
if(读取给vcc电平=0)
{设置vcc为高电平 }
else
{设置vcc为低电平};