51单片机智能小车循迹完整程序_走进单片机|第六期:对传感器的控制

245d22e15741b0ae44cde3ff93058a62.png

       上篇推文介绍了基于51单片机的智能GSM垃圾桶,本篇推文将以电光学院“星火杯”中的优秀作品——循迹避阻电动小车为例,介绍以51单片机为控制核心来实现对传感器的控制。

756e6e0eae24d92b0115a30bfd634873.png

     循迹避阻电动小车设计原理

  本设计是一种基于单片机控制的简易自动寻迹避阻小车系统,包括小车系统构成软硬件设计方法。小车以51单片机为控制核心,用单片机产生PWM波,控制小车速度。利用红外光电传感器对路面黑色轨迹进行检测,将路面检测信号反馈给单片机。其技术关键是单片机对传感器的控制及对其反馈信息处理后对电机的精确控制。我们在车身上安装了红外传感器,动作指示灯,以及反应小车运行时间的计时显示模块。

小车的每一个动作都会有相应的指示灯。小车能够灵敏检测路面情况并作出准确的判断。小车采用前轮驱动,前轮左右两边各有一个电机驱动,通过调整前面两个轮子的转速启停而达到控制转向的目的,后轮是万向轮起支撑的作用,将循迹传感器装在车体的中间和左右轮前,当车身左边的传感器检测到黑线时,主控芯片控制左轮减速,车身向左修正。当车身右边的传感器检测到黑线时,主控芯片控制右轮减速,车身向右修正。从而实现循迹功能。 对的各个不同的运动速度和方向,小车都有相应的指示灯显示。 核心控制部分采用可在线编程的51单片机,可以在不增加系统硬件的情况下方便地对系统进行二次开发。

d5569f9e44409d80652102ea9d57f9ea.png

控制传感器模块程序示例

#include                      //包含51单片机相关的头文件

#include

sbit LeftLed=P2^0;                        //定义前方左侧指示灯端口

sbit RightLed=P0^7;                       //定义前方右侧指示灯端口

sbit FontLled=P1^7;

sbit LeftIR=P3^5;                         //定义前方左侧红外探头端口

sbit RightIR=P3^6;                       //定义前方右侧红外探头端口

sbit FontIR=P3^7;                        //定义前方正前方红外探头端口

sbit M1A=P0^0;                            //定义左侧电机驱动A端

sbit M1B=P0^1;                            //定义左侧电机驱动B端

sbit M2A=P0^2;                            //定义右侧电机驱动A端

sbit M2B=P0^3;                            //定义右侧电机驱动B端

sbit B1=P0^4;                             //定义语音识别传感器端口

sbit SB1=P0^6;                            //定义蜂鸣器端口

sbit IRIN=P3^3;                                       //定义红外接收端口

unsigned char code  LedShowData[]={0x03,0x9F,0x25,0x0D,0x99,  //定义数码管显示数据

                                   0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9

unsigned char code

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
综合功能演示子程序 // // 本程序通过将以前所编写的分立程序能过有机结合,编制成一个大的应用系统// //.小车在完成自动防撞,防县崖等动作外,还可以通过红外遥控器进行远成遥控. // //如果你对电脑编程很有趣兴的话,当然也可以通过电脑对串口进行编程.以方便 // //通过电脑来进行对小车控制.在正常的运特过程中,还可以通过声控(拍手声)来 // //对小车进行控制,每一种控制小车都会完成相应的功能.为了更清晰的看到小车 // //行过程状态,特将P1端口中的8个指示灯作为运行状态指示灯.以用来观察小车运// //行中的每一步. // // 程序运行效果: 将小车置于一个桌面上(桌面请不要使用黑色).打开电源的开// //关,小车开始前进运行.同时运行指示灯闪亮.这时如果前方有障碍物(或走到县 // //崖处).小车将会先进行后退一段时间,并有蜂鸣器报警.再向左转一段时间.最后// //开始向前运行.左转,后退,右转,可以通过前方指示灯来观察.这时你可以能过声// //控(如拍手声)来让小车停止和开启.同时你也可以用遥控来控制小车的运行.按 // //"1",小车将向前运行,按"2"小车将后退,按"3"小车将左转,按"4"小车将右转. // //按其它(0-9)键,小车数管码显示相应的数字符号.按电源键,小车将会停止运行.// //同也可以用电脑将小车发送数字信号.其数码管也将显示相应的数字(0-9).并执// //行相应的功能.当然S1,S2也是起作用,分别用于控制小车的停止和开启.(注意, // //操作时应在小车前进时操作,后退,左转,右转等操作时,没有写相应的查询程序)//

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值