Leonardo Ethernet Shield ???

Hallo zusammen,
ich versuche gerade mein Ethernetshield auf einem Leonardo zum laufen zu bringen.
Leider bisher erfolglos.

Auf dem Uno läuft das Shield problemlos. Auf dem Leonardo läuft da nix, obwohl ich den selben Sketch zum Testen verwende.

Das Shield ist von ELV: http://www.elv.de/network-shield-fuer-arduino-nsa1-bausatz.html.

Funktioniert ein Ethernetshield auf dem Leonardo generell nicht?
Funktioniert das original Shield auf dem Leonardo? (Dann müsste ich mir das wohl noch zulegen.)

Folgenden einfachen Sketch habe ich benutzt:

/******************************************
ethernet_webserver.ino
*******************************************/

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

// Ethernet Konfiguration
byte mac[] = { 0x00, 0x1A, 0x22, 0x03, 0xB7, 0x01 };  
byte ip[] = { 192, 168, 178, 28 };

// Server-Objekt mit Standardport 80
EthernetServer server(80);

void setup() 
{
  // Ethernet Initialisierung
  Ethernet.begin(mac, ip);
  // Server bereit, wartet auf anfragen
  server.begin();
}
 
void loop()
{
  EthernetClient client = server.available();
  if (client)
  { 
    server.println("HTTP/1.1 200 OK");
    server.println("Content-Type: text/html");
    server.println();
    server.print("<HTML>");
    server.print("<HEAD><TITLE>Arduino Board</TITLE></HEAD>");
    server.print("<BODY>");
    server.print("<h2>Arduino l&auml;uft seit ");
    server.print(millis());
    server.print(" ms.</h2>");
    server.print("</BODY></HTML>");
    delay(10); 
    client.stop();
  }
}

Schönen Gruß
Stefan

Das Ethernet-Shield wird über SPI angesprochen. Der UNO hat SPI auf Pin 11-13 und auf dem ISP-Connector. Der Leonardo nur auf dem ISP-Connector (vgl. SPI - Arduino Reference). Die meisten Ethernet-Shields nutzen deshalb den ISP-Connector und sind so kompatibel zum Leonardo und Mega. Nach dem Foto fehlt deinem Shield der Anschluss. Es nutzt wohl Pin 11-13. Du müsstest das Shield mit Zwischenkabeln umverkabeln oder ein anderes Shield nehmen.

Die Prodruktbeschreibung sagt ganz klar:

Hinweis:
Geeignet für Arduino Uno, bei anderen Arduino-Boards ist die Pin-Belegung zu beachten!

Und genau da steckt auch das Problem.

Ok, vielen Dank für die Infos.

Gruß
Stefan

Hallo zusammen,
ich hab nun endlich mein neues Ethernet-Shield bekommen und auch gleich zum Testen angeschlossen (Arduino Shield Ethernet 2).
Leider geht mit diesem Shield nun gar nichts mehr. Weder auf dem UNO noch auf dem Leonardo.

Im Sketch habe ich lediglich die IP Adresse und die MAC-Adresse angepasst.

Konkret heißt das, ich habe das Shield auf dem Leonardo und dem Uno getestet.
Über den Browser habe ich versucht die IP-Adresse zu erreichen. Ohne erfolg.
Danach habe ich den Sketch mit dem UNO und dem alten Shield getestet (MAC + IP geändert). Funktioniert.
Wohl gemerkt an der selben Ethernet Leitung. Es fällt auf, dass die gelbe LED am Stecker bei dem alten Shield blinkt, bei dem neuen Shield dauerhaft an bleibt. Die MAC-Adresse habe ich gefühlte 27 mal kontrolliert (Aufkleber mit Sketch verglichen).
An der Fritzbox habe ich die neue IP-Adresse fest zugewiesen.

Habe ich noch etwas vergessen? Welche Möglichkeiten habe ich noch zum Testen?

Schönen Gruß
Stefan

/******************************************
ethernet_webserver_ardushield.ino
*******************************************/

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

// Ethernet Konfiguration
byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0xC3, 0xFC };  // MAC-Adresse des Arduino-Shield
byte ip[] = { 192, 168, 178, 71 }; // IP- Adresse des Arduino-Shield


// Server-Objekt mit Standardport 80
EthernetServer server(80);

void setup() 
{
  // Ethernet Initialisierung
  Ethernet.begin(mac, ip);
  // Server bereit, wartet auf anfragen
  server.begin();
}
 
void loop()
{
  EthernetClient client = server.available();
  if (client)
  { 
    server.println("HTTP/1.1 200 OK");
    server.println("Content-Type: text/html");
    server.println();
    server.print("<HTML>");
    server.print("<HEAD><TITLE>Arduino Board</TITLE></HEAD>");
    server.print("<BODY>");
    server.print("<h2>Arduino l&auml;uft seit ");
    server.print(millis());
    server.print(" ms.</h2>");
    server.print("</BODY></HTML>");
    delay(10); 
    client.stop();
  }
}

StefanS:
Habe ich noch etwas vergessen? Welche Möglichkeiten habe ich noch zum Testen?

Besorge Dir die richtige Kombination aus Hard- und Software!

Also hole Dir entweder ein "Ethernet-Shield" mit W100 Chip anstelle eines "Ethernet-Shield2" mit W5500 Chip!

Oder installiere und verwende die"Ethernet2" Library, die mt Deinem Ethernet-Shield2 zusammen funktioniert!

Die zur Arduino-IDE standardmäßig mitgelieferte Ethernet Library ist nur zum W5100 Ethernet-Chip kompatibel
Die Ethernet2 Library für Shields mit dem W5500 Chip mußt Du Dir gesondert besorgen und installieren.

Und bevor Du das nächste mal einen Thread aufmachst, schau auch mal auf Dein Shield, ob da eine Webadresse auf der Platinenbeschriftung erkennbar ist, z.B. Arduino.org oder Arduino.cc

Und wenn auf Deinem Shield Arduino.org beschriftet ist, kannst Du ruhig ins Forum auf Arduino.org gehen und da im Forum Deine Frage stellen! Vielleicht gibt es dort ja dort hilfsbereite Bastler, die sich mit der Hardware auskennen, auf der "Arduino.org" beschriftet ist. Ich kenne vom Ethert-Shield2 nichts, außer, dass es einen inkompatiblen Ethernet-Chipf verwendet für den man eine andere Library benötigt als die Ethernet-Library der Arduino-IDE.

Oha, da hab ich mir gedacht ich besorg mir das "original" Ethernet Shield und kann dann ja nix falsch machen, und dann das.

Vielen Dank für die Antwort.

Gruß
Stefan

StefanS:
Oha, da hab ich mir gedacht ich besorg mir das "original" Ethernet Shield und kann dann ja nix falsch machen, und dann das.

Mit dem originalen Shield hättest du alles richtig gemacht. Das hat natürlich die Anschlüsse für volle Kompatibilität. https://www.arduino.cc/en/Main/ArduinoEthernetShield

Das ELV-Shield ist nur ein Nachbau eines total veralteten Shields.

Mir war überhaupt nicht bewusst, dass es innerhalb der Arduinos einen Unterschied gibt.

Die Beschriftung und Farbgebung ist die Gleiche, nur der winzige Aufdruck ".org" und ".cc" sind unterschiedlich.

Heißt das nun, dass z.B. das Thema "Leonardo" hier überhaupt nicht behandelt wird, weil bei mir da ".org" drauf steht, das Thema "UNO" aber schon, da steht halt ".cc" drauf?

Wobei ich dann das hier nicht verstehe:

Echt kompliziert für einen Anfänger!

Gruß
Stefan

Theseus:
Mit dem originalen Shield hättest du alles richtig gemacht. Das hat natürlich die Anschlüsse für volle Kompatibilität. https://www.arduino.cc/en/Main/ArduinoEthernetShield

Das ELV-Shield ist nur ein Nachbau eines total veralteten Shields.

Mit dem "original" meinte ich auch das oben beschriebene "Arduino Ethernet 2", das nun halt mal von Arduino ist, nur halt von ".org"

Aber Danke für die Infos, ich muss halt noch viel lernen.

Die Beschriftung und Farbgebung ist die Gleiche, nur der winzige Aufdruck ".org" und ".cc" sind unterschiedlich.

Nein, das wesentliche ist der unterschiedliche Chip!

Oder installiere und verwende die"Ethernet2" Library, die mt Deinem Ethernet-Shield2 zusammen funktioniert!

Das solltest du mal versuchen, dann klapts auch mit deinem UNO und dem Leonardo

Alternativ:
Behalte die Lib und verwende das "alte" Schild.
Nach anpassen der Verbindungen tuts das auch mit dem Leonardo + UNO

Den Leonardo gibt bzw. gab es auch von CC.

Am besten werden die Shields mit WS5100 unterstützt, die es auch als günstige und sehr gut funktionierende Nachbauten aus China gibt. Die Trennung Arduino.cc und org ist sehr unglücklich.

combie:
Nein, das wesentliche ist der unterschiedliche Chip!

Ich meinte ja auch, dass mir nicht bewusst war, dass man zu Shields die von ".org" sind hier nichts posten soll, wie das jurs in seinem Post schreibt.

Das es unterschiedliche Chips sind habe ich mittlerweile verstanden.

Ich werd's jetzt erst einmal mit der anderen Bibliothek versuchen, dann sehe ich weiter.

Wie ich den Leonardo dazu bringe mit dem ELV-Shield zu kommunizieren, kann ich mir nicht mal vorstellen, da das Shield den separate SPI-Stecker nicht hat.

Welche Ethernet Shields benutzt ihr?

Wie ich den Leonardo dazu bringe mit dem ELV-Shield zu kommunizieren, kann ich mir nicht mal vorstellen, da das Shield den separate SPI-Stecker nicht hat.

:o Es gab mal einen schlauen Elektriker, der hat das Kabel erfunden. :o
Tipp: Das Schild tut es auch, wenn es NICHT auf dem Arduino steckt. Kabel reichen

Ich meinte ja auch, dass mir nicht bewusst war, dass man zu Shields die von ".org" sind hier nichts posten soll, wie das jurs in seinem Post schreibt.

Das hast du falsch verstanden!
Wir können dir bei dem arduino.org Zeugs kaum helfen, denn wir nutzen es nicht.

Welche Ethernet Shields benutzt ihr?

Ich?
Keins!
Sobald ein Netz im Spiel ist, kommen bei mir ESP8266 anstelle von UNO oder Leonardo zum Einsatz.
Wenn doch ein UNO mitspielen darf, dann nur als intelligenter I2C Portexpander für den ESP

combie:
:o Es gab mal einen schlauen Elektriker, der hat das Kabel erfunden. :o
Tipp: Das Schild tut es auch, wenn es NICHT auf dem Arduino steckt. Kabel reichen

Wie schon mehrfach erwähnt steckt das Ganze bei mir noch in den Kinderschuhen, und ich will den Vorteil, den so ein Shield mit sich bringt nicht aufgeben, denn dafür ist es ja gebaut. Und auf dem Uno tut es ja seinen Dienst, auch wenn ich das vorerst nicht nutzen werde.

Aber zurück zum eigentlichen Thema:
Nachdem ich die Ethernet2 Library installiert hatte musste ich nur noch die 2 für <Ethernet2.h> eintippen und das Shield macht jetzt was es soll. :slight_smile:

Die Funktionen scheinen identisch zu sein, zumindest die wenigen die ich bisher nutze.

Vielen Dank für die ganzen Infos !!!