标题: 关于单片机避障智能小车制作的几个问题~求交流指点一下 [打印本页]

作者: 1061897836    时间: 2018-10-23 21:48
标题: 关于单片机避障智能小车制作的几个问题~求交流指点一下
最近鄙人学单片机一直想尝试做东西实践一下,于是就决定做一个常见的智能小车,用两个红外对管模块和超声波传感器简单做了避障的功能,但是就出现了问题,程序修改了几次,也找同学一起研究了一下,还是想不到为啥,还望各位大佬指点迷津~


1.我用的红外对管模块,感觉这个模块不怎么好,电压5V电位调到最大,灵敏度只有12cm左右,大佬们都用过哪些更好的类似模块?
2.运行程序之后,小车遇到障碍会停下转弯,但是会有这种情况,前方明明没有障碍,小车前进(0~两三米)就会自动转弯,这个问题让我很纠结



单片机源码:
  1. #include<reg52.h>
  2. #define uc unsigned char
  3. #define ui unsigned int
  4. sbit   IN1=P2^1;                                           //L298N
  5. sbit   IN2=P2^2;
  6. sbit   IN3=P2^3;
  7. sbit   IN4=P2^4;
  8. sbit   ENA=P2^0;           
  9. sbit   ENB=P2^5;
  10. ui  count1=50,count2=50,time;
  11. ui    timer,date;
  12. sbit     trig=P3^7;                                           //超声波
  13. sbit     echo=P3^6;         
  14. sbit  leftled=P3^5;
  15. sbit rightled=P3^4;
  16. void delay(ui i)                                     //延时函数
  17. {
  18.          while(i--);
  19. }


  20. void init0()                              //定时器0初始化,用于输出PWM
  21. {
  22.         TMOD = 0x01;        
  23.         TH0 = (65536 - 10)/256;               
  24.         TL0 = (65536 - 10)%256;
  25.         TR0 = 1;   
  26.          EA = 1;                                
  27.         ET0 = 1;  
  28.                   
  29. }

  30. void init1()                           //定时器1初始化,用于超声波测距
  31. {
  32.     TMOD=0X01;
  33.     TH1=0x00;
  34.     TL1=0x00;
  35. }

  36. void super_start()                            //超声波发送信号
  37. {
  38.          trig=1;
  39.          delay(10);
  40.           trig=0;
  41. }

  42. void super_count()                                 //计算距离      
  43. {
  44.           timer=TH1*256+TL1;
  45.           TH1=0x00;
  46.           TL1=0x00;
  47.           date=(timer*1.7)/100;
  48.         
  49. }
  50. void cargo()                                              //小车前进
  51. {
复制代码




作者: 小猫猫爱吃鱼    时间: 2018-10-23 22:22
你好!
1、首先你的代码不全
2、功能代码,还是需要细心调试
3、自动转弯,应该是超声波的问题
4、给你两个实物参考一下
多功能小车,51系列 - 供求信息发布专区 单片机论坛
http://www.51hei.com/bbs/dpj-135627-1.html

WIFI(ESP8266)无线控制小车(毕设佳品) - 51单片机 单片机论坛
http://www.51hei.com/bbs/dpj-112679-1.html

作者: HC6800-ES-V2.0    时间: 2018-10-24 09:28
呵呵呵呵,这个小车我做过,你说的问题我有点心得,交流一下:
第一:你用的红外对管避障模块,它只有那么远,够了啊,12cm远的障碍物,刚好可以避开,也正好应该避开啊。太远不用避,太近避不了的。
第二:由于是红外模块,所以对光线是很敏感的,环境光线太亮都会影响模块——日常的光线中就有大量的红外线。你说的这种情况,很可能就是因为环境光影响了模块的工作。我是这样解决问题的:第一:在很暗的环境中使用小车,一点问题都没有;第二:老师教的方法:用红色玻璃纸(水果糖的包装纸)裹上对管四周。这种办法也有不好的地方,就是会影响对管的感应距离。你可以试试。
老师说过:玩单片机,不仅仅是程序,还有硬件,硬件的选择、调试不好,程序就发挥不了应有的功能。
作者: 1061897836    时间: 2018-10-24 12:42
小猫猫爱吃鱼 发表于 2018-10-23 22:22
你好!
1、首先你的代码不全
2、功能代码,还是需要细心调试

谢谢前辈指点,有点思路了
作者: 1061897836    时间: 2018-10-24 12:42
HC6800-ES-V2.0 发表于 2018-10-24 09:28
呵呵呵呵,这个小车我做过,你说的问题我有点心得,交流一下:
第一:你用的红外对管避障模块,它只有那么 ...

谢谢前辈指点,很有收获~
作者: zjy007    时间: 2018-10-24 15:36
红外的感觉不是你这么用的光都分散了,可以加个外罩,实测20厘米没问题




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1