arduino uno,电子爱好者和学生中最受欢迎的微控制器,使用 arduino 很容易开始使用嵌入式系统 但是 arduino 的一个缺点是它需要使用 usb 电缆连接到计算机才能上传代码,因为它已经完成了对无线通信有任何板载支持。有时,如果您的项目固定在某个地方,则很难将板与 pc 连接起来。解决这个问题的唯一方法是对 arduino 进行无线编程。在 esp8266 和 esp32 中可以轻松完成无线编程或 ota(无线)编程,因为它们内置了 wi-fi 支持。但在 arduino 中,我们必须使用蓝牙模块对其进行无线编程。所以在这里我们将学习如何通过蓝牙对 arduino 进行编程。
所需组件
arduino uno
hc05蓝牙模块
跳线
1k、2.2k 电阻器
电容 (0.1uf)
电源适配器
面包板
hc05蓝牙模块
hc-05模块是蓝牙串口协议模块,专为微控制器之间的无线通信而设计。hc-05蓝牙模块提供主从模式配置之间的切换模式,并通过9600波特率的串行通信进行通信,便于与控制器接口。hc05 模块在 3.3 v 上工作,但我们可以将其连接到 5v 电源电压,因为该模块带有板载 5v 至 3.3 v 稳压器。
蓝牙是最简单的无线通信方式,我们用它构建了许多有趣的项目,如 蓝牙控制机器人、 蓝牙语音控制、 蓝牙家庭自动化等。您可以在此处查看所有基于蓝牙的项目。
通过蓝牙对 arduino 进行编程
要对 arduino 进行无线编程,首先,我们必须对 arduino 进行编程以响应 at 命令。为此,将 arduino 连接到笔记本电脑的串口并上传以下代码:
#include softwareserial hc05(2,3);无效设置(){序列号.开始(9600);serial.println(输入at指令:);hc05.开始(38400);}无效循环(){ 如果 (hc05.available()) serial.write(hc05.read()); if (serial.available()) hc05.write(serial.read());}
代码的前两行用于包含softwareserial 库并定义连接蓝牙的发送器和接收器引脚。softwareserial库用于允许与 arduino 的硬件 tx 和 rx 引脚以外的数字引脚进行串行通信。多个软件串行端口可用于使用softwareserial库进行串行通信。
#include softwareserial hc05(2,3);
现在在setup 函数中,定义硬件和软件串行端口的波特率。硬件和软件串行端口的波特率分别为 9600 和 38400。
无效设置(){序列号.开始(9600);serial.println(输入at指令:);hc05.开始(38400);}
循环函数内部使用了两个if条件。第一个条件检查是否向 hc05 发出任何命令,如果是,则将其写入 arduino 串行监视器。第二个条件检查是否有任何命令发送给 arduino 串行监视器,如果是,则将其发送给 hc05。
无效循环(){ 如果 (hc05.available()) serial.write(hc05.read()); if (serial.available()) hc05.write(serial.read());}
接下来,在 hc05 上连接 arduino,使其进入 at 命令模式。相同的电路图如下:
在将 arduino 连接到计算机之前,先按下按键,然后将 arduino 连接到计算机。按住按键直到蓝牙模块 led 开始以 2 秒的间隔闪烁。蓝牙模块 led 在命令模式下的闪烁速度比正常模式下慢。
现在打开一个串行监视器并输入以下命令,作为回报,每次命令成功运行时,板都会以“ ok ”响应。
at+orgl
at+role=0
at+polar=1,0
at+uart=115200, 0, 0
at+init
成功测试 at 命令后,只需移除所有连接并按照下面的示意图连接即可。
使用适配器或 9v 电池为 arduino 供电。之后,转到笔记本电脑中的“设备”,打开蓝牙,然后将蓝牙模块连接到笔记本电脑。
设备配对成功后,接下来的任务就是找到hc05蓝牙模块的com口。为此,请转到“设备管理器”,然后检查 com 端口选项。它将显示两个 com 端口,一个用于传入,另一个用于传出。在上传程序时,我们需要选择第二个 com 端口号。
现在打开 arduino ide 并选择闪烁程序,选择正确的 com 端口,然后点击上传按钮。如果一切顺利,arduino 板载 led 将以 1 秒的间隔开始闪烁。
#include
softwareserial hc05(2,3);
无效设置()
{
序列号.开始(9600);
serial.println(输入at指令:);
hc05.开始(38400);
}
无效循环()
{
如果 (hc05.available())
serial.write(hc05.read());
if (serial.available())
hc05.write(serial.read());
}
劳斯莱斯计划在2025年前实现完全无人驾驶船队的部署
1200V,1700V,2000V......高性能碳化硅器件如何应对持续挑战?(内附活动中奖名单)
iPhone7S曝光 垂直排列双摄的它将是iPhone7的过渡之作?
华为员工已达14.6万人 30岁以下占51%
魅族小智内测?魅族新一代人工智能
如何通过蓝牙对Arduino进行编程
供配电系统的原理以及数据中心供配电系统的设计要求
vivo Xplay6库里定制版开启预约 4998元15号开卖!
apple watch series 7什么时候出,apple watch series 7发布
新汉推出全系列工业母板,满足工业计算应用
STM32 KEIL下的堆栈设置问题
oppor11发布会浙江卫视直播中:oppor11发布会现场直播视频一起看,oppor11发布会直播在线观看视频
AMD联手ARM计划2013年推出具备TrustZone功能的X86 APU
应用在水浸探测器中的高精度数字电容传感芯片
“新基建”加速智慧矿山时代到来,矿用无人驾驶挑战与机遇并存
掌控电路之源:电子元器件中的开关探秘
消费类MEMS运动传感器买家排名,中国厂商合计第三
ePTFE防水膜的作用与特点有哪些呢?
中国航空助力 用歼-20技术制造全自动口罩机
硬件工程师一定要有个明确的职业发展方向