2

我在 Arduino 上使用 WiFly shield,一切正常:我通过 USB 将我的 skecth 上传到 Arduino,连接 9V 电池,断开 USB,wifi 模块传输一切正常(它将数据传输到我的网络服务器)。

当电池用完时,我用另一个电池更换,但是 wifi/arduino 不再与我的服务器通信..

我是 Arduino 的新手,我不明白是否每次断电时 Arduino 都会丢失程序,或者只是 wifi 无法自动连接......

这是软件问题还是硬件问题?如果软件我做错了什么?

这是我的草图示例 - 我只是向我的服务器发送一个字符串:

#include "WiFly.h"
#include "Credentials.h" // includes ny user:pass wifi network

Client client("[***myserverip***]", 80);

void setup() {      
  Serial.begin(9600);

  WiFly.begin();

  if (!WiFly.join(ssid, passphrase)) {
    Serial.println("Association failed.");
    while (1) {
      // Hang on failure.
    }
  }  

  connectServer();
}

void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  } 

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    delay(60000); // check every minute
    connectServer();
  }
}

void connectServer() {  
  Serial.println("connecting...");

  if (client.connect()) {
    Serial.println("connected");
    String query = "GET /arduino/test?q=testString  HTTP/1.0";

    client.println(query);
    client.println();
  } else {
    Serial.println("connection failed");
  }
}

所以一切正常,但是当我拔下电源并将其重新插入时,arduino 不会重新启动该过程。

4

2 回答 2

4

我自己找到了解决方案——问题出在硬件上。

问题出在我的 Arduino UNO R2 中,有一个已知错误。

我买了一个UNO R3,我没有这个问题了。

于 2012-04-14T23:45:15.193 回答
3

这是因为 Arduino 板在使用外部电源时没有板载上电复位功能,因此您始终需要在供电后对其进行复位。您可以在复位引脚处放置一个电容器来消除此问题。但是,如果您使用 USB 作为电源,那么 USB 控制器将重置 Arduino,因此在这种情况下您将永远不会遇到这个问题。

于 2012-07-30T06:10:16.690 回答