与Android的间歇性连接

时间:2012-06-27 19:58:30

标签: android arduino connectivity adk

我在Mega ADK与Galaxy Nexus 4.0.4的连接上发现了一些非常有趣的东西。

如果我有这样的循环,它可以正常工作

void loop() {

    if(acc.isConnected()){   
        Serial.println("Accessory Connected");
        delay(1000);
    }
    else
        Serial.println("Accessory Not Connected");

}

但是,如果我对它进行一些小改动,它就无法连接到手机。

void loop() {

    if(acc.isConnected())
        Serial.println("Accessory Connected");
    else
        Serial.println("Accessory Not Connected");

    delay(1000);

}

我的设置如下:

void setup() {

    Serial.begin(115200);

    pinMode(led, OUTPUT);

    pinMode(HabilitaMotores, OUTPUT);
    pinMode(Motor0FW, OUTPUT);
    pinMode(Motor0RW, OUTPUT);
    pinMode(Motor1FW, OUTPUT);
    pinMode(Motor1RW, OUTPUT);

    acc.powerOn();
}
你以前见过这个吗?我犯了一个我看不见的可怕错误吗?

1 个答案:

答案 0 :(得分:1)

当ADK板试图连接到Android时,它会不断轮询。 Android只等待几秒钟,之后它不允许连接。

在代码的第一个版本中,delay()调用仅在连接后才会发生。因此,在电路板连接之前,电路板将继续进行轮询,并且不会错过Android时间窗口。

但是在第二个版本中,每次执行loop()函数时都会调用delay()。所以民意调查每秒只发生一次。