我正试图通过蓝牙从我的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草图做点什么。
答案 0 :(得分:0)
loop()代码全速运行。在9600波特,所示的代码将发送" NO BUTTON"每秒约100次。 Android端的输入缓冲区充斥着NO BUTTON消息。当你按下按钮时,为时已晚。
首次测试:在重置Arduino时按住或锁定按钮。你应该看到" BUTTON PUSHED"
修复选项是
速率限制(低科技)
void loop {
... existing poll and send code ...
delay(2000);
}
仅在状态发生变化时发送(可能是您想要的)
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;
}
}