arduino 蓝牙 android 小车,从菜鸟到完美掌控arduino蓝牙小车

本帖最后由 血阳 于 2016-11-20 19:11 编辑

在写这篇帖子之前,先感谢前段时间,在论坛里,为我耐心解答的大神朋友们,无论我问出什么奇葩的问题,都能为我耐心解答,真心感谢你们。

先上视频吧,虽然拍的不是很好;

小车照片:

1512bb8a4978b272e8bfe3e98fad41af.gif

小车1.jpg (56.12 KB, 下载次数: 251)

2015-5-2 01:35 上传

1512bb8a4978b272e8bfe3e98fad41af.gif

小车2.jpg (75.46 KB, 下载次数: 212)

2015-5-2 01:35 上传

1512bb8a4978b272e8bfe3e98fad41af.gif

小车3.jpg (78.44 KB, 下载次数: 200)

2015-5-2 01:35 上传

【注】转载请声明出处和作者,尊重个人劳动成果,谢谢。

基础篇

首先,我们先来看看我们需要的哪些工具:

1、        arduino控制板  x1

2、        L298N电机驱动模块 x1

3、        Arduino Bluetooth Bee蓝牙模块 x1

4、        Arduino Bluetooth蓝牙扩展板 x1

5、        小车底盘 x1

6、        电源(7~9V)x1

7、        导线 若干

说明:

1、我的教程是二轮驱动的,所以用L298N电机驱动模块,这个模块简单易懂,要做二轮的话,推荐这个模块。

2、蓝牙模块选用这个,比较方便,直接把蓝牙插到扩展板,再把扩展板插到arduino控制板上,连上蓝牙就可以直接用了。

3、电源,选择7~9V才能更好的驱动两个电机,我没买电源,就将就着用我的移动电源的高输出接口(就是充平板的那个口)给供电了。

1512bb8a4978b272e8bfe3e98fad41af.gif

arduino板子.jpg (84.41 KB, 下载次数: 198)

2015-5-1 20:08 上传

1512bb8a4978b272e8bfe3e98fad41af.gif

L298N电机驱动模块.jpg (53.27 KB, 下载次数: 207)

2015-5-1 20:08 上传

1512bb8a4978b272e8bfe3e98fad41af.gif

arduino Bluetooth.jpg (85.62 KB, 下载次数: 201)

2015-5-1 20:08 上传

1512bb8a4978b272e8bfe3e98fad41af.gif

Bluetooth 扩展板.jpg (38.61 KB, 下载次数: 193)

2015-5-1 20:08 上传

1512bb8a4978b272e8bfe3e98fad41af.gif

小车底盘.jpg (30.34 KB, 下载次数: 196)

2015-5-1 20:08 上传

接下来,我们先介绍一下这个L298N电机驱动板模块吧,它直接影响到我们后面的编程。

1512bb8a4978b272e8bfe3e98fad41af.gif

L298N电机驱动模块说明.jpg (117.84 KB, 下载次数: 202)

2015-5-1 20:09 上传

相关接口,已经标注好在图中了。电机接口,就是接电机引出两条线的地方,如果发现电机转动方向相反了,可以把两条线互换一下方向。就ok了。

L298N  GND 接   arduino GND;

L298N  VCC 外接另一个电源;

arduino自己也接一个电源。

L298N  5V   这里可以不用接   arduino 5V了;

接着说与程序相关的6个脚。首先说ENA和ENB吧,他们分别是控制电机1和电机2的速度的,即是控制PWM的,如果你不想改变这个电机转速的话,就不用动了,它短路帽子不要动就行,如果你要改变速度,就可以把那个小帽子去掉,然后引出来接在arduino的模拟引脚上输出PWM信号。

至于In1~In4,前面的In1和In2是控制电机1的,In3和In4是控制电机2的。好了,这里有张表,通过表格,你就可以清楚的知道他们的机理了。(这个是对于电机1的,电机2同理)

1512bb8a4978b272e8bfe3e98fad41af.gif

输出表.jpg (18.2 KB, 下载次数: 206)

2015-5-1 23:36 上传

最后,我们来简单讲蓝牙的连接吧,很简单,供电好以后,我们用手机连上蓝牙后,配对,密码一般是“1234”或者“0000”,输入好密码,就配对成功了。

Ok,现在讲完该讲的部分,我们就该开始制作我们期待已久的蓝牙小车了~

还有一点要说的是,先制作不带控制速度的,这样写程序比较简单。

第1步:简单地运行电机

首先,来看看连线吧,我决定,用arduino的4、5、6、7引脚来控制我的小车。4、5控制左轮。6、7控制右轮。

所以驱动模块的In1接arduino的4引脚,In2接5引脚,然后电机的两条线分别接驱动模块中电机1的OUT1和OUT2;“供电正极”接5V引脚,“接地”接 GND。

根据上面给出的表格,我们先来简单地设计一个程序,来实现:左轮正转2s,停止2s,反转2s,停止2s。循环。

代码如下:

/*****************************************

二轮蓝牙小车——左轮测试

运动过程:左轮正转2s,停止2s,反转2s,停止2s。循环

占用4、5引脚

2015.05.01

   ——by 极客工坊  血阳

   ——王小丰

*****************************************/

#define IN1 4 

#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚

void setup()

{

  pinMode(IN1,OUTPUT);

  pinMode(IN2,OUTPUT);

}

void loop()

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  delay(2000);

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  delay(2000);

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);         //左轮后退

  delay(2000);

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  delay(2000);

}

连好线,我们下载好程序,就试试吧。实验结果很成功,果然按照预想的运动了。

注意,运行时候按下复位键开始检测。假如这个运动方向与你所设的程序方向不同,那么,你可以把电机中的OUT1的线和OUT2的线互换一下就行了。(不按复位键你不知道你的程序开始是从正转开始还是反转开始)

接着,我们以同理来驱动一下右轮试试,同理驱动模块的In3接arduino的6引脚,In4接7引脚,然后电机的两条线分别接驱动模块中电机2的OUT3和OUT4。运动过程:右轮正转2s,停止2s,反转2s,停止2s。循环。

/*****************************************

二轮蓝牙小车——右轮测试

运动过程:右轮正转2s,停止2s,反转2s,停止2s。循环

占用4、5引脚

2015.05.01

   ——by 极客工坊  血阳

   ——王小丰

*****************************************/

#define IN3 6 

#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

void setup()

{

  pinMode(IN3,OUTPUT);

  pinMode(IN4,OUTPUT);

}

void loop()

{

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

  delay(2000);

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

  delay(2000);

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);         //右轮后退

  delay(2000);

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

  delay(2000);

}

这里我发现了,我连线运行与我设定的方向相反,于是我把电机的两条线在OUT那里互换,然后就ok了。

第二步:小车的简单运动

接着。最基本的弄完以后,我们来分析一下小车的运动方式,就可以编写程序让小车运动了。

下面是小车运动方式:

1512bb8a4978b272e8bfe3e98fad41af.gif

运动状况.jpg (26.78 KB, 下载次数: 196)

2015-5-1 23:39 上传

有了这个,我们进行编程的时候,就简单多了。

下面,我们来写写简单的前进2s然后停止1s,接着后退2s停止3s的程序吧。

/*****************************************

二轮蓝牙小车

运动过程:前进2s,停止1s,接着后退2s停止3s

占用4、5引脚

2015.05.01

   ——by 极客工坊  血阳

   ——王小丰

*****************************************/

#define IN1 4 

#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚

#define IN3 6 

#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

void setup()

{

  pinMode(IN1,OUTPUT);

  pinMode(IN2,OUTPUT);

  pinMode(IN3,OUTPUT);

  pinMode(IN4,OUTPUT);

}

void loop()

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

  delay(2000);

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

  delay(1000);

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);        //右轮后退

  delay(2000);

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

  delay(3000);

}

下载程序。供电,实验结果如预料一样,很成功

第三步:函数的编写

考虑到,假如把说有程序都写在loop循环里,会很复杂,所以,我们以函数形式,写下每个运动状态,然后再进行函数调用的话,程序会显得比较简单。如果这步你看前几个就懂了,就可以跳到第四步去了。

下面,我们开始编写这些运动状态的程序:

/**************************************************

forward子函数——前进子函数

函数功能:控制车前进

**************************************************/

void forward( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

back子函数——后退子函数

函数功能:控制车后退

**************************************************/

void back( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);        //右轮后退

}

/**************************************************

turnLeft子函数——左转子函数

函数功能:控制车左转

**************************************************/

void turnLeft( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

turnbackLeft子函数——左后转弯子函数

函数功能:控制车左后转弯

**************************************************/

void turnbackLeft( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);         //右轮后退

}

/**************************************************

turnRight子函数——右后转弯转子函数

函数功能:控制车右后转弯

**************************************************/

void turnRight( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

/**************************************************

turnbackRight子函数——右转子函数

函数功能:控制车右转

**************************************************/

void turnbackRight( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);         //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

/**************************************************

turnLeftOrigin子函数——原地左转子函数

函数功能:控制车原地左转

**************************************************/

void turnLeftOrigin( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

turnRightOrigin子函数——原地右转子函数

函数功能:控制车原地右转

**************************************************/

void turnRightOrigin( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);        //左轮前进

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);       //右轮后退

}

/**************************************************

stop子函数—停止子函数

函数功能:控制车停止

**************************************************/

void _stop()

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

第四步:函数的运用

麻烦的函数编写完以后,我们就可以尝试着兴高采烈地运用他们吧。

我们来写一段程序来,简单地控制小车让小车运动:前进2s—后退2s—前左转2s—后左转2s—前右转2s—后右转2s—原地左转2s—原地右转2s—停止3s。

看起来运动好复杂,其实有了上面的函数以后,我们编写起来级很简单了,注意的是,在调用函数之前,我们要先在前面声明好函数哦。

下面是我们的控制程序:

/*****************************************

二轮蓝牙小车

运动过程:利用函数:前进2s—后退2s—前左转2s—后左转2s

—前右转2s—后右转2s—原地左转2s—原地右转2s—停止3s。

2015.05.01

   ——by 极客工坊  血阳

   ——王小丰

*****************************************/

#define IN1 4 

#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚

#define IN3 6 

#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

void forward( );

void back( );

void turnLeft( );

void turnRight( );

void turnbackLeft( );

void turnbackRight( );

void turnLeftOrigin( );

void turnRightOrigin( );

void _stop();          //这里是把我们用到的函数都声明一遍

void setup()

{

  pinMode(IN1,OUTPUT);

  pinMode(IN2,OUTPUT);

  pinMode(IN3,OUTPUT);

  pinMode(IN4,OUTPUT);

}

void loop()

{

    forward( );

    delay(2000);

    back( );

    delay(2000);

    turnLeft( );

    delay(2000);

    turnbackLeft( );

    delay(2000);

    turnRight( );

    delay(2000);

    turnbackRight( );

    delay(2000);

    turnLeftOrigin( );

    delay(2000);

    turnRightOrigin( );

    delay(2000);

    _stop();

    delay(3000);

}

/**************************************************

forward子函数——前进子函数

函数功能:控制车前进

**************************************************/

void forward( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

back子函数——后退子函数

函数功能:控制车后退

**************************************************/

void back( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);        //右轮后退

}

/**************************************************

turnLeft子函数——左转子函数

函数功能:控制车左转

**************************************************/

void turnLeft( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

turnbackLeft子函数——左后转弯子函数

函数功能:控制车左后转弯

**************************************************/

void turnbackLeft( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);         //右轮后退

}

/**************************************************

turnRight子函数——右后转弯转子函数

函数功能:控制车右后转弯

**************************************************/

void turnRight( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

/**************************************************

turnbackRight子函数——右转子函数

函数功能:控制车右转

**************************************************/

void turnbackRight( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);         //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

/**************************************************

turnLeftOrigin子函数——原地左转子函数

函数功能:控制车原地左转

**************************************************/

void turnLeftOrigin( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

turnRightOrigin子函数——原地右转子函数

函数功能:控制车原地右转

**************************************************/

void turnRightOrigin( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);        //左轮前进

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);       //右轮后退

}

/**************************************************

stop子函数—停止子函数

函数功能:控制车停止

**************************************************/

void _stop()

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

这样,我们就很成功地驱动了小车,做了简单的运动啦~

第五步:蓝牙模块的功能检测

这一步就是我们的关键了,连接好蓝牙,那么我们就能通过蓝牙来很好的控制小车,如果蓝牙部分没做好,那么我们前面的辛苦就白费啦~好啦,话不多说,我们开始吧。

首先我们要知道怎么让arduino接收命令,他用的是Serial.read()语句来实现的,具体我就不多讲了,在论坛里关于这一块的多的是,大家去找找就能找到的。

其次注意的是这个命令的接受和发送,都会转化为ASCII码,所以在接收的时候,我们的命令以ASCII码来判断,或者用单引号来 帮助我们接收。例如:手机端如果发送了“1“,那么我们这边接收到的是1的ASCII码,所以我们在判断是接收几的时候,我们要用case‘1’或者case49来判断(注:1的ASCII码是49)。

电脑的发送很简单,就是打开“工具“中的”串口监视器“。就可以发送命令了,蓝牙的话,只要连接成功,通过小软件也可以发送啦。

Ok,下面我们来一个简简单单的例子来练习发送和接收命令,然后再尝试用蓝牙来无线发送和接收。

小实验:当接收到1这个数字的时候,arduino的13号灯就亮起。收到2这个数的时候,就灭。(这里13号灯就是我们板子上的L灯,观察它就行。)

我们首先先通过数据线连接电脑,让电脑通过串口监视器来给板子发送命令,看看是否达到我们要求。如果达到要求了,再把数据线退掉,加上蓝牙模块,通过手机连接好蓝牙以后,设置好参数,再给板子发送命令,来证明我们蓝牙能够正常工作。为我们后面的蓝牙控小车检测好蓝牙。

注意:在下载程序的时候,不要连接蓝牙设备,否则会下载失败。

代码:

void setup()

{

  pinMode(13,OUTPUT);

  Serial.begin(9600);

}

int i;

void loop()

{

  if(Serial.available()>0)

  {

      i=Serial.read();

      switch(i)

      {

        case'1':

            {digitalWrite(13,HIGH);break;}

        case'2':

            {digitalWrite(13,LOW);break;}

      }

  }

}

终结篇:期待已久的激动人心的蓝牙操控小车车

我这里用的是九键控制小车,前后分别是2、8。1379是前后左右转,46是原地左右转。

到了这里,我觉得已经不用说了,上程序,然后你就懂了。

/*****************************************

二轮蓝牙小车

2015.05.01

   ——by 极客工坊  血阳

   ——王小丰

*****************************************/

#define IN1 4 

#define IN2 5     //定义In1接arduino的4引脚,In2接5引脚

#define IN3 6 

#define IN4 7     //定义IN3接arduino的6引脚,IN4接7引脚

void forward( );

void back( );

void turnLeft( );

void turnRight( );

void turnbackLeft( );

void turnbackRight( );

void turnLeftOrigin( );

void turnRightOrigin( );

void _stop();          //这里是把我们用到的函数都声明一遍

void setup()

{

  pinMode(IN1,OUTPUT);

  pinMode(IN2,OUTPUT);

  pinMode(IN3,OUTPUT);

  pinMode(IN4,OUTPUT);

  Serial.begin(9600);

}

int i;

void loop()

{

    if(Serial.available())

    {

      i=Serial.read();

      switch(i)

      {

        case'1':

          {turnLeft( );  break; }

        case'2':

          {forward( );   break;}

        case'3':

          {turnRight( );   break;}

        case'4':

          {turnLeftOrigin( );   break;}

        case'5':

          {_stop();   break;}

        case'6':

          {turnRightOrigin( );   break;}

        case'7':

          {turnbackLeft( );   break;}

        case'8':

          {back( );   break;}

        case'9':

          {turnbackRight( );   break;}

      }

    }    

}

/**************************************************

forward子函数——前进子函数

函数功能:控制车前进

**************************************************/

void forward( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

back子函数——后退子函数

函数功能:控制车后退

**************************************************/

void back( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);        //右轮后退

}

/**************************************************

turnLeft子函数——左转子函数

函数功能:控制车左转

**************************************************/

void turnLeft( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

turnbackLeft子函数——左后转弯子函数

函数功能:控制车左后转弯

**************************************************/

void turnbackLeft( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);         //右轮后退

}

/**************************************************

turnRight子函数——右后转弯转子函数

函数功能:控制车右后转弯

**************************************************/

void turnRight( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);         //左轮前进

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

/**************************************************

turnbackRight子函数——右转子函数

函数功能:控制车右转

**************************************************/

void turnbackRight( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);         //左轮后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

/**************************************************

turnLeftOrigin子函数——原地左转子函数

函数功能:控制车原地左转

**************************************************/

void turnLeftOrigin( )

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH);        //左轮后退

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW);         //右轮前进

}

/**************************************************

turnRightOrigin子函数——原地右转子函数

函数功能:控制车原地右转

**************************************************/

void turnRightOrigin( )

{

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW);        //左轮前进

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH);       //右轮后退

}

/**************************************************

stop子函数—停止子函数

函数功能:控制车停止

**************************************************/

void _stop()

{

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);         //左轮静止不动

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);         //右轮静止不动

}

ok到这里就结束了,当然,如果你想加入控制速度的代码,也可以,就是在每个函数里面加入ENA和ENB的部分,然后让他们接模拟引脚,再让函数有个形参,就差不多了,看完这个之后,加上速度,应该很简单的~~~最后,祝你好运,早日让自己的小车跑起来哦~~

最后,若想要控制小车速度的话,这里有一个简单的例子,根据例子,稍微改一下程序,就可以轻松控制速度了。

http://www.geek-workshop.com/for ... 14831&pid=98199

下面是附带的整个,教程pdf  和 手机蓝牙串口。想下载的话可以在这下载哦~

教程PDF:

eef0fa54adfe72026395ddaf4f00701e.gif

我的arduino教程.pdf

(749.25 KB, 下载次数: 945)

2015-5-1 23:49 上传

点击文件名下载附件

蓝牙小车教程

手机蓝牙串口app:

bcf70193d63249e76d6ead7b75b1a553.gif

蓝牙串口助手 v1.97.rar

(51.53 KB, 下载次数: 965)

2015-5-2 00:01 上传

点击文件名下载附件

手机蓝牙串口助手

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值