找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助!想做一个红外遥控51单片机智能小车

[复制链接]
跳转到指定楼层
楼主
目前我的资源有一辆组装好的红外寻迹小车,一个红外遥控器,没有LCD。大佬们有没有什么资料可以学习一下

IMG_20190217_113241.jpg (2.39 MB, 下载次数: 110)

IMG_20190217_113241.jpg

IMG_20190217_113259.jpg (3.7 MB, 下载次数: 119)

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

使用道具 举报

沙发
ID:305384 发表于 2019-2-17 19:48 来自手机 | 只看该作者
可以做联系我QQ1130585778
回复

使用道具 举报

板凳
ID:303383 发表于 2019-2-17 21:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

地板
ID:164602 发表于 2019-2-18 09:26 | 只看该作者
我做过,听我的劝,不要做这个!!!!!
第一:只要能让单片机读到你的红外遥控信号,这个小车基本就成功了,很简单。
第二:红外遥控的信号接收管,方向性很强,当你第一次遥控小车开动后,接收管可能就不正对你的遥控器了,你就必须跑到适合的方位上遥控,很累人的。我做出来后,发现了这个问题,每次都是把小车拿在手上,遥控给别人看的!!!!!
回复

使用道具 举报

5#
ID:424317 发表于 2019-2-18 09:56 来自手机 | 只看该作者
小猫猫爱吃鱼 发表于 2019-2-17 21:07
你好!
1、开发板上加一个一体化的红外接收器
2、学习一下红外遥控器的编码,记录下来

不了不了,我只是凭兴趣学,不是毕业设计
回复

使用道具 举报

6#
ID:424317 发表于 2019-2-18 10:18 | 只看该作者
HC6800-ES-V2.0 发表于 2019-2-18 09:26
我做过,听我的劝,不要做这个!!!!!
第一:只要能让单片机读到你的红外遥控信号,这个小车基本就成功 ...

没事我不是拿这个做毕业设计,只是做到来玩而已
回复

使用道具 举报

7#
ID:424317 发表于 2019-2-18 10:21 | 只看该作者
我记得可以在串口监控器上可以看到码值,不过好像不用看码值也可以做出红外遥控小车
回复

使用道具 举报

8#
ID:474677 发表于 2019-2-18 11:17 | 只看该作者
HC6800-ES-V2.0 发表于 2019-2-18 09:26
我做过,听我的劝,不要做这个!!!!!
第一:只要能让单片机读到你的红外遥控信号,这个小车基本就成功 ...

红外遥控的指向性跟接收管的设计和性能有关,我玩过那种红外遥控的小直升机,觉得遥控操作还是相当可靠的,当然也许和它的速度较慢也有关系
回复

使用道具 举报

9#
ID:393699 发表于 2019-2-18 11:46 | 只看该作者
那种会动的东西还是不要用红外遥控了,用蓝牙控制吧,也就浪费个串口
回复

使用道具 举报

10#
ID:424317 发表于 2019-2-18 17:47 | 只看该作者
1092648746 发表于 2019-2-18 11:46
那种会动的东西还是不要用红外遥控了,用蓝牙控制吧,也就浪费个串口

不,我全都要
回复

使用道具 举报

11#
ID:424317 发表于 2019-2-18 17:48 | 只看该作者
红外遥控器应该是通用的吧
回复

使用道具 举报

12#
ID:477934 发表于 2019-2-19 04:17 | 只看该作者
这个不是很难

评分

参与人数 1黑币 +8 收起 理由
嘉立创AAA + 8

查看全部评分

回复

使用道具 举报

13#
ID:158375 发表于 2019-2-19 08:10 | 只看该作者
红外遥控指向性太强,知识要重点考虑的,蓝牙就没这个问题;
遥控:无论什么控制,通讯协议很重要。
回复

使用道具 举报

14#
ID:164602 发表于 2019-2-19 08:47 | 只看该作者
HC6800-ES-V2.0 发表于 2019-2-18 09:26
我做过,听我的劝,不要做这个!!!!!
第一:只要能让单片机读到你的红外遥控信号,这个小车基本就成功 ...

那好,给你一个全套的:
程序:
/*
试验成功。但没意义,因为小车开跑了,红外线找不到接收端。所以要用无线电摇控。
*/

  1. #include "reg51.h"//头文件:

  2. sbit hwx=P3^3;//红外接收数据引脚,也是外部中断1的I/O口

  3. sbit ZLDJ10=P2^3;//控制电机转动I/O口
  4. sbit ZLDJ11=P2^2;
  5. sbit ZLDJ20=P2^1;
  6. sbit ZLDJ21=P2^0;

  7. unsigned char ly_lhj[4];

  8. bit ly_flag=1;

  9. void delay(void);

  10. void main(void)//主函数
  11. {
  12.         ZLDJ10=0;
  13.         ZLDJ11=0;
  14.         ZLDJ20=0;
  15.         ZLDJ21=0;

  16.         EA=1;//开启总中断
  17.         EX1=1;//开启外部中断1,红外接收数据引脚
  18.         IT1=1;//设置成下降沿触发方式
  19.         
  20.         TMOD=0X10;
  21.         ET1=1;
  22.         ly_flag=0;
  23.         
  24.         while(1)//主循环
  25.         {        
  26.                 if(ly_flag)//有红外遥控按键并接收成功,才执行
  27.                 {
  28.                         ly_flag=0;

  29.                         if ((ly_lhj[2]==0x46))//前进Mode键
  30.                         {
  31.                                 ZLDJ10=1;
  32.                                 ZLDJ11=0;
  33.                                 ZLDJ20=1;
  34.                                 ZLDJ21=0;                                
  35.                         }

  36.                         if ((ly_lhj[2]==0x40))//停止|<<键
  37.                         {
  38.                                 ZLDJ10=0;
  39.                                 ZLDJ11=0;
  40.                                 ZLDJ20=0;
  41.                                 ZLDJ21=0;                                
  42.                         }

  43.                         if ((ly_lhj[2]==0x15))//后退2键
  44.                         {
  45.                                 ZLDJ10=0;
  46.                                 ZLDJ11=1;
  47.                                 ZLDJ20=0;
  48.                                 ZLDJ21=1;                                
  49.                         }

  50.                         if ((ly_lhj[2]==0x44))//左转>||键
  51.                         {
  52.                                 ZLDJ10=1;
  53.                                 ZLDJ11=0;
  54.                                 ZLDJ20=0;
  55.                                 ZLDJ21=1;                                
  56.                         }

  57.                         if ((ly_lhj[2]==0x43))//右转>>|键
  58.                         {
  59.                                 ZLDJ10=0;
  60.                                 ZLDJ11=1;
  61.                                 ZLDJ20=1;
  62.                                 ZLDJ21=0;                                
  63.                         }
  64.                 }
  65.         }               
  66. }

  67. void hongwai(void)   interrupt 2//外中断1入口函数,P33引脚,红外线接收IC数据脚
  68. {
  69.         unsigned char i,ia;
  70.         TL1=0;
  71.         TH1=0;
  72.         TR1=1;                                //定时器以12M晶振12分频计数,即1us计数。打开定时器1
  73.         while(!hwx);        
  74.         TR1=0;                        
  75.         if(TH1<30||TH1>40)
  76.                 return;

  77.         TH1=0;        
  78.         TR1=1;
  79.         while(hwx)               
  80.         {
  81.                 delay();
  82.                 if(TH1>22)        
  83.                         return;               
  84.         }
  85.         TR1=0;
  86.         if(TH1<12)               
  87.                 return;

  88.         for(i=0;i<4;i++)
  89.         {
  90.                 for(ia=0;ia<8;ia++)
  91.                 {                                
  92.                         while(!hwx);
  93.                         
  94.                         TH1=0;
  95.                         TR1=1;               
  96.                         while(hwx)
  97.                         {
  98.                                 delay();
  99.                                 if(TH1>15)               
  100.                                         return;               
  101.                         }
  102.                         TR1=0;
  103.                         ly_lhj[i]>>=1;        
  104.                         if(TH1>4)               
  105.                         {
  106.                                 ly_lhj[i]|=0x80;
  107.                         }                                
  108.                                                         
  109.                 }
  110.         }
  111.         ly_flag=1;        
  112.         TF1=0;
  113. }

  114. void delay(void)//延时子函数,短暂延时35.5us
  115. {               
  116.         unsigned char i=10;
  117.         while(i--);
  118. }
复制代码



电路:
我的小车是自己组装的,直流电机驱动用的L298N,这个没电路图。



回复

使用道具 举报

15#
ID:424317 发表于 2019-2-19 09:15 来自手机 | 只看该作者
没事,我的直流电机驱动和你一样,已经组装好了。我用的是清翔mini板,上面自带红外接收模块,我待会就拿去实验一下,谢谢大佬!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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