首页 > 其他分享 >arduino 蓝牙模块测试

arduino 蓝牙模块测试

时间:2023-03-16 23:46:27浏览次数:50  
标签:GND arduino 蓝牙 模块 BTserial 马达

今天在chatgpt的高效查询下顺利地测试了arduino的蓝牙功能:

 蓝牙模块(JDY-31):

原材料

Arduino UNO开发板 x1

蓝牙模块JDY-31 x 1

子母杜邦线 若干

马达/LED灯 x 1(本次用的是马达)

 

总成本约30元

接线

部分接线位置和代码有关,如果有必要可以修改代码。

蓝牙模块

蓝牙模块只要接四根线就行了,按 Arduino板->蓝牙模块 的顺序:

5v -> VCC

GND -> GND

D2(S,即Signal) -> TXD

D3 (S)-> RXD

蓝牙模块正面接线(上面那张图是背面) arduino板接线情况(5V、GND) arduino板接线情况(D2、D3和9、GND)

 

马达

马达直接把两头接在开发板上就行。按Arduino板 -> 马达 的顺序:

9 -> 马达一端

GND(每一个GND接头都是相同的) ->  马达另一端

C++代码

#include <SoftwareSerial.h>

SoftwareSerial BTserial(2, 3); // 将蓝牙模块连接到D2和D3引脚
char r;

void setup() {
  Serial.begin(9600);
  BTserial.begin(9600); // 初始化软串口
  pinMode(9, OUTPUT);
}

void loop() {
  if (BTserial.available()) { // 如果从蓝牙模块接收到数据
    r = BTserial.read();
    if (r=='a'){digitalWrite(9, HIGH);} // 如果接收到a就启动马达/灯
    else {digitalWrite(9, LOW);}  // 接收到非a就关闭马达/灯
    Serial.write(r); // 将数据发送到串行监视器
  }
  if (Serial.available()) { // 如果从串行监视器接收到数据
    BTserial.write(Serial.read()); // 将数据发送到蓝牙模块
  }
}

步骤

1.将线按照描述接好

2.用数据线连接电脑和开发板

3.打开arduino IDE,输入程序,并点击上传

4.手机上在应用商店搜索“蓝牙连接spp助手”之类的应用,下载,连接上蓝牙模块(我的这个名称叫“JDY-31 spp”,默认配对码一般是1234)

5.在手机上选择ascii码格式(具体名称可能叫“us-ascii”) 作为输出到蓝牙的格式

6.在手机输入一个字母“a"并点击“发送”按钮,马达/灯就会转/亮起来

7.发送其他字符,马达就会停下/灯就会灭

 

备注

arduino IDE可以在百度上搜索,免费下载和安装。

arduino IDE基本操作

选择正确的开发板版本和端口

点击“工具”,选择符合你的板的arduino版本和正确的端口号:

 

端口号可以通过windows搜索“设备管理器”查看:

 

选择arduino对应的端口。 

上传程序到开发板(左边这句话不知道为什么不能设置成标题):

 

点击左上角用红色圆圈框起来的箭头可以上传

arduino板和电脑通过数据线传输的数据内容可以通过点击右上角的放大镜按钮,打开一个子窗口查看(前提是有具体传输内容,就这个案例而言,是有的,蓝牙端接收到的信号都会以ascii码的格式通过数据线传送回电脑)

 

 

标签:GND,arduino,蓝牙,模块,BTserial,马达
From: https://www.cnblogs.com/roundfish/p/17225096.html

相关文章

  • arduino学习(1)
    买的Arduino板子终于到了,终于可以动手做实验了...  上图中有面包板,面包线,面包板电源,Arduino电路板,平多多买的,官网买会比较贵。  买的一块esp232板子......
  • 安装paramiko模块成功之后,在IDE中导入报错 "No modeule named 'paramiko'"
    1.背景环境:win10系统,电脑中安装了python2和python3,目前使用python3的环境,pip使用正常。现象:cmd下pipinstallparamiko成功,并且piplist里有paramiko......
  • python中的hashlib模块
    md5是一种常见不可逆加密算法,使用简单,计算速度快,在很多场景下都会用到,比如:给用户上传的文件命名,数据库中保存的用户密码,下载文件后检验文件是否正确等。官网:https://docs.......
  • 【Irrlicht引擎 笔记】Core模块
    irr::core向量、平面、数组、列表等基础类都可以在这个命名空间中找到irr::coreirr::core::vector2d<T>irr::core::vector3d<T>irr::core::vector2d<T>1.判断......
  • (五)博客园美化(风格1):音乐插件等小模块的运用
    空闲的时候自己根据很多大神的美化教程,把自己的博客园简单装修了下。再此整理一下美化方式和步骤,如果喜欢本人博客这种风格,可以参考一下这个系列。一、ForkmeonGitee......
  • eclipse创建maven模块化web项目
        第一步,新建项目,把src目录删除       第二步,项目右键,新增模块dao, 第三步,pom.xml报错,修改<artifactId>maven-jar-plugin</artifactId><ve......
  • 上位机学习记录(3)编写用户登录模块
    上位机学习记录(3)编写用户登录模块(一)业务逻辑说明FrmLogin界面的cmb_LoginName控件进行数据绑定,通过SysAdminService.GetAllAdminDB()获取到所有的用户信息(二)界面初始化......
  • python datetime模块常用功能
    时间的转换:时间戳转日期(datetime.date.fromtimestamp(1234567896)),返回日期年-月-日时间戳转年月日时分秒(datetime.datetime.fromtimestamp(123456789......
  • QtConcurrent 并发 模块使用
    原文链接我的代码example//startathread,executealgorithmQFuture<void>future=QtConcurrent::run(this,&Deployment::useAlgorithm,......
  • 爬虫 相关 requests模块介绍、requests发送get请求、requests携带参数、url编码解码、
    爬虫介绍爬虫是什么爬虫就是程序---》从互联网中,各个网站上,爬取数据[能浏览的页面才能爬],做数据清洗,入库爬虫的本质模拟方式http请求,获取数据---》入库......