Arduino-环境搭建
文章目录
- Arduino-环境搭建
- 下载开发软件
- 调研Arduino入门教程
- 本次学习所使用的Arduino开发板型号
- 下载开发板的包——电脑联网,先插上开发板,再打开Arduino IDE
- Arduino串口接收实验
- Arduino蓝牙接收实验
- Arduino蓝牙发送实验
下载开发软件
官网:Arduino官网
在官网中,操作如下图1、图2
右键以管理员身份打开,如图4所示
选择“仅为我安装”,如图5所示
选择安装位置如下图6所示
调研Arduino入门教程
1.bilibili_太极创客
本次学习所使用的Arduino开发板型号
如下图9所示,型号为Arduino UNO R3
然后就打开IDE了。此时参考太极创客的教程,发现选择开发板那里,啥也没有,这就涉及到下一步了,我们需要下载开发板的包。
我们这里先关闭IDE。
下载开发板的包——电脑联网,先插上开发板,再打开Arduino IDE
如下图10,识别到了插上的开发板接口,然后自动下载对应的软件包了。所以我们在打开软件前,应该联网。而且由于服务器在国外,因此下载速度会慢一些,需要耐心等待
如下图11,
Arduino串口接收实验
参考资料:
1.Arduino串口接收实验
操作步骤:
(1)按照参考资料,在初始化阶段,完成串口波特率初始化,设置成9600
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
(2)定义一个字符串类型的全局变量
String str;
(3)在循环中不断地读取数据,并打印出来;而读取的数据从何而来呢?当然是用软件助手来发啦!
读取数据并打印的代码如下
void loop() {
// put your main code here, to run repeatedly:
str = "";
while (Serial.available() > 0)
{
str += char(Serial.read()); // read是剪切,而不是复制
delay(10); // 延时
}
if (str.length() > 0)
{
Serial.print(F("Arduino 接收到的数据:"));
Serial.println(str);
}
}
Arduino蓝牙接收实验
参考资料:
1.Arduino蓝牙资料1
准备材料:
硬件
(1)Arduino UNO R3
(2)安卓手机(装有自己使用AndroidStudio编写的软件,具备蓝牙开启、连接与指令发送功能)
软件:
(1)Arduino IDE(编程与使用串口助手查看接收的信息)
(2)自己编写的安卓软件(功能如上叙述)
编写代码:
(1)参考Arduino蓝牙资料1与Arduino串口资料叙述1、Arduino串口资源不够用怎么办?,可以知道R3在硬件上只有1个串口,可用于程序下载,因此需要软件串口,由此可以将蓝牙模块连接到软件串口上。因此在代码里导入软件串口的包,再把蓝牙模块的TX、RX分别映射到对应的口上,然后对应接好线即可。
#include <SoftwareSerial.h>//蓝牙连接的头文件
SoftwareSerial BT(10, 11); //HC-05的RX和TX分别接D11和D10
String BtOrder;//接收蓝牙的指令
(2)在初始化阶段,对要打印信息的串口和蓝牙串口进行波特率初始化,如下
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
BT.begin(9600);
Serial.println("Bluetooth is ready!");
}
(3)在循环中,不断地接收蓝牙的数据,如果有数据(即BtOrder的长度大于0),则打印数据
void loop() {
// put your main code here, to run repeatedly:
BtOrder = "";
delay(10);
while(BT.available() > 0){
BtOrder += (char) BT.read();
delay(10);
}
if(BtOrder.length() > 0){
Serial.println("receive data from blueTooth: "+BtOrder);
}
}
实验结果:如下图13
思考1:蓝牙模块的Tx、Rx能分别接到下载程序串口的Rx、Tx吗?
回答:可以参考上面的链接Arduino串口资料叙述1,这会造成串口冲突,从而无法下载程序。这也是为什么使用软件串口的原因。
Arduino蓝牙发送实验
这个实验与Arduino通过蓝牙接收的实验差不多,只不过数据传送的方向发生了改变。
注意,结合串口接收实验的代码,本次发送的数据来源是来自于ArduinoIDE自带的软件串口编辑框,因此通过char(Serial.read())读取一个byte,然后组成字符串,放入到String类型的变量str中,在读完后,通过BT.print(str)一次性将整个字符串发送给手机软件。代码如下:
#include <SoftwareSerial.h>//蓝牙连接的头文件
SoftwareSerial BT(10, 11); //HC-05的RX和TX分别接D11和D10
String str;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
BT.begin(9600);
Serial.println("Bluetooth is ready!");
}
void loop() {
// put your main code here, to run repeatedly:
str = "";
while (Serial.available() > 0)
{
str += char(Serial.read());
//BT.write(); // read是剪切,而不是复制
//delay(10); // 延时
}
BT.print(str);
}
实验结果,如下图15所示,显示的是手机app接收到的数据