Ethernet Shield Problems

Hi Guys am Having some problems with my Ethernet Shield

I can run the web server example and hit the URL of my shield and get the results from the analog pins.

but when I hit the URL again I get page can be displayed, if I leave it 10mins then hit the URL again I see the output again.

Its real beginning to bug me.

More Info:
I have a BT home hub that my Ethernet Shield is plugged into.
Firewall is turned off.

I am using an Arduino Duemilanove
I also have the Ethernet Shield with the Mico SD card port.

Here is the code am Running

/*
  Web  Server
 
 A simple web server that shows the value of the analog input pins.
 using an Arduino Wiznet Ethernet shield. 
 
 Circuit:
 * Ethernet shield attached to pins 10, 11, 12, 13
 * Analog inputs attached to pins A0 through A5 (optional)
 
 created 18 Dec 2009
 by David A. Mellis
 modified 4 Sep 2010
 by Tom Igoe
 
 */

#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>
#include <Udp.h>

// 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, 0x15, 0x18 };
byte ip[] = { 192,168,1, 64 };

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

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

void loop()
{
  // listen for incoming clients
  Client client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == '\n' && currentLineIsBlank) {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(analogRead(analogChannel));
            client.println("
");
          }
          client.stop();
          break;
        }
        if (c == '\n') {
          // you're starting a new line
          currentLineIsBlank = true;
        } 
        else if (c != '\r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
  }
}

Its ok guys i have worked this out.

i changed the IP address in my code to a different one from my router and it worked for some reason

i changed the IP address in my code to a different one from my router and it worked for some reason

Think of it as repeatidly calling a gas station phone number and expecting Domino's pizza to answer.

Ye its mad the ip address on my router was 192.168.1.64 and when I set this up in code the application didn't work so I changed the ip address in the code to 192.168.1.70 and everything works.

Anyone have any ideas why?

Anyone have any ideas why?

Sure. To use zoomkat's analogy: think of it as having the phones for Domino's and the gas station plugged into the same phone line. Whether you get a pizza clerk or a mechanic when you dial the number depends on the luck of who picks up first. Sometimes you get the one you were hoping for, sometimes you don't.

Changing the IP address of the Arduino is just like changing the line the Domino's phone is plugged into: you may have a little confusion while everyone gets their phone directories (or, on your LAN, ARP tables) straightened out, but eventually everybody starts dialing the right number to get gas for themselves or for their cars :wink: