Ethernet Shield verbindet sich nicht mit Netzwerk

Hallo, ich habe mir das Aukru W5100 Ethernet Schild gekauft und Habe es direkt an den Router an Lan 1 angeschlossen. Auf dem Shield leuchten die LED´s: PWR, LINK, 100M, FULLD, an der LAN-Buchse die Grüne und Orangene, aber COLL, TX leuchten nicht. Die LED RX Blinkt manchmal und wenn ich das LAN Kabel abziehe leuchtet nur noch die Rote LED. Wenn ich jetzt aber die Benutzeroberfläche der Fritzbox Öffne Erscheint der Arduino nicht. Wo liegt der Fehler

Ich vermute das du deine feste IP Adresse im Sketch vorgegeben hast und deine Fritzbox diese nicht aktzeptiert. Mache es mal über DCHP und zeig mal deinen Sketch her.

gruß

Wie meinst du das mit dchp?

/*
  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 9 Apr 2012
 by Tom Igoe

 */

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

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 178, 47);

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

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    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) {
          // 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: 5");  // refresh the page automatically every 5 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          // output the value of each analog input pin
          for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            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();
    Serial.println("client disconnected");
  }
}

Na dann vergibt der Router die IP Adresse.

Schreib mal anstatt

Ethernet.begin(mac, ip);

einfach so und teste nochmal

Ethernet.begin(mac);

EDIT:
Die IP Adresse die im Sketch steht ist keine "Standart Adresse" aus einem Adressbereich der Fritzbox. (192.168.178.47)
Besser wäre wohl etwas zwischen 192.168.2.2 und 192.168.2.255

Gut danke, jetzt funktioniert es :wink:

Kein Problem. Kannst jetzt ja nachschauen welchen Adressbereich die Fritzbox vorgibt und dementsprechend eine IP auswählen. Demnach was du vorhast kannst du es aber auch so lassen.

Hallo,

ich habe mir ein Ethernet Shield W5100 gekauft und versucht es mit dem Router zu verbinden.
Leider wird mein arduino nicht beim router angezeigt. :-/
Am Shield leuchtet die rote PWR LED und die FULLD LED blinkt immer mal grün auf.

Hier mein Code vom Buch mit dem ich arbeite

/*
 Name:		_16.ino
 Created:	17.04.2018 20:53:32
 Author:	Lister
*/

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

#define TYP_ANTWORT 0
#define TYP_ABFRAGE 1
#define TYP_BEFEHL 2

#define STATUS_ANTWORT_UNGUELTIG 0
#define STATUS_ANTWORT_GUELTIG 1

#define ABFRAGE_TEMPERATUR 100

#define PORT 5890

// die pyhsikalische Adresse der Ethernet - Schnittstelle
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// die IP-Adresse des Arduino
IPAddress ip(192, 168, 2, 20);
/* das Gateway des Arduino. Es wird für die Kommunikation
mit anderen Netzen, beispielsweise dem Internet, benötigt. */
IPAddress gateway(192, 168, 2, 1);
// Das Subnetz. Für gewöhnlich muss hier nichts geändert werden.
IPAddress subnetz(255, 255, 255, 0);
// Der Server, der später auf Anfragen lauschen soll
EthernetServer server(PORT);

// the setup function runs once when you press reset or power the board
void setup() 
{
	pinMode(6, OUTPUT);
	pinMode(7, OUTPUT);
	pinMode(8, INPUT_PULLUP);
	Serial.begin(9600);
	Ethernet.begin(mac, ip, gateway, subnetz);
	server.begin();
	Serial.print("Server gestartet. IP: ");
	// IP des Arduino-Servers ausgeben
	Serial.println(Ethernet.localIP());
}

// the loop function runs over and over again until power down or reset
void loop() 
{

  
}

Damit geht es leider nicht. Jetzt habe ich den Code, wie weiter oben von "Scherheinz" erwähnt auf DCHP umgestellt, da mein router normal die IP verteilt, leider konnte ich so auch keine Verbindung herstellen.

Hier noch einmal der Code mit DCHP

/*
 Name:		_16.ino
 Created:	17.04.2018 20:53:32
 Author:	Lister
*/

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

#define TYP_ANTWORT 0
#define TYP_ABFRAGE 1
#define TYP_BEFEHL 2

#define STATUS_ANTWORT_UNGUELTIG 0
#define STATUS_ANTWORT_GUELTIG 1

#define ABFRAGE_TEMPERATUR 100

#define PORT 5890

// die pyhsikalische Adresse der Ethernet - Schnittstelle
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// die IP-Adresse des Arduino
IPAddress ip(192, 168, 2, 20);
/* das Gateway des Arduino. Es wird für die Kommunikation
mit anderen Netzen, beispielsweise dem Internet, benötigt. */
IPAddress gateway(192, 168, 2, 1);
// Das Subnetz. Für gewöhnlich muss hier nichts geändert werden.
IPAddress subnetz(255, 255, 255, 0);
// Der Server, der später auf Anfragen lauschen soll
EthernetServer server(PORT);

// the setup function runs once when you press reset or power the board
void setup() 
{
	pinMode(6, OUTPUT);
	pinMode(7, OUTPUT);
	pinMode(8, INPUT_PULLUP);
	Serial.begin(9600);
	Ethernet.begin(mac);
	server.begin();
	Serial.print("Server gestartet. IP: ");
	// IP des Arduino-Servers ausgeben
	Serial.println(Ethernet.localIP());
}

// the loop function runs over and over again until power down or reset
void loop() 
{

  
}

Hier noch ein Link zu google drive mit einem Bild und einem kurzem Video
https://drive.google.com/open?id=1V6qOzPv-oWSlrzvVqaHvmfO4_R-X2AwW

Was mache ich falsch?

Vielen Dank im Voraus :slight_smile:

Was hat denn Dein PC für eine IP? (Start - in der Zeile "cmd" eingeben und im Kommandofenster "ipconfig")
Gib uns mal das Ergebnis (bitte in Codetags - </> - Button oben links im Forumseditor)

Gruß Tommy

Keine gute Idee, einen 3 Jahre alten Thread zu kapern.

Hast du die IP an ein Netzwerk angepasst.
Und du solltest immer ein aktuelles Beispiel aus der verwendeten Library verwenden.
Kannst du die ETH-Karte anpingen ?

Danke für die schnellen antworten, das ging wirklich schnell :slight_smile:
Ja ich war mir nicht sicher ob ich ein neuen machen sollte, der Thread hier beschreibt mein Problem recht gut.

Ethernet-Adapter LAN-Verbindung:

   Verbindungsspezifisches DNS-Suffix: Belkin
   Verbindungslokale IPv6-Adresse  . : fe80::3d2d:40da:2d50:8986%11
   IPv4-Adresse  . . . . . . . . . . : 192.168.2.7
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0
   Standardgateway . . . . . . . . . : 192.168.2.1

Tunneladapter isatap.Belkin:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix: Belkin

Tunneladapter Teredo Tunneling Pseudo-Interface:

   Medienstatus. . . . . . . . . . . : Medium getrennt
   Verbindungsspezifisches DNS-Suffix:

pingen geht leider nicht, auch wenn ich die IP vorgebe und wenn ich die IP beziehen lass, wird er im router nicht angezeigt auch mit IP Vorgabe.

Ich habe jetzt zwischen dem Shield und dem router ein herkömmliches switch geschaltet und nun bezieht der arduino eine IP vom router.
Wie kann das sein, das switch leitet ja nur weiter?

Edit
Wenn ich die IP vorgebe, funktioniert es jetzt auch aber nur wenn ich das switch zwischen dem router und dem Shield hab, kann ich nicht ganz nachvollziehen. :-/

lister3003:
Wenn ich die IP vorgebe, funktioniert es jetzt auch aber nur wenn ich das switch zwischen dem router und dem Shield hab, kann ich nicht ganz nachvollziehen. :-/

Vor längerer Zeit wäre der Fehler in der Netzwerkkarte zu suchen, aber heut sollten alle funktionieren.
Da brauchte man ein "gedrehtes" Netzwerkkabel.

Oder hast du noch einen Uralt-PC ?

@HotSystems
Also mein PC ist recht aktuell
I7-6700K mit Graka und Netzwerk über das Mainboard

Der PC geht in den W-LAN Router von Belkin und bezieht auch die IP von dort.
Der Arduino geht jetzt ins switch und vom switch geht das Kabal dann in den router.
Die 2 Kabel, die den Arduino mit dem switch und dem router verbindet, waren beim router mit bei, diese sind je 0,5m lang und mit der Aufschrift "cat5 UTP Patch"
Nutze den selben Steckplatz am router mit switch oder ohne für den arduino, ein andere brachte ohne switch kein Erfolg.

Kann es am Kabel liegen, laut Buch soll es ein Patch Kabel sein, das steh ja drauf?

lister3003:
Kann es am Kabel liegen, laut Buch soll es ein Patch Kabel sein, das steh ja drauf?

Nein, an den Kabeln liegt es nicht.

Für mich ist es aktuell ein Rätsel.

hm, komisch.

Was ich noch probiert hab, den Arduino direkt ans Internet Kabel gesteckt, das normal an den Router geht, hier leuchten auch fast alle LEDs auf, das Shield scheint zu funktionieren, kann ich leider nicht testen, da ich die IP nicht kenne und mein PC kein Internet mehr hat. ^^
Dann hab ich den arduino direkt mit dem PC verbunden, es leuchten auch fast alle LEDs auf.

Mein Belkin router mag den arduino nicht oder der arduino den router nicht, ist zwar jetzt keine schöne Lösung aber ich werde erst mal damit leben und mich weiter durchs Buch arbeiten :slight_smile:

Vielen Dank für die schnelle Hilfe.

lister3003:
Was ich noch probiert hab, den Arduino direkt ans Internet Kabel gesteckt, das normal an den Router geht,
....

Das wird nicht funktionieren.
Wie soll das Board die Internetverbindung aufbauen ?

Das mit dem Switch ist schon ok....