蓝牙串口arduino_arduino 蓝牙软串口 - CSDN
  • arduino蓝牙通讯

    千次阅读 2011-01-13 13:02:00
    玩硬件和软件最大的不同,就是需要零件设备。这次的目标是要实现...       蓝牙串口模块有4个接线口,分别是 5v, GND, TX, RX,非常简单,对应电源,以及收发端。原理上,这个模块相当

    玩硬件和软件最大的不同,就是需要零件设备。这次的目标是要实现arduino通过蓝牙和PC通讯,arduino mega 1280必须要连接一个蓝牙无线串口设备才能实现。所以要添加下面的东西:

     

    1. 蓝牙无线串口模块。

     

    2. 面板的连接线,这个便宜,8块就长的短的,花花绿绿一大把。

     

     

     

    蓝牙串口模块有4个接线口,分别是 5v, GND, TX, RX,非常简单,对应电源,以及收发端。原理上,这个模块相当于一个串口的中转站,一端和PC间通过蓝牙协议无线连接PC的蓝牙串口,另一端和arduino的串口设备UART通过连线直接相连,这样,就相当于在PCarduino之间搭建了一个通讯桥梁,使两者能够通过串口设备进行通讯。那么,USB线呢?我们写好程序通过USB线把代码上载后,USB线就可以去掉了,以后的通讯,直接通过无线蓝牙就能完成。当然,这个通讯是指PC的程序和arduino的程序之间,要想重新上载新的程序,还得通过USB连线来完成。

    接下来开始连线。前面有说过,arduino mega 12804UART,也就是4个串口,接口01141516171819两两对应于这4个串口的收,发端。另外,板上还有3.3v, 5v, GND,和Vin接口,提供各种电压的输出,其中,Vin代表的是arduino的输入电压。不过要注意,输出的负载电流都不能超过50mA,否则就有烧掉的危险。连线如下图:

     

     

    红线连接arduino5v和蓝牙串口模块的5v;黑线连接arduino和蓝牙串口模块的GND;黄线连接arduinoRx和蓝牙模块的Tx;绿线连接arduinoTx和蓝牙模块的RxOk,大功告成。

     

    接下来就是写程序了。为了测试通讯,PC通过无线连接向arduino发送一个字符't'arduino收到后闪一下灯,并向PC反馈一个字符串"echo"。程序如下:

     

    const int ledpin = 13;

    const int pinRx = 0;

    const int pinTx = 1;

     

    void setup()

    {

    Serial.begin(9600);

    pinMode(ledpin, OUTPUT);

    }

    void loop()

    {

    int val = Serial.read();

    if (val == 't')

    {

    digitalWrite(ledPin, HIGH);   // set the LED on

    delay(500);

    digitalWrite(ledpin, LOW);

    delay(500);

    Serial.println("echo");

    }

    }

     

    相对上一个程序,这里面有些新的东西,就是串口对象Serial,这个对象对应于01接口的串口设备;当然,其他3个串口也有对应的串口对象,名字分别为Serial1, Serial2, Serial3。编程参考可以看这个链接:http://arduino.cc/en/Reference/Serial。这里使用的对象接口函数很简单,Serial.begin(波特率),用于初始化串口并指定通讯的波特率;Serial.read()是从串口的接收缓冲区中读出一个字符,如果没有,返回-1Serial.println(字符串)用于输出一个带回车符的字符串。需要提一下的是,arduino的第一个串口和FTDI USB-to-TTL串口芯片相接,也就是说这个串口设备可以通过USB线连接PC

    程序写完,就可以上传运行了。蓝牙模块背面有2个灯,分别是powerstate,通电后power就亮了,state灯却一直闪烁,这是因为蓝牙还没有连接。PC端这时需打开蓝牙管理,然后搜寻新的设备,会找到一个叫linvor的蓝牙设备。打开,这个设备只有一个蓝牙串口。点右键连接,跳出配对密码输入框,输入密码"1234"即可。连接完成后,可以看到蓝牙模块上的state灯长亮了,这表明连接正常,就可以进行通讯了。

    既然是通讯,PC端也要有个基于串口的通讯程序。除了使用arduino开发环境自带的Serial Monitor,自己也可以找一个流行的。咱是懒人,就用开发环境自带的好了,反正应用很简单,这个程序也够用了。点击开发环境最右面Serial Monitor那个图标,就跳出下面这个界面。不过要注意,在TOOL菜单下的COM选择,应该是对应蓝牙串口所用的那个串口编号,而不是USB的,否则,呵呵,就不是蓝牙无线通讯而是USB串口通讯了。

     

     

    最后补充一下,蓝牙模块的信息是可以通过AT命令来进行改动的,缺省情况下,蓝牙设备名是"linvor", 通讯波特率为9600,配对密码为"1234"。具体说明如下:

     

    通过串口与电脑连接,再通过串口调试助手给模块发送命令可以配置模块的一些参数,

    具体的配置方式如下:

    1)、测试通讯:发送AT 命令,返回ok

    2) 更改波特率

    模块默认的波特率是9600

    发送AT BAUD1 返回OK1200

    发送AT BAUD2 返回OK2400

    ……

    BAUD1------------1200

    BAUD2------------2400

    BAUD3------------4800

    BAUD4------------9600

    BAUD5------------19200

    BAUD6------------38400

    BAUD7------------57600

    BAUD8------------115200

    BAUD9------------230400

    A--------------------460800

    B--------------------921600

    C--------------------1382400

    不建议使用超过115200 的波特率,因为大多系统都没有提供高

    115200 的波特率,PC 机也是如此,波特率设置超过115200 以后,

    电脑无法使用,要使用波特率高于115200 的系统才能重新发AT 命令

    设置低的波特率,否则无法恢复低波特率了。

    AT 命令设置好波特率后,下次上电不需要再设置,掉电可以

    保存波特率。

    3)更改蓝牙名字

    发送:AT NAMEname

    返回:OKname

    参数name:你所要设置的名字,也就是蓝牙被搜索到的名字,

    20 个字符以内。

    例:发送AT NAMEJYOO

    返回返回JYOO

    参数可以掉电保存,只需设置一次

    4)更改蓝牙配对密码

    发送:AT PINXXXX

    返回:OKsetpin

    参数XXXX:所需设置的密码4 位,只需更改一次,掉电保存。

     

    展开全文
  • Arduino蓝牙串口通信

    千次阅读 2016-11-28 20:05:11
    1:对于Arduino,print()和println()函数都是用ASCII字符的方式传送数据。 无论是int、float还是string,都自动转换成ASCII码传送...2:蓝牙串口是异步传输方式,每次Serial.read()只读一个字节,在一个loop()循环中可

    1:对于Arduino,print()和println()函数都是用ASCII字符的方式传送数据。
    无论是int、float还是string,都自动转换成ASCII码传送。
    其中println()函数在传送的数据后面加了回车和换行符(”\r”和”\n”)。换行符正好可以作为结束符来让手机端识别。
    2:蓝牙串口是异步传输方式,每次Serial.read()只读一个字节,在一个loop()循环中可能收不全一条数据信息,必须要有一个全局变量来收集接收到的字符。如果要通讯可靠,使用结束符来确定收到了一条完整的信息,是非常必要的。手机端也是一样。
    3:用的Serial.parseInt()函数,作用是在收到的字符流中,找到数字字符,并累积在一起,直到收到一个非数字字符时,将前面收到的数字字符转换成一个整数。如果要传送多个数值,中间用逗号等分隔符隔开即可。比如三个数值,”12,325,993“,后面加一个自定义的结束符,作为字符串发给Arduino。
    (例程中用字符”X”作为结束符。)这样接收数据完整而可靠。接收float可以用Serial.parseFloat()函数,用法一样。
    4:/* 本例程演示从手机蓝牙串口接收指令,点亮或熄灭11脚的LED,或者调整亮度。
    * 接收指令格式:“101X”点亮,“102X”熄灭,”000X”调整亮度。(000为0-100的整数,表示亮度值,X是结束符。)
    * 串口是异步接收的,用parseInt()查找第一个有效整数,检测到结束符后开始处理。
    * 接收数据显示在1602LCD屏上。
    * 点亮或熄灭LED后,将收到数据回传给手机。用pringln()函数,数据后面加了”\r”和”\n”两个字符,可以用作结束符。
    * 串口传送的是ASCII字符,数据格式可以自动转换。
    */

    /* 本例程演示从手机蓝牙串口接收指令,点亮或熄灭11脚的LED,或者调整亮度。
     * 接收指令格式:“101X”点亮,“102X"熄灭,”000X"调整亮度。(000为0-100的整数,表示亮度值,X是结束符。)
     * 串口是异步接收的,用parseInt()查找第一个有效整数,检测到结束符后开始处理。
     * 接收数据显示在1602LCD屏上。
     * 点亮或熄灭LED后,将收到数据回传给手机。用pringln()函数,数据后面加了"\r"和"\n"两个字符,可以用作结束符。
     * 串口传送的是ASCII字符,数据格式可以自动转换。
     */
    
    #include <Wire.h>                  // 包含LCD库。
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x27,16,2);  // 初始化LCD对象,地址为0x27,每行16个字符,共两行。
    int p;                             // 定义整数型全局变量,保存接收的数据。
    
    void setup() {
      lcd.init();                      // 初始化LCD。 
      lcd.backlight();                 // 打开LCD背光。
      Serial.begin(9600);              // 打开串口(蓝牙)
      pinMode(11,OUTPUT);              // 定义11脚为输出。(数字或PWM)
    }
    
    void loop() {
      while (Serial.available() > 0) {   // 串口收到字符数大于零。
        p = Serial.parseInt();           // 在串口数据流中查找一个有效整数。
        if (Serial.read() == 'X') {      // 收到结束符后开始处理数据。
          lcd.clear();                   // LCD清屏。
          lcd.print(p);                  // LCD显示收到的数据(整数)。
          switch (p) {                   // 判断数据内容。
          case 101:
            digitalWrite(11,HIGH);       // 点亮LED。
            Serial.println(p);           // 回传数据。
            break;
          case 102:
            digitalWrite(11,LOW);        // 熄灭LED。
            Serial.println(p);           // 回传数据。
            break;
          default:
            p = map(p,0,100,0,255);      // 转换数据范围到PWM输出值。
            analogWrite(11,p);           // 调整LED亮度。(PWM)
          }
        }
      }
    }
    展开全文
  • Arduino智能小车——蓝牙小车

    万次阅读 多人点赞 2020-05-19 10:53:50
    Arduino智能小车——蓝牙小车  上一章我们完成了小车的运动控制,虽然小车已经可以运动,但是不能远程遥控,不够高大上。在这一篇,我们将尝试用手机蓝牙遥控小车。蓝牙模块  蓝牙( Bluetooth® ):是一种无线...

    Arduino智能小车——蓝牙小车

      上一章我们完成了小车的运动控制,虽然小车已经可以运动,但是不能远程遥控,不够高大上。在这一篇,我们将尝试用手机蓝牙遥控小车。

    蓝牙模块

      蓝牙( Bluetooth® ):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。

      我们在此使用的蓝牙模块(HC-05)已经在内部实现了蓝牙协议,不用我们再去自己开发调试协议。这类模块一般都是借助于串口协议通信,因此我们只需借助串口将我们需要发送的数据发送给蓝牙模块,蓝牙模块会自动将数据通过蓝牙协议发送给配对好的蓝牙设备。

    串口通信

      由于要借助串口实现蓝牙通信功能,所以我们在此要先了解下Arduino的串口通信。

      Arduino UNO开发板上的串口为0->RX,1->TX,在开发板内部也已经配置好了串口的功能,我们只需调用函数借口即可。以下列出串口通信里面常用的函数,并加以简单解释,详细用法可在用到时自行查询。

    开启串行通信接口并设置通信波特率

    Serial.begin(speed); 
    

    关闭串口通信

    Serial.end();    
    

    判断串口缓冲器是否有数据写入

    Serial.available();
    

    读取串口数据

    Serial.read();    
    

    返回下一字节(字符)输入数据,但不删除它

    Serial.peek();   
    

    清空串口缓存

    Serial.flush();    
    

    写入字符串数据到串口

    Serial.print();    
    

    写入字符串数据+换行到串口

    Serial.println(); 
    

    写入二进制数据到串口

    Serial.write();     
    

    read时触发的事件函数

    Serial.SerialEvent();
    

    读取固定长度的二进制流

    Serial.readBytes(buffer,length);
    

    打印接到数据十进制表示的ascii码

    Serial.println(incomingByte, DEC);
    

    蓝牙模块连接

    TX: 接Arduino UNO开发板"RX"引脚
    RX: 接Arduino UNO开发板"TX"引脚
    GND: 接Arduino UNO开发板"GND"引脚
    VCC: 接Arduino UNO开发板"5V"或"3.3V"引脚

    手机蓝牙助手

      想实现手机蓝牙遥控小车,手机APP是必不可少的,目前网上有很多蓝牙串口助手,省去了我们自己写APP的时间,当然如果朋友你有能力或者想自己DIY的话也可以尝试自己写APP,在这里我推荐大家用这款手机蓝牙助手(百度上搜手机蓝牙串口助手就可以搜到,挺好用的)

      如果不想自己去找的话可以到我的百度网盘下载 [点击这里下载](http://pan.baidu.com/s/1pKClRTL)

      下载并安装后打开APP,在这里可能会提示你有新版本请求更新,建议点击以后再说(暂时不更新),以我的经验,一般点击立即更新都会更新失败。

      进入主界面,左上角会提示"蓝牙未连接",这个时候我们可以先对蓝牙助手的界面进行自定义设置。点击右下角的三个点(在我这里是这样的,其他手机可能不同,如果没有这三个点可以试着点击手机的功能键),选择“更多”。
      然后选择“地面站设置”进入自定义界面,往下拖动,找到“自定义按键[x]”,在此我们对按键[1][2][3][4][6]进行自定义设置。
    **  点击自定义按键[1],将其“显示名称”属性改为“停止”,“点击发送”属性改为“00”,并点击“确定”保存**
    同理更改其他按键:

    点击自定义按键[2],将其“显示名称”属性改为“前进”,“点击发送”属性改为“01”,并点击“确定”保存
    点击自定义按键[4],将其“显示名称”属性改为“左转”,“点击发送”属性改为“03”,并点击“确定”保存
    点击自定义按键[5],将其“显示名称”属性改为“后退”,“点击发送”属性改为“02”,并点击“确定”保存
    点击自定义按键[6],将其“显示名称”属性改为“右转”,“点击发送”属性改为“04”,并点击“确定”保存

      以上修改的属性值即为我们点击对应按键之后,蓝牙串口助手自动通过蓝牙发送的数据,与上一篇所定义的小车的几个状态一致,这样方便在Arduino在接收到蓝牙模块的数据后对小车的状态进行控制。

    #define STOP      0
    #define FORWARD   1
    #define BACKWARD  2
    #define TURNLEFT  3
    #define TURNRIGHT 4
    

    修改后属性如下图

    下面就来看看我们修改的效果吧,点击“模式切换”

    这时候你就可以看到我们自定义的按键咯,看看修改前后的对比吧。
      接下来我们将连接蓝牙,仍然点击右下角的三个点,然后点击“连接”
      一般没有连接过蓝牙模块的时候“已配对的设备”下面没有可选择的设备名称,因此我们要点击“扫描新设备”来检测我们的蓝牙模块,扫描成功后蓝牙模块的名称将显示在“已配对的设备”一栏中
      点击我们的蓝牙模块的名称,输入密码进行配对。配对成功后在蓝牙串口助手的左上角会显示“蓝牙已连接”字样,恭喜你,这时候你已经连接成功。

    小科普:
      蓝牙模块上电(只简单连接"VCC"和"GND"引脚)之后,其他蓝牙设备即可与其连接,一般蓝牙模块默认初始连接密码为"0000"或"1234",如果连接不上蓝牙,请尽快与厂商或者店家联系。蓝牙模块上电后LED指示灯不断闪亮,当有设备连接预期连接之后会隔一段闪两下,蓝牙串口助手也会有相应已连接的提示。

    ##Arduino代码编写
    新建一个工程,将下面代码复制到工程内

    #define STOP      0
    #define FORWARD   1
    #define BACKWARD  2
    #define TURNLEFT  3
    #define TURNRIGHT 4
    
    int leftMotor1 = 4;
    int leftMotor2 = 5;
    int rightMotor1 = 6;
    int rightMotor2 = 7;
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);
      pinMode(leftMotor1, OUTPUT);
      pinMode(leftMotor2, OUTPUT);
      pinMode(rightMotor1, OUTPUT);
      pinMode(rightMotor2, OUTPUT);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      //usart read
      if(Serial.available()>0)
      {
        char cmd = Serial.read();//读取蓝牙模块发送到串口的数据
      
        Serial.print(cmd);
        motorRun(cmd);
          
      }  
    }
    void motorRun(int cmd)
    {
      switch(cmd){
        case FORWARD:
          Serial.println("FORWARD"); //输出状态
          digitalWrite(leftMotor1, HIGH);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, HIGH);
          digitalWrite(rightMotor2, LOW);
          break;
         case BACKWARD:
          Serial.println("BACKWARD"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, HIGH);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, HIGH);
          break;
         case TURNLEFT:
          Serial.println("TURN  LEFT"); //输出状态
          digitalWrite(leftMotor1, HIGH);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, HIGH);
          break;
         case TURNRIGHT:
          Serial.println("TURN  RIGHT"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, HIGH);
          digitalWrite(rightMotor1, HIGH);
          digitalWrite(rightMotor2, LOW);
          break;
         default:
          Serial.println("STOP"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, LOW);
      }
    }
    

      朋友们大概也发现了,这个代码和上一篇的代码基本上相同,只不过增加了串口的内容。

    ##代码详解
      串口初始化函数,想要通过串口的库函数对串口进行操作,必须在void set_up()函数中对其进行初始化。

    Serial.begin(9600);
    

      在void loop()函数内,加入了检测串口接收内容的函数,并将接收到的命令输入到 void motorRun(int cmd)函数中控制小车运动。

    if(Serial.available()>0)
      {
        char cmd = Serial.read();
      
        Serial.print(cmd);
        motorRun(cmd);
      }  
    

    蓝牙小车测试

      下载程序之后,重新连接蓝牙模块,切换到我们自定义的按键界面,快试试蓝牙遥控小车吧。

    附件

    安卓手机蓝牙串口点击下载,也可以复制链接 https://download.csdn.net/download/qq_16775293/11165678 到浏览器下载。

    欢迎各位有兴趣的朋友加入Q群1:789127261点评、交流

    展开全文
  • 基于手机蓝牙arduino遥控小车

    万次阅读 多人点赞 2019-11-05 22:36:21
    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它...本文为基于arduino的手机蓝牙遥控小车 基于arduino的手机蓝牙遥控小车 基于arduino的红外遥控小车 基于arduino的无线NRF24L01遥控小车 基于ardu...

    遥控小车是每个人童年的最爱,不仅好奇它的奇妙,更是喜欢它带来的刺激。小编为大家带来几篇博客,来给大家讲讲制作遥控小车的程序。

    看大标题可知我们一共有五个方法去制作一款带有遥控功能的小车,小编分开来给大家讲解。

    本文为基于arduino的手机蓝牙遥控小车


    基于arduino的手机蓝牙遥控小车

    基于arduino的红外遥控小车

    基于arduino的无线NRF24L01遥控小车

    基于ardunio的无线手柄遥控小车

    基于ardunio的有线手柄遥控小车

     

    从0到1教你做:基于手机蓝牙的Arduino的遥控小车

    bilibili:https://www.bilibili.com/video/av74340803/

    腾讯视频:https://v.qq.com/x/page/z3016nw00yq.html

     

    获取该源码方式:

    1、CSDN下载:

    https://download.csdn.net/download/qq_38351824/11107057

     

    2、可以关注点赞并在下方评论,我给你邮箱发过去。

     

    3、关注微信公众号下载:

         ① 关注微信公众号:Tech云  

         ②

     

    一、接线:

    (1)HC05蓝牙接线:

               

    连接方式:蓝牙上的RX和TX分别接arduino板子上的TX和RX

    !!!注意!!!  下载程序的时候要拔掉蓝牙模块(或拔掉arduino板上RX引脚或让蓝牙断电),否则会出现下载错误。

    (2)电机接线:

    四个逻辑通道从左到右(即IN1到IN4)分别接5、6、9、10

    12v供电,5伏输出给arduino供电

    注意:此处驱动一定要和arduino共地!!!否则无法传输数据。

    输出A接左边电机,输出B做右边电机

    二、书写代码:

    然后将以下代码下载到arduino板:

    //-------------------------------------------------------------------//
    //*******************************************************************//
    ///
    //电机设置/
    ///
    
    #define leftA_PIN 5
    #define leftB_PIN 6
    #define righA_PIN 9
    #define righB_PIN 10
    void motor_pinint( );     //引脚初始化
    void forward( );          //前进
    void back( );             //后退
    void turnLeftOrigin( );   //原地左
    void turnRightOrigin( );  //原地右
    void turnRightforword( ); //右前
    void turnLeftforword( );  //左前
    void turnLeftback( );     //左后
    void turnRightback( );    //右后
    void _stop();             //停车
    
    //-------------------------------------------------------------------//
    //*******************************************************************//
    ///
    //蓝牙遥控/
    ///
    int receive;
    void reve(void);
    
    //----------------------------------------------------------------//
    
    void setup()
    {
      Serial.begin(9600); //串口波特率9600(手机端使用)
      motor_pinint( );
    }
    void loop()
    {
       reve();
    }
     
    void reve(void)
    {
              receive=Serial.parseInt();
           if(receive==7)     {forward( )         ;delay(500);_stop();}//前进
      else if(receive==6)     {back( )            ;delay(500);_stop();}//后退
      else if(receive==1)     {_stop()            ;delay(500);_stop();}//停车
      else if(receive==3)     {turnLeftforword( ) ;delay(500);_stop();}//左前
      else if(receive==2)     {turnRightforword( );delay(500);_stop();}//右前
      else if(receive==5)     {turnLeftback( )    ;delay(500);_stop();}//左后
      else if(receive==4)     {turnRightback( )   ;delay(500);_stop();}//右后
      else if(receive==8)     {turnLeftOrigin( )  ;delay(250);_stop();}//原地左
      else if(receive==9)     {turnRightOrigin( ) ;delay(250);_stop();}//原地右
    }
    
    /*电机引脚初始化*/
    void motor_pinint( )
    {
      pinMode (leftA_PIN, OUTPUT); //设置引脚为输出引脚
      pinMode (leftB_PIN, OUTPUT); //设置引脚为输出引脚
      pinMode (righA_PIN, OUTPUT); //设置引脚为输出引脚
      pinMode (righB_PIN, OUTPUT); //设置引脚为输出引脚
      }
    /**************************************************
    forward子函数——前进子函数
    函数功能:控制车前进
    **************************************************/
    void forward( )
    {
      analogWrite(leftA_PIN,180);      
      analogWrite(leftB_PIN,0);         //左轮前进
      analogWrite(righA_PIN,180);      
      analogWrite(righB_PIN,0);         //右轮前进
    }
    /**************************************************
    back子函数——后退子函数
    函数功能:控制车后退
    **************************************************/
    void back( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,180);        //左轮后退
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,180);        //右轮后退
    }
    /**************************************************
    turnLeftOrigin子函数——原地左转子函数
    函数功能:控制车原地左转
    **************************************************/
    void turnLeftOrigin( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,120);        //左轮后退
      analogWrite(righA_PIN,120);      
      analogWrite(righB_PIN,0);          //右轮前进
    }
    /**************************************************
    turnRightOrigin子函数——原地右转子函数
    函数功能:控制车原地右转
    **************************************************/
    void turnRightOrigin( )
    {
      analogWrite(leftA_PIN,120);      
      analogWrite(leftB_PIN,0);        //左轮前进
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,120);      //右轮后退
    }
    /**************************************************
    turnRightforword子函数——右前运动子函数
    函数功能:控制车右前
    **************************************************/
    void turnRightforword( )
    {
      analogWrite(leftA_PIN,200);      
      analogWrite(leftB_PIN,0);        //左轮快前进
      analogWrite(righA_PIN,120);      
      analogWrite(righB_PIN,0);        //右轮慢前进
    }
    /**************************************************
    turnLeftforword子函数——左前运动子函数
    函数功能:控制车左前
    **************************************************/
    void turnLeftforword( )
    {
      analogWrite(leftA_PIN,120);      
      analogWrite(leftB_PIN,0);       //左轮慢前进
      analogWrite(righA_PIN,200);      
      analogWrite(righB_PIN,0);       //右轮快前进
    }
    /**************************************************
    turnRightforword子函数——右后运动子函数
    函数功能:控制车右后
    **************************************************/
    void turnRightback( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,200);        //左轮快后退
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,120);        //右轮慢后退
    }
    /**************************************************
    turnLeftforword子函数——左后运动子函数
    函数功能:控制车左后
    **************************************************/
    void turnLeftback( )
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,120);        //左轮慢后退
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,200);        //右轮快后退
    }
    /**************************************************
    stop子函数—停止子函数
    函数功能:控制车停止
    **************************************************/
    void _stop()
    {
      analogWrite(leftA_PIN,0);      
      analogWrite(leftB_PIN,0);         //左轮静止不动
      analogWrite(righA_PIN,0);      
      analogWrite(righB_PIN,0);         //右轮静止不动
    }
    

    三、蓝牙串口助手APP:

     

    获取该源码方式:

    1、CSDN下载:

    下载地址:https://download.csdn.net/download/qq_38351824/10613322

    2、可以关注点赞并在下方评论,我给你邮箱发过去。

    3、关注微信公众号下载:

         ① 关注微信公众号:Tech云  

         ②

    下载安装后,打开APP后会自动开始搜索附近的蓝牙设备:

    搜索到后:

    然后选择我们要连接的设备

    输入PIN,一般密码为1234或0000或123456

    输入正确后如下图

    这个APP只有这三种模式,但是足够一般人使用啦。我们使用的是键盘模式,其他两种模式,大家可以尝试玩一下。

    那么,选择键盘模式后,如下图

    大家的和我的应该不一样,我这个是配置好了的样子(其中退出主函数和调节舵机中值不是,这是我之前用在智能车上的

    那么,如何配置呢?

    点击右上角的

    然后再点击配置键盘值。看似没什么区别,但是在点开按键会弹出界面

    显示名:就是刚才那个界面的名字;按下发送值:顾名思义,就是按下该按键后发送的数字。

    按照这个对应,更改下

      7---前进
      6---后退
      1---停车
      3---左前
      2---右前
      5---左后
      4---右后
      8---原地左
      9---原地右

    然后再点击右上角的

    然后点击保存就全部大功告成啦!

    如果大家在制作过程中有什么问题或者思路可以在下方留言和我一起交流噢!

    如果发现本文有错误,也请在下方评论区指出,感激不尽!

    展开全文
  • Arduino使用蓝牙通信模块

    万次阅读 2017-11-12 19:55:55
    在淘宝店中买的HC-05主从机一体蓝牙模块,该模块的正面和反面截图如下:  测试的时候只使用了RX、TX、GND、5V这四个引脚,测试的连接示意图如下,需要注意的是蓝牙模块的RX要接Arduino的TX,蓝牙模块的TX要接...
  • 安卓手机与Arduino之间采用蓝牙串口通讯,是很多智能装置和互动装置常用的控制方法,简单而有效,无需网络环境,很实用的技术。在论坛搜了一下,帖子很少,问问题的很多。各种教材中炒来炒去,...
  • ROS学习之Arduino篇——蓝牙模块与手机进行通信

    万次阅读 多人点赞 2020-02-05 11:33:31
    本篇主要内容:通过手机蓝牙发送数据给Arduino,其实本篇并不设计到ROS的内容,Arduino读取传感器的值然后以ROS消息方式广播出去的教程将在下一节中进行介绍,可参考:ROS学习之Arduino篇——读取并发布各种传感器...
  • 1,提供了Arduino(Mega2560)与Android基于蓝牙串口的通信源代码。 2,其中Arduino在收到蓝牙信息后复制应答发回给android端。 3、Android端利用接收缓冲分析,处理返回数据包随机分割的问题; 4、Android采用异步...
  • Arduino无线蓝牙串口透传模块 HC-06从机蓝牙模块无线串口通讯
  • 手机通过蓝牙串口arduino通信

    千次阅读 2011-01-21 09:10:00
    前段时间把蓝牙透传模块在arduino上的使用弄好了,今天拿我的手机来测试一下。我手机是多普达S1,因为是行货,没有wifi,想控制arduino只能通过蓝牙了。还好wm6操作系统能运行.net2.0开发的移动软件,用serialport...
  • 这篇文章的目的是解释如何开启ESP32蓝牙连接到一个PC电脑蓝牙,进行串口收发实验,使用ESP32和Arduino IDE库。 具体步骤可以参考下文: 首先,需要安装ESP32的编译环境。这里推荐使用Arduino IDE,安装文件可以到...
  • arduino 蓝牙SSP远程烧录

    千次阅读 2015-08-15 14:13:16
    之前有看到过通过TCP/IP烧录,或者通过TTL + 蓝牙主模块 连接蓝牙从模块进行远程烧录的,不过这个都比较复杂。...仅需要一台带蓝牙的笔记本/PC,然后需要一个简单蓝牙串口模块,我这里用的ATK-HC05,
  • Android手机通过蓝牙控制Arduino

    千次阅读 2019-02-20 10:19:16
    有没有想过用智能手机控制任何电子设备?今天我将展示如何做到这一点 控制实现详情,以及本文Android App下载,Arduino代码,点击此链接关注国外课栈网“平台创客:Android”专栏 ...
  • 蓝牙模块使用方法也比较简单,直接串口操作,无需额外的库文件。首先还是先看看模块长什么样子:【注意蓝牙的工作电压】这个模块兼容3.6-6V电压,所以我接在5V电压上使用。首先是对蓝牙模块进行设置,我是用TTL转...
  • Arduino使用HC05蓝牙模块与手机连接

    万次阅读 多人点赞 2017-09-18 10:32:16
    利用 Andorid 蓝牙串口调试软件测试功能 进入 At 模式进行蓝牙基本参数设置想要使用 Arduino 的蓝牙模块,首先要对蓝牙模块进行基本参数设置。基本参数设置主要包含:蓝牙名称、模式以及匹配密码等。设置蓝牙模块...
  • Arduino串口的使用

    万次阅读 2013-09-10 16:36:53
    串口Arduino与其它设备进行通信的接口,我们需要很好的掌握它的使用。Arduino串口使用相关的函数共有10个(随着版本的升级,新版本加入了更多,具体请参见官网:http://www.arduino.cc/)。 Serial.begin(); //开启...
  • BlackBerry 10 BlackBerry OS 7 1 手机通过蓝牙串口读取Arduino 蓝牙传过来的温度
  • //这是从站代码,LED灯正极串联一个1K电阻,负极接Arduino的P13脚 #include <SoftwareSerial.h> // 引用BT函数库 SoftwareSerial BT(2, 3); // 接收脚,传送脚 char val,_val; // 存储接收的值 //int val; ...
  • HC-05蓝牙模块arduino通信实例代码以及注意事项HC-05的接线及使用进入蓝牙的设置模式进入AT命令模式(设置蓝牙参数)注意事项进入AT模式的代码(注意在通电之前让蓝牙模块进入设置模式)进入AT模式响应常用AT命令...
1 2 3 4 5 ... 20
收藏数 1,022
精华内容 408
关键字:

蓝牙串口arduino