Ip änder für Ethernet Shield 2

Hallo,

ich versuche eine Kommunikation mit meinem Arduino über Ethernet aufzubauen.
Ich möchte so die Daten von einem LCD auslesen und auf einer Webpage darstellen.
Nun hat das Program mit Ethernet Shiel 1 funktioniert. Mit der neueren Version
klappt es nicht mehr.
Auch eine neue IDe-Version (aktuell 1.6.9) scheint da keine Lösung zu bringen.
Die IP Adresse des Arduino lässt sich nicht ändern.
Der Befehl Ethernet.begin(mac, ip); scheint nicht zu funktionieren.
Hat jemand eine Idee was das Problem sein kann?

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

//-----------------------------------------------------------
// For LCD readout only
//-----------------------------------------------------------


int i = 0;
int sendMessage = 1;
int AvailableBytes = 0;
char statTemperatur[100]; 
int Versorgung1 = A14;
int Versorgung2 = A15;
int GND1 = A13;
int GND2 = A12;


//byte subnet[] = {255, 255, 255, 0};
byte mac[] = {0x90, 0xA2, 0xDA, 0x10, 0x05, 0x89};
byte ip[] = {192, 168,1,102};

EthernetServer server(80);

void setup() 
{
  pinMode(Versorgung1,OUTPUT);
  digitalWrite(Versorgung1,HIGH);
  pinMode(Versorgung2,OUTPUT);
  digitalWrite(Versorgung2,HIGH);  
  pinMode(GND1,OUTPUT);
  digitalWrite(GND1,LOW);
  pinMode(GND2,OUTPUT);
  digitalWrite(GND2,LOW);
  Serial.begin(19200);                 // Open serial communications and wait for port to open:
  while (!Serial) 
  {
    ;                                   // wait for serial port to connect. Needed for Leonardo only
  }
  Serial.println("Serial active!");
  Serial3.begin(19200);                 // set the data rate for the HardwareSerial port
   while (!Serial3) 
   {
    ;                                   // wait for serial port to connect. Needed for Leonardo only
   }
  Serial.println("Serial3 active!");    // start the Ethernet connection and the server
//  Ethernet.begin(mac, ip, gateway, subnet);
  Ethernet.begin(mac, ip);
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}

//-----------------------------------------------------------
// Serial communication request lcd data
//-----------------------------------------------------------

void requestSerData()
{
  Serial3.flush();
  delay(1);
  Serial3.println("N0TA$");       // send first command
  Serial.println("N0TA$");
  delay(50);                         // is necessary
  AvailableBytes = Serial3.available();
  Serial.print("Bytes da: ");
  Serial.println(AvailableBytes);
  while (AvailableBytes && i < AvailableBytes)
  {
    statTemperatur[i] = Serial3.read();
    Serial.print(statTemperatur[i]);
    i++;
  }
  i = 0;
  Serial.println("");
  Serial.println("Next sequence");
  Serial3.flush();
  Serial.flush();
}

//------------------------------------------------------------
// End of serial communication request chamber data
//------------------------------------------------------------ 


void loop() 
{
static char c;
static int iteration = 0;

//requestSerData();
//delay(200);

//------------------------------------------------------------
// Start HTTP communication
//-----------------------------------------------------------

  EthernetClient client = server.available();  // listen for incoming clients
  if (client) 
  {
	boolean currentLineIsBlank = true;   // an http request ends with a blank line
    while (client.connected()) 
	{
      if (client.available()) 
	  {
        char c = client.read();
        Serial.write(c);
        // 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) 
		{
       requestSerData();
          // send a standard http response header
			client.println("HTTP/1.1 200 OK");
			client.println("Content-Type: text/html");
			client.println("Connection: close");  // the connection will be closed after completion of the response
			client.println("Refresh: 15");         // refresh the page automatically every 5 sec
			client.println();
			client.println("<!DOCTYPE HTML>");
			client.println("<html>");
			// output the value of each analog input pin
			client.print("Temperatur im Ofen: ");
			client.println(statTemperatur);
			client.println("
");       
			client.println("</html>");
			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();
    
//------------------------------------------------------------
// Stop HTTP communication
//-----------------------------------------------------------    
    
//    Serial.println("client disconnected");
  }
}

Das Shield mit dem W5500 ist von Arduino.org. Arduino.cc (hersteller der IDE 1.6.x) hat kein vergleichbares mit diesem Ethernetcontroller. Du mußt die Bibliothek/IDE 1.7.x von arduino.org verwenden.

Grüße Uwe

Das scheint ein anderes Problem zu sein. Ich habe die aktuelle Version aufgespielt. Die IP bleibt nach wie vor 0.67.67.67 Aber mal so eine Frage nebenbei, wie lange gibt es die andere Seite? Ich bin ehrlich gesagt etwas konfus, dass es unter demselben Namen zwei Sachen gibt, die sich inhaltlich unterscheiden können. Habe nicht für möglich gehalten.

Ach gefunden,

in der alternativen Version muss dazu auch nicht die Standardbibliothek Ethernet.h sondern Ethernet2.h verwendet werden. Dies löst wohl das Problem.

Gruß Andy

sagte ich doch. Grüße Uwe