51单片机智能小车

最近学校举办了一个智能小车比赛,比赛内容为用手机蓝牙控制小车拥有5个功能,分别是超声波舵机避障,测距(显示在LCD1602上),红外跟随,循迹还有蓝牙控制小车前进后退左转又转以及停止。

 

文章目录

  • 蓝牙控制所有功能
  • 一、整体思路
  • 二、代码部分
  • 1、定时器初始化
  • 2、蓝牙部分控制所有功能
  • 3、红外跟随
  • 4、循迹
  • 三、完整代码

前言

基于51单片机的智能小车是比较基础的小车,很适合初学者学习

 

一、整体思路

这款小车单片机的芯片是52RC的,是有3个定时器T0,T1,T2,一般51的是只有两个定时器T0和T1,在这里我们将PWM模块和舵机共用一个定时器T0,定时器T1用于

  • 23
    点赞
  • 286
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
以下是一个简单的51单片机智能小车代码,基于红外遥控模块控制小车的移动和避障功能。 ``` #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit IN1=P1^0; //定义电机控制引脚 sbit IN2=P1^1; sbit IN3=P1^2; sbit IN4=P1^3; sbit IR=P3^2; //定义红外接收引脚 void delay(uint xms) //延时函数 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void forward() //小车向前走 { IN1=1; IN2=0; IN3=1; IN4=0; } void backward() //小车向后走 { IN1=0; IN2=1; IN3=0; IN4=1; } void left() //小车向左走 { IN1=0; IN2=1; IN3=1; IN4=0; } void right() //小车向右走 { IN1=1; IN2=0; IN3=0; IN4=1; } void stop() //小车停止 { IN1=0; IN2=0; IN3=0; IN4=0; } void main() { while(1) { if(IR==0) //红外接收到信号 { delay(10); //延时等待 if(IR==0) //再次确认接收到信号 { forward(); //小车向前走 delay(500); //延时等待 stop(); //小车停止 } } else //红外没有接收到信号,进行避障操作 { forward(); //小车向前走 delay(500); //延时等待 if(IR==0) //前方有障碍物 { stop(); //小车停止 delay(500); //延时等待 backward(); //小车向后走 delay(500); //延时等待 left(); //小车向左转 delay(500); //延时等待 } else //前方没有障碍物 { stop(); //小车停止 delay(500); //延时等待 right(); //小车向右转 delay(500); //延时等待 } } } } ``` 这个代码基于红外遥控模块进行控制,如果需要使用其他的控制方式,需要修改代码。另外,这个代码只是一个简单的示例,实际应用中需要根据具体情况进行改进和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值