尽管在过去十年中引入了许多无线技术,但是蓝牙仍然是短距离无线通信中最受欢迎的技术。在嵌入式系统中,HC-05 / 06是最受欢迎的蓝牙模块。在本篇文章中,我们将学习将蓝牙模块HC-05与德州仪器(TI)的MSP430 Launchpad开发板连接。在此示例中,我们将使用蓝牙终端android应用程序从智能手机控制MSP430开发板上的LED灯。
所需的材料
● TI-MSP430 Launchpad开发板
● HC-05蓝牙模块
● 应用商店中的Bluetooth Terminal App
HC-05蓝牙模块
HC-05是一款易于使用的蓝牙模块。它使用串行通信协议(USART)在设备之间进行通信。此模块有两种操作模式:第一种是命令模式,第二种是操作模式。命令模式用于配置设备设置,例如更改模块的密码、波特率等。操作模式用于在设备之间发送或接收数据。
在本本中,我们将使用默认设置(默认密码是0000或1234,设备名称是HC-05,默认波特率是9600)。因此,我们将仅在操作模式下工作。
工作电压范围为4V至6V(通常为+ 5V),工作电流为30 mA。模块的范围是100米。 HC-05蓝牙模块上总共有6个引脚,其中“ EN”和“ State”引脚用于“命令”模式。 HC-05蓝牙模块的引脚分配如下所示:
电路原理图
连接HC-05蓝牙模块和TI-MSP340开发板的电路图如下所示。
在本文中,我们已经完成了HC-05的4个连接。 HC-05的RxD和TxD引脚分别连接到MSP430的P1.1和P1.2,以进行串行通信。 HC-05的VCC和GND连接到MSP430的VCC和GND。
编程MSP430开发板用于蓝牙模块HC-05
使用MSP430对该蓝牙控制LED进行编程很容易。 MSP430将使用与Arduino IDE非常相似的Energia IDE进行编程,因此Arduino熟悉的人在理解这一点时不会遇到任何困难。
我们首先为红色LED定义一个宏。该代码只是为了方便,因此我们可以使用LED代替RED_LED
#define LED RED_LED
接下来是setup()函数,Serial.begin()函数用于将串行通信的波特率设置为9600,因为这是HC-05的默认波特率。我们还使用了pinMode()函数将数字引脚初始化为输出。
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
在loop()函数中,首先我们使用Serial.available()函数检查在串行端口上是否有数据。接下来,定义一个变量data_recieved,该变量存储Serial.read()函数的值。该函数用于从蓝牙接收数据。
接下来,在if-else语句中,我们将检查从手机发送的数据。如果为1,则使用digitalWrite(LED,HIGH)点亮LED,并在应用程序上显示使用Serial.write()函数点亮LED的消息。如果为2,则使用digitalWrite(LED,LOW)熄灭LED,并在应用程序上打印使用Serial.write()函数熄灭LED的消息。
void loop() {
if (Serial.available())
{
char data_received;
data_received = Serial.read();
if (data_received == '1')
{
digitalWrite(LED, HIGH);
Serial.write("LED turned ON");
}
else if (data_received == '2')
{
digitalWrite(LED, LOW);
Serial.write("LED turned OFF");
}
}
}
使用MSP430的蓝牙控制LED的工作过程
最后,使用Energia IDE将代码上传到MSP430,然后在智能手机上下载并安装Bluetooth Terminal应用程序。该应用程序如下所示:
现在,打开智能手机中的蓝牙并通过从可用设备列表中选择HC-06与蓝牙模块连接。使用密码0000或1234进行连接。连接后,将打开一个标题为设备名称的窗口,并在其下方写有连接。该窗口如下图所示:
在此窗口中,尝试通过蓝牙模块HC-05将1和2发送到MSP430。发送1将点亮LED指示灯,并在手机上显示“LED turned ON”,如下图所示:
Testing-HC-05-Bluetooth-Module-with-MSP430-Launchpad.jpg
发送2将熄灭LED指示灯,在手机上打印消息,显示“LED turned OFF”。瞧!您只需使用蓝牙就能实现通过手机控制LED。
上一篇:在脉搏血氧计设计中应用含智能模拟组合 MSP430™ MCU 的好处
下一篇:使用Code Composer Studio开发MSP430 - GPIO外部中断
推荐阅读最新更新时间:2024-11-13 10:12
推荐帖子
- 学习心得+电路基础保护
- 学习电路保护基础,可以对以后进行电子设计时对电路做一些电路保护设计,防止重要设备的损坏,是比较实用的一门课程。通过对这门课程,学习到电路保护的内容非常多,保护浪涌控制、带热电插拔、电流限制、电子电路断路保护、软启动等。这些保护中每一项保护都是必不可少的。对于现在电路保护的趋势也是向准确度、效率、高集成度等方向发展。这个课程中对FET的安全工作区计时解讲的不错,这是在平时经常要去分析的一个问题,对于每一种型号管子,都有一个安全工作区,课程中提出了,现在使用FET时,存在的普遍问题是安全工
- billjing 模拟与混合信号
- 求助 怎么编辑 Altium Designer 元件库和封装库 文件?
- 在网上下载了一下AltiumDesigner的元件库和封装库,可是经常会出现问题。我想重新编辑一下这些库,然后改成自己的?库文件的后缀是.SchLib和.PcbLib。不知道该怎么编辑.SchLib和.PcbLib后缀的文件?谢谢!求助怎么编辑AltiumDesigner元件库和封装库文件?麻烦高手指点一下啊!
- upc_arm PCB设计
- 除法的运算
- 本帖最后由dontium于2015-1-2313:21编辑在汇编中没有直接进行除法的指令,如何有效快速的进行除法运算,请各位老师、高手指教,小弟不胜感激!!!除法的运算本帖最后由dontium于2015-1-2313:21编辑C64x系列的一块芯片,它自己支持的汇编程序中没有除法,要通过60-120个周期用移位和减法才能实现除法,有什么快速的办法没有,这种除法在图像处理中不可行,数据量太大了,比如前后两帧图像的对应象素点a1和a2,作如下处理(a1×49
- mr.luoli 模拟与混合信号
- 准谐振软开关控制器IRIS4015的设计及应用
- lorant 移动便携
- ARM9:如何将linux2.6.38内核移植到TQ2440
- 天嵌科技感谢ANDY的支持,本文是作者通过一个星期不停修改错误,看代码,每天都忙到2点才休息的劳动成果!终于将linux2.6.38内核成功移植到TQ2440嵌入式开发板上。 下面是linux2.6.38内核移植到TQ2440的具体步骤: 1.修改根目录的Makefile中的ARCH=arm,CROSS-COMPILE=arm-linux- 2.在arch/arm/mach-s3c2440/mach-smdk2440.c中,将163行的s3c24
- 小小宇宙 Linux与安卓
- 开关电源上拉电阻和上拉电阻电路图解
- 开关电源中有很多电阻,那么这些电阻都起到什么作用呢?先了解上拉电阻和下拉电阻,那么为什么需要上拉电阻和下拉电阻呢?看下面的电路图R3就是上拉电阻,B点电压在三极管不导通时是12V,当A点电压超过0.6V,三极管就会导通,B点电压为0.3V.实际这个电路也是一个反相器,输入高电平,输出低电平,输入可以是一个电压如3.3V,输出电压可以是5-24V,实现电压转换控制。有上拉电阻这个上拉电阻就是把B点电压拉高到12V,如果没有这颗电阻,三极管不会导通,B点也不会有电压
- 木犯001号 电源技术
设计资源 培训 开发板 精华推荐
- 带有 EM3585 和 PCB 天线的 ZigBee 照明参考设计
- LTC1727EMS8-2.5 电源电压监视器的典型应用,使用与 DC/DC 反馈分压器相连的 VCCA
- NCP1362HVGEVB:NCP1362 演示板
- AN-4176,1 kV SenseFET 集成电源开关应用电路
- ADR525 高精度并联模式电压基准的典型应用
- LTC3630AIMSE 4V 至 24V 输入至 3.3V 输出、具有外部软启动、小尺寸的 250mA 稳压器的典型应用电路
- AI红外语言助手
- 使用 Diodes Incorporated 的 AZ7042ZTR-E1 的参考设计
- NCP1623PFC150WGEVB:漏极感应 CrM 升压 PFC 150 W 评估板
- 使用 ROHM Semiconductor 的 BA70BC0T 的参考设计