1

私の Arduino Web サーバー スケッチは散発的に失敗します:

 EthernetClient client = server.available();
 if (client)

今朝、最初の実行で問題なく接続しました。これで、クライアントに再度接続できなくなりました。数日前、数回は機能しましたが、数回失敗しました。イーサネットケーブルを介してシールドをホームルーターに接続しています。Arduinoに割り当てられたIPアドレスを確認しました。ポート 80 と 8080 を試しました。ISP がここで何かをブロックしている可能性はありますか? 私はネットワークについてほとんど何も知らないので、明白なことを提案することを恐れないでください。

関連する場合は、ループするコードのより大きな部分を次に示します。

Serial.println("Listening");

コード:

#include <SPI.h>
#include <Ethernet.h>n

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0xF7, 0x99 };
IPAddress ip(192,168,2,5);

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

String roundOpenTag = "";
String roundCloseTag = "";

void setup()
{
    // Start the Ethernet connection and the server:
    Ethernet.begin(mac, ip);
    server.begin();

    int ledPin = 8;
    // Initialize the digital pin as an output.
    pinMode(ledPin, OUTPUT);
    Serial.begin(9600);
    Serial.println("Setting up");
}

void loop()
{
    // Listen for incoming clients
    EthernetClient client = server.available();
    Serial.println("Listening");
    if (client)
    {
        Serial.println("Server available");
        // An HTTP request ends with a blank line
        boolean currentLineIsBlank = true;
        while (client.connected()) {
            Serial.println("Client connected");
            if (client.available())
            {
                char c = client.read();

スケッチの残りの部分を含める目的がわかりません。本当にありがとうございました。

4

1 に答える 1

1

setup() 関数に空の Seiral.begin() があります。削除してみてください。

編集

Serial.begin() を呼び出すときは、通信するボーレート (速度) を指定する必要があります。関数の詳細については、Arduino ライブラリ ページを参照してください。

コードに 2 つの問題がありました

  • パラメータなしで、空の Serial.begin() 関数呼び出しがありました
  • Serial.begin() 関数が重複していました。setup() 関数の冒頭ですでに指定しています。
于 2012-04-09T06:12:08.577 に答える