使用MSP430 Launchpad开发板连接HC-05蓝牙模块控制LED灯
2021-12-27 来源:eefocus
尽管在过去十年中引入了许多无线技术,但是蓝牙仍然是短距离无线通信中最受欢迎的技术。在嵌入式系统中,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。