2

我正在尝试通过临时连接控制一些连接到 Arduino(面包板)的伺服系统。我已经建立了网络,可以远程登录到WiFly,甚至可以进行一些简单的控制(例如,打开和关闭 LED)。但是,当我尝试根据在 telnet 会话中键入的字符启动和停止伺服时,伺服将运行半秒,然后停止 - 之后 WiFly 完全停止响应。我的 LED 代码有效:

void loop(){
    delay(100);
    index = 0;

    while(serialWiFly.available() > 0){
        if(index < 100){
            inputIn = serialWiFly.read();
            input[index] = inputIn;
            index++;
            input[index] = '\0';
        }
        if(inputIn == 'a')
            digitalWrite(13, HIGH);
        if(inputIn == 'z')
            digitalWrite(13, LOW);
    } //end while
    serialWiFly.flush();
    delay(10);
} //end loop

这让我可以通过按“a”打开 LED,然后按“z”关闭 LED。凉爽的。但是当我添加一个moveForward()函数时:

void moveForward(){
    myservo.write(124);
}

并从我的循环中调用它:

if(inputIn == 'a') moveForward();

正如我所描述的,伺服将旋转然后停止。我在这里不知所措 - 我该如何解决这个问题?

4

1 回答 1

0

如果有人偶然发现这个问题,我仍然不知道是什么原因造成的,但我通过使用 Arduino MiniPro 而不是我的独立面包板单元来修复它。我相信这可能与将“重置”引脚拉高或拉低有关(在我的面包板版本中我忽略了这样做。)

于 2013-04-13T21:45:24.820 回答