如何实现Arduino蓝牙串行连接

电子说

1.3w人已加入

描述

第1步:材料

由于这只是连通性,因此零件很少

1。 Arduino Uno 40美元起2。 Arduino盾$ 10

3。蓝牙调制解调器$ 40-60

这是我正在使用的sparkfun

https://www.sparkfun.com/products/10269

步骤2: Arduino Side Setup

设置硬件非常简单。

将所有东西都放在屏蔽层,调制解调器和Uno之间。

Modem-》 Uno

V ++ V ++

GND GND接地

RX-I TX-O

TX-O RX-I

可选流量控制

CTS-I High通知调制解调器何时arduino发送

RTS-O High告诉arduino何时接收蓝牙

现在将此测试程序加载到arduino

上。默认情况下,波特率是115200 NOT9600。请使用较高的波特率在蓝牙上通信。程序没有附带调制解调器。插入蓝牙后,您将无法在串行线上进行通信,这意味着上传将不起作用,串行监视器也将无法进行。如果要在使用过程中上载和监视,请保持RX和TX处于打开状态,并通过Uno使用SoftwareSerial或在Mega中使用另一个串行端口。

-------------- -----------------------------结果/************** *********

蓝牙测试程序

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

/*

设置。

在不连接调制解调器的情况下将其上传到板上

-确保波特率是115200,因为这是蓝牙(和串行端口)的值

*/

int计数器= 0;

int incomingByte;

void setup(){

Serial.begin(115200);

}

void loop(){

//查看是否有传入的串行数据:

if(Serial.available()》 0){

//读取串行缓冲区中最旧的字节:

entryingByte = Serial.read();

//如果是大写R,则重置计数器

if(incomingByte ==‘R’){

Serial.println(“ RESET”);

计数器= 0;

}

}

//仅计数到100,然后又停止,不计入无穷大

if(counter 《100){

Serial.println(counter);//显示ACSII编号/字母

//Serial.write(counter);//按原样写入数据

counter ++;

delay(250);

}

}

步骤3:配对设备设置-使用Mac

我将使用Mac进行配对,因为这就是我所有编程工作终端内置了一个不错的程序,可以用于测试目的。整个安装过程相似。如果您使用Windows,则建议使用超级终端。

1。进入蓝牙首选项并“设置新设备”

(确保您的蓝牙已打开!)

这也适用于蓝牙软件狗。

2。配对设备。它应该是RN42-xx。或使用功能更强大的RN41-xx。如果您遇到问题,请使用密码“ 1234”。

现在已配对,但尚未连接。

尝试配对或未连接时,小LED闪烁红色,成功配对时为绿色。并连接。

3。打开终端。请遵循以下命令

cd〜

(进入根目录)

ls/dev/tty。*

(应显示所有打开的COM端口的列表)。

打开用于通信的端口的命令是:

屏幕[portname] [baudrate]

它看起来像

screen/dev/tty.RN42-77EE-SPP 115200

有关屏幕命令如何工作的参考,请查看此参考。

http://www.math.utah.edu/docs/info/screen_5.html结果4。连接时,指示灯应变为绿色,并且应该开始通信。如果它变成绿色并且看不到任何东西,请尝试按“ R”。请记住,在代码中它最多只能计数100,然后停止。如果未计数,则不会显示。

完成。您应该能够从计算机上使用R将arduino重置。现在您可以做更多的事情。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分