Arduino不通过蓝牙向Android发送消息

时间:2014-08-02 03:43:41

标签: bluetooth arduino

我正试图通过蓝牙从我的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草图做点什么。

1 个答案:

答案 0 :(得分:0)

loop()代码全速运行。在9600波特,所示的代码将发送" NO BUTTON"每秒约100次。 Android端的输入缓冲区充斥着NO BUTTON消息。当你按下按钮时,为时已晚。

首次测试:在重置Arduino时按住或锁定按钮。你应该看到" BUTTON PUSHED"

修复选项是

  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;
      }
    }