蓝牙小车吧 关注:49贴子:157
  • 13回复贴,共1

为什么我的蓝牙小车一直走,怎样编程能按一下走一下

只看楼主收藏回复

??


IP属地:辽宁1楼2015-05-13 13:28回复
    你的小车好了没


    IP属地:广东来自Android客户端2楼2015-12-18 22:15
    回复
      想请教你一些问题?


      IP属地:广东来自Android客户端3楼2015-12-18 22:15
      回复
        请说


        IP属地:辽宁4楼2015-12-19 19:49
        回复
          我换了一个蓝牙模块,能跑了


          IP属地:广东来自Android客户端5楼2015-12-23 11:00
          回复
            不过跑的歪歪扭扭的,你的怎么样


            IP属地:广东来自Android客户端6楼2015-12-23 11:01
            回复


              IP属地:广东来自Android客户端7楼2015-12-23 11:02
              回复
                我用的是这个app名字叫蓝牙串口


                IP属地:广东来自Android客户端8楼2015-12-23 11:02
                回复
                  #include<reg52.h>//声明头文件
                  #define uchar unsigned char//宏定义
                  #define uint unsigned int//宏定义
                  sbit deng=P2^0;//定义车灯的控制引脚
                  sbit z=P2^1;//定义左转向灯的控制引脚
                  sbit y=P2^2;//定义右转向灯的引脚
                  sbit BEEP=P2^3;//定义蜂鸣器的引脚
                  sbit zuo1=P0^0;//定义控制左边电机的单片机引脚
                  sbit zuo2=P0^1;//定义控制左边电机的单片机引脚
                  sbit you1=P0^2;//定义控制右边电机的单片机引脚
                  sbit you2=P0^3;//定义控制右边电机的单片机引脚
                  uchar a=0;//定义一个变量a,用来读取串口的数据
                  void delay(uint z)//一个带参数的延时程序
                  {
                  int i,j;//定义两个变量
                  for(i=10;i>0;i--)
                  for(j=z;j>0;j--);//将参数z赋值给j
                  }
                  void init()//初始化子程序
                  {
                  TMOD=0x20;//设置定时器T1为工作方式2
                  TH1=0xfd;
                  TL1=0xfd;//T1定时器装初值
                  TR1=1;//启动定时器T1
                  REN=1;//允许串口接收
                  SM0=0;
                  SM1=1;//设置串口工作方式1
                  EA=1;//开总中断
                  ES=1;//开串口中断
                  }
                  void go()//前进子程序
                  {
                  zuo1=0;
                  zuo2=1;//左边轮子正转
                  delay(25);//pwm有用值,越大左边方向的轮子越快
                  zuo1=1;//关闭左边轮子
                  you1=0;
                  you2=1; //右边轮子正转
                  delay(24);//pwm有用值,越大右边的轮子越快
                  you1=1;//关闭右边轮子
                  delay(100);//pwm无用值,越大,小车跑的越慢
                  z=1;
                  y=1;//关闭转向灯
                  }
                  void hui()//小车后退的子程序
                  {
                  zuo1=1;
                  zuo2=0;//左边轮子倒转
                  delay(25);//pwm有用值,越大左边方向的轮子越快
                  zuo2=1;//关闭左边轮子
                  you1=1;
                  you2=0; //右边轮子倒转
                  delay(24);//pwm有用值,越大右边的轮子越快
                  you2=1;//关闭右边轮子
                  delay(100);//pwm无用值,越大,小车跑的越慢
                  z=1;
                  y=1;//关闭转向灯
                  }
                  void turnleft()//小车左转弯子程序
                  {
                  zuo1=1;
                  zuo2=1;//左边轮子停止转动
                  you1=0;
                  you2=1; //右边轮子正转
                  delay(24);//pwm有用值,越大右边的轮子越快
                  you1=1;//右边轮子停止
                  delay(100);//pwm无用值,越大,小车跑的越慢
                  z=1;
                  y=1;//关闭转向灯
                  z=~z;//左转向灯打开
                  }
                  void turnright()//小车右转弯子程序
                  {
                  zuo1=0;
                  zuo2=1;//左边轮子正转
                  delay(25);//pwm有用值,越大左边方向的轮子越快
                  zuo1=1;//左边轮子停止
                  you1=1;
                  you2=1; //右边轮子停止
                  delay(100);//pwm无用值,越大,小车跑的越慢
                  z=1;
                  y=1;//关闭转向灯
                  y=~y;//右转向灯打开
                  }
                  void down()//停止子程序
                  {
                  zuo1=1 ;
                  zuo2=1;
                  you1=1;
                  you2=1; //左右轮全部停止
                  z=1;
                  y=1;//关闭转向灯
                  }
                  void main()//主程序
                  {
                  init();//调用初始化子程序
                  while(1)//死循环
                  {
                  switch(a)//判断a从串口读取到的数据
                  {
                  case 0x1f://如果是0x1f就前进
                  go();
                  break;
                  case 0x2f://如果是0x2f就后退
                  hui();
                  break;
                  case 0x3f://如果是0x3f就左转
                  turnleft();
                  break;
                  case 0x4f://如果是0x4f就右转
                  turnright();
                  break;
                  case 0x00://如果是0x00就停止
                  down();
                  break;
                  case 0xa0://如果是0xa0车灯打开
                  deng=0;
                  break;
                  case 0xb0://如果是0xb0车灯关闭
                  deng=1;
                  break;
                  case 0xc0://如果是0xc0蜂鸣器鸣响
                  BEEP=0;
                  break;
                  case 0xd0://如果是0xd0蜂鸣器关
                  BEEP=1;
                  break;
                  }
                  }
                  }
                  void chuan() interrupt 4//串口中断服务程序
                  {
                  RI=0;//软件清除串口响应
                  a=SBUF;//读取单片机串口


                  IP属地:广东来自Android客户端9楼2015-12-23 11:05
                  回复
                    你改一下这个程序,我就是这个程序加上边那个app,


                    IP属地:广东来自Android客户端10楼2015-12-23 11:07
                    回复
                      用的51单片机,能实现,前后,左转右转


                      IP属地:广东来自Android客户端11楼2015-12-23 11:08
                      收起回复
                        该楼层疑似违规已被系统折叠 查看此楼


                        12楼2018-12-02 19:17
                        回复