蓝牙调速小车测试程序(只放程序)

亲测有效

需要的材料

1.蓝牙串口软件

应用商店可以下载

蓝牙串口软件

2.L298N电机驱动模块

淘宝可以买得到

在这里插入图片描述

3.stc89c52最小系统板

淘宝可以买得到

在这里插入图片描述

4.智能车底盘

淘宝可以买得到

在这里插入图片描述

蓝牙模块:JDY-31

淘宝购买

在这里插入图片描述

接线资料在买模块的时候会有(自己去实践)

测试代码

#include <reg52.h>
//定义输出端口
sbit INT=P1^0;
sbit INT2=P1^1;
sbit INT3=P1^2;
sbit INT4=P1^3;
sbit EN1 = P1^4;
sbit EN2 = P1^5;

typedef unsigned int u16;
typedef unsigned char u8;

	u8  buf;		//串口数据缓冲
	
	u8 speed=100;	//设置初始速度
	
	u8 pwm;			//设置比较参数
 
//向前走
void CarGo()
{

  speed = 50;
	  INT= 1;
	  INT2=0;
	  INT3=1;
	  INT4=0;
}
//向后走
void CarBack()
{
  speed = 40;
	 INT= 0;
	 INT2=1;
	 INT3=0;
	 INT4=1;

  
}
//小车左转
void CarTurnLeft()
{
    speed = 35;
	  INT=0;
	  INT2=0;
	  INT3=1;
	  INT4=0;
  
}
//小车右转
void CarTurnRight()
{
   speed = 35;
	  INT= 1;
	  INT2=0;
	  INT3=0;
	  INT4=0;

}



//小车停止
void CarStop()
{

	  INT= 0;
	  INT2=0;
	  INT3=0;
	  INT4=0;
  speed = 0;
}


//小车加速
void speedup()
{
	  INT= 1;
	  INT2=0;
	  INT3=1;
	  INT4=0;
  speed+=4;
  if(speed>=100)
  {
  	speed = 100;
  }
 

}



//小车减速
void speeddown()
{
	  INT= 1;
	  INT2=0;
	  INT3=1;
	  INT4=0;
  speed-=5;
  if(speed<=18)
  {
  	speed = 18;
  }
  
}



//初始化定时器0,以用于调速
void timer ()
{
	TMOD|=0X01;
	TH0 = (65536-1500)/256;
	TL0 = (65536-1500)%256;	  
	TR0 = 1;
	ET0 = 1;
	EA =1;
}
//定时器1中断函数
void init() interrupt 1
{
	TH0 = (65536-100)/256;
	TL0 = (65536-100)%256;
	pwm++;
	
	if(pwm==100)
	{pwm = 0;}
	if(pwm<=speed)
	{
		EN1 = 1;
		EN2 = 1;
	
	}
	 if(pwm>speed)
	{
		EN1 = 0;
		EN2 = 0;
		
	}


	
}

//串口初始化
void irinit()
{
	 SCON=0x50;		//设定串口工作方式
	 PCON=0x00;		//波特率不倍增

     EA=1;			//打开总中断

	 TMOD|=0x20;
	 ES=1;			//打开串口中断
	 TR1=1;
	 TH1=0xFD;		//设置波特率为9600;
	 TL1=0xFD;
}

void main()
{

  irinit();
  timer ();
   while(1);
  
 
  
}

void serial() interrupt 4  
{
  	TL1=0xFD;
 	TH1=0xFD;//波特率9600


 	buf = SBUF;//从串口缓冲区取得数据

//接收手机传给蓝牙的指令以控制小车
 	while(!RI); 
	  RI = 0;  
	 if(buf=='G')
	 {
	  	CarGo();  
	 }
	 if(buf=='B')
	 {
	   	CarBack(); 
	 }
	 if(buf=='S')
	 {
	 	 CarStop();  
	 }
	 if(buf=='C')
	 {
	  
	  	 CarTurnLeft(); 
	 }
	 if(buf=='E')
	 {
	 	 CarTurnRight();  
	 }
	
	 if(buf=='1')
	 {
		speedup(); 
		
		   	
	 }
	 if(buf=='2')
	 {
		speeddown(); 
		
		   	
	 }
  }
注意:蓝牙的指令得从串口软件进行设置
  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值