【问题标题】:Arduino not sending message to Android via bluetoothArduino 未通过蓝牙向 Android 发送消息
【发布时间】:2014-08-02 03:43:41
【问题描述】:

我正在尝试通过蓝牙从我的 arduino 向我编写的 android 应用程序发送一条消息。这是我的草图:

int ledPin = 13;
int buttonPin = 8;
byte leds = 0;

void setup() 
{ 
  Serial.begin(9600); //note this may need to be changed to match your module 
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
} 

void loop() 
{ 
  if (digitalRead(buttonPin) == LOW)
  {
    Serial.println("BUTTON PUSHED");
    digitalWrite(ledPin, HIGH);
  }
  if (digitalRead(buttonPin) == HIGH)
  {
    Serial.println("NO BUTTON");
    digitalWrite(ledPin, LOW);
  }

} 

当我加载我的 android 应用程序时,它会找到我的 arduino 并要求我配对它。我可以在手机上看到“无按钮”文字,但是当我按下按钮时,什么也没有发生。我什么都没有收到。我认为它必须与 arduino 草图有关。

【问题讨论】:

    标签: bluetooth arduino


    【解决方案1】:

    loop() 代码全速运行。在 9600 波特率下,如图所示的代码将每秒发送大约 100 次“NO BUTTON”。 Android 端的输入缓冲区充满了 NO BUTTON 消息。当你按下按钮时,已经太晚了。

    第一个测试:在重置 Arduino 时按住或锁定按钮。您应该会看到“按钮按下”

    修复选项是

    1. 速率限制(低技术)

      void loop {
        ... existing poll and send code ...
        delay(2000);
      }
      
    2. 仅在状态更改时发送(可能是您想要的)

      int laststate = 2;
      
      void loop() {
        int state = digitalRead(buttonPin);
        if( state != laststate ) {
          if( state == HIGH ) {
            // ... send message ...
          else if( state == LOW ) {
            //... send message ...
          }
          laststate = state;
        }
      }
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多