当前位置:   article > 正文

智能小车3-跟随小车

智能小车3-跟随小车

红外壁障模块

TCRT5000循迹模块比较后就会发现,跟随模块的设计和上节的传感器的设计是一样的,只是跟随模块的红外发射和接受口朝前,而上节的传感器朝下。

因此

模块输出端为高电平:当发射出的红外线没有或反射强度不够大时,红外线接收管就会一直处于关断状态,DO输出高电平,指示二级管一直处于熄灭状态。

模块输出端为低电平:而当被检测物体出现再检测范围内导致红外线被反射回来且强度足够大,此时红外接收管饱和,DO输出低电平,指示二级管被点亮。

总结就是: 有物体遮挡小车,反射的强度不够时,DO为高,开关指示灯不亮;反之DO为低,开关指示灯亮

跟随小车的原理

和循迹小车类似,只不过循迹循的是地板上的黑色,而跟随是跟随前方的黑色:

左边跟随模块能返回红外(输出低电平)且右边模块不能返回红外(输出高电平)时,说明物体在左边,需要左转

右边跟随模块能返回红外(输出低电平)且左边模块不能返回红外(输出高电平)时,说明物体在右边,需要右转

接线也和上节一样,这里我选择了左边传感器OUT接P2.4,右边传感器OUT接P2.5:

代码实现:

main.c

  1. #include "reg52.h"
  2. #include <intrins.h>
  3. #include <delay.h>
  4. #include <motor.h>
  5. sbit Left_Sensor = P2^4;
  6. sbit Right_Sensor = P2^5;
  7. sbit led2 = P3^6;//根据原理图(电路图),设备变量led2指向P3组IO口的第6口
  8. void main()
  9. {
  10. while(1)
  11. {
  12. //
  13. // 左边跟随模块能返回红外(人往左偏),输出低电平,右边不能返回,输出高电平,说明物体在左边,需要左转
  14. // 右边跟随模块能返回红外,输出低电平,左边不能返回,输出高电平,说明物体在右边,需要右转
  15. if(Left_Sensor == 0 && Right_Sensor == 0)
  16. {
  17. Motor_front();//前
  18. }
  19. Delay1000ms();
  20. if(Left_Sensor == 1 && Right_Sensor == 0)
  21. {
  22. Motor_Right();//右转
  23. }
  24. Delay1000ms();
  25. if(Left_Sensor == 0 && Right_Sensor == 1)
  26. {
  27. Motor_Left();//左转
  28. }
  29. Delay1000ms();
  30. if(Left_Sensor == 1 && Right_Sensor == 1)
  31. {
  32. Motor_Stop();
  33. }
  34. }
  35. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/767727
推荐阅读
相关标签
  

闽ICP备14008679号