找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2147|回复: 5
打印 上一主题 下一主题
收起左侧

关于单片机避障智能小车制作的几个问题~求交流指点一下

[复制链接]
跳转到指定楼层
楼主
最近鄙人学单片机一直想尝试做东西实践一下,于是就决定做一个常见的智能小车,用两个红外对管模块和超声波传感器简单做了避障的功能,但是就出现了问题,程序修改了几次,也找同学一起研究了一下,还是想不到为啥,还望各位大佬指点迷津~


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. {
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:303383 发表于 2018-10-23 22:22 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

使用道具 举报

地板
ID:403916 发表于 2018-10-24 12:42 | 只看该作者
小猫猫爱吃鱼 发表于 2018-10-23 22:22
你好!
1、首先你的代码不全
2、功能代码,还是需要细心调试

谢谢前辈指点,有点思路了
回复

使用道具 举报

5#
ID:403916 发表于 2018-10-24 12:42 | 只看该作者
HC6800-ES-V2.0 发表于 2018-10-24 09:28
呵呵呵呵,这个小车我做过,你说的问题我有点心得,交流一下:
第一:你用的红外对管避障模块,它只有那么 ...

谢谢前辈指点,很有收获~
回复

使用道具 举报

6#
ID:241273 发表于 2018-10-24 15:36 | 只看该作者
红外的感觉不是你这么用的光都分散了,可以加个外罩,实测20厘米没问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表