打印整数值,Arduino HC-05 蓝牙模块

Posted

技术标签:

【中文标题】打印整数值,Arduino HC-05 蓝牙模块【英文标题】:Prints integer value, Arduino HC-05 Bluetooth module 【发布时间】:2018-03-10 22:15:50 【问题描述】:

我有一个问题已经解决了一段时间。我有一个 Arduino Uno 板和一个带有 TTL 输出的 HC-05 蓝牙收发器

连接如下:

RX (HC_05)  --> TX (Arduino UNO)

TX (HC_05)  --> RX (Arduino UNO)

GND (HC-05) --> GND (Arduino UNO)

+5V (HC-05) --> +5V (Arduino UNO)

我有以下 Arduino 代码:

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX | TX

void setup()

  Serial.begin(9600);
  BTSerial.begin(38400);  // HC-05 default speed in AT command more
  pinMode(9, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
  pinMode(10, INPUT);
  pinMode(11, OUTPUT);
  
  digitalWrite(9, HIGH);
  Serial.println("Enter AT commands:");
  BTSerial.println("Welcome to ARBA-Beat");



void loop()


  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available()) 
    Serial.println(BTSerial.read());
    BTSerial.write(BTSerial.read());
    BTSerial.flush();
        

我通过蓝牙终端安卓应用连接到蓝牙模块。一切正常(甚至蓝牙模块上的灯)。但是当我将一个字符从手机发送到 Arduino 时,我得到以下输出:

文本发送到蓝牙模块 - a

请帮忙

谢谢

【问题讨论】:

您在不同的函数中调用了两次BTSerial.read(),这可能意味着两个值正在从队列中取出。在回显到终端/使用该值做某事之前尝试将其存储在一个变量中。 @MorrisonChang 我尝试了你所说的一切,现在我得到了盒子形状的值 我建议获取该值并将其转换为十六进制/二进制并将其发送到您正在使用的任何调试/日志会话,以查看您是否真的得到了您发送的值或有其他事情发生(额外字符/大小端问题/crlf 问题)。如果您正在学习教程 - 您可能想要链接到它并指出哪个步骤失败了。 【参考方案1】:

我遇到了完全相同的问题。你试过在 9600 运行 HC-05 吗?试试下面的代码(用你的别针)。我使用该代码在引脚 2 上切换继电器,但如果需要,您可以使用 LED。我使用了相同的蓝牙应用程序,它运行良好:

#include <SoftwareSerial.h>
int relay = 2; // Set pin for relay control

SoftwareSerial bleserial(8,9);

// setup the relay output and the bluetooth serial, and the serial monitor (if you want to print the outputs)
void setup()                 
  // set relay pin as output.
  pinMode(relay, OUTPUT); 
  // start bluetooth and serial monitor  
  bleserial.begin(9600);
  Serial.begin(9600);



void loop() 

  if(bleserial.available())

    char char1 = bleserial.read();
    Serial.println(char1);
    // Set protocol that you want to turn on the light bulb, I chose 1 and 0 as on and off, respectively

    if(char1=='1')
      Serial.println("ON");
      digitalWrite(relay,LOW);
     else if (char1=='0')
      digitalWrite(relay,HIGH);
    
  


如果您想查看接线等,请查看我博客上的条目:

https://engineersportal.com/blog/2017/11/15/bluetooth-home-automation-light-bulb-switch-using-an-hc-05-a-relay-and-arduino

【讨论】:

以上是关于打印整数值,Arduino HC-05 蓝牙模块的主要内容,如果未能解决你的问题,请参考以下文章

如何将浮点值从一个蓝牙模块发送到其他模块(HC 05)

Arduino---HC-05 蓝牙模块

Arduino使用HC05蓝牙模块与手机连接

Arduino蓝牙模块HC-06错误

arduino完成两个HC-05蓝牙模块间的配对,实现简单的无线串口通讯

Arduino uno板上连接一个HC-05,设置后能与手机配对成功,但是无法连接?