找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7234|回复: 3
收起左侧

51单片机智能循迹小车制作(灰度传感器)附源程序

[复制链接]
ID:449323 发表于 2020-10-23 17:31 | 显示全部楼层 |阅读模式
这也是上学期的实训,程序不难,难就难在调试,要命哦,轮子的转速差不一样,没办法直行,我调试的时候觉得它简直就是智障小车,它是一辆智障小破车啊,程序+仿真+原理图 我都放在里面了,PCB太丑就算了吧,大家要是做这个项目可供参考呀~~啊啊啊啊,虽然很喜欢这个专业,一个女孩子搞起来遇到问题真的真的很想放弃,让我弱弱的吐槽一波~~~~

制作出来的实物图如下:
5.png 6.png

电路原理图如下:
3.png

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include <stc15.h>
  2. #include "include.h"
  3. #include "motor.h"
  4. #include "hj_xj3.h"
  5. #include "LCD1602.h"
  6. #define INIT_SPEED 15
  7. extern uchar numL,numR;
  8. void init_time();
  9. void main()                                
  10. {
  11.         uchar status_flag=0;//车身状态标志位
  12.         uchar stop_flag=0;//停车标志位
  13.         numL=numR=INIT_SPEED;//初始速度
  14.         ENA=ENB=1;
  15.         IN1=IN3=0;IN2=IN4=0;
  16.     init_time();
  17.         LCD_initial();
  18.     while(1)
  19.         {
  20.                  if(stop_flag==1) stop_flag=reset();
  21.            status_flag=Track();
  22.            switch(status_flag)
  23.            {

  24.            case 0:         //正常
  25.                     LCD_Display("MID");
  26.                     line_go(INIT_SPEED);
  27.                            delay_ms(100);
  28.                                 break;  
  29.            case 1:         //右偏
  30.                     LCD_Display("LEFT");
  31.                                       left_turn(10);//参数为转速差
  32.                            delay_ms(100);
  33.                                 break;
  34.            case 2:         //左偏
  35.                     LCD_Display("RIGHT");
  36.                                       right_turn(10);        //参数为转速差
  37.                            delay_ms(100);
  38.                                 break;
  39.            case 3:         //全白
  40.                     LCD_Display("REFECT");
  41.                            delay_ms(50);
  42.                                 break;
  43.            case 5:         //停车
  44.                     LCD_Display("STOP");
  45.                                       stop_flag=stop();
  46.                            delay_ms(100);
  47.                                 break;
  48.                   default:
  49.                           break;
  50.            }
  51.         };
  52. }
  53. //***********************
  54. void init_time()
  55. {
  56.         TMOD=0X01;
  57.         TH0=(65536-500)/256;
  58.         TL0=(65536-500)%256;
  59.         EA=1;
  60.         ET0=1;
  61.         TR0=1;
  62. }
  63. void time0() interrupt 1 using 1
  64. {
  65.         static uchar num;
  66.         num++;
  67.         if(num==numR)   ENA=~ENA;
  68.         if(num==numL)        ENB=~ENB;        
  69.         if(num==100){ENA=~ENA;ENB=~ENB;num=0;}
  70.         TH0=(65536-500)/256;
  71.         TL0=(65536-500)%256;        
  72. }
复制代码
2.png
所有资料51hei提供下载:
智能小车.zip (1.25 MB, 下载次数: 113)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:429540 发表于 2020-10-30 18:48 | 显示全部楼层
某个宝搜索 不怕光 红外循迹模块 循迹传感器 智能小车 黑白线检测识别模块
回复

使用道具 举报

ID:844082 发表于 2020-11-15 21:15 | 显示全部楼层
大佬 能不能给我指点一下我写的程序   错在哪里我都不知道
回复

使用道具 举报

ID:449323 发表于 2021-1-10 19:31 | 显示全部楼层
zpc.+ 发表于 2020-11-15 21:15
大佬 能不能给我指点一下我写的程序   错在哪里我都不知道

抱歉,好久没上论坛了,你可以加论坛的群,里面大佬都会回答的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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