Quick And Dirty Arduino Ethernet

Mit dem ENC28J60 Breakout steht ein preisgünstiges Ethernet Modul zu Verfügung – gibt es eine simple Lösung dieses Modul mit einem Arduino zu verbinden? Ja – hier unser Low Budget – Quik and Dirty Arduino  Ethernet:

 

ENC28J60 Arduino Ethernet

Die Eingänge des ENC28J60 sind laut Datenblatt 5V tolerant – die Eingänge des Arduino/ATMEL328 sind auch relativ tolerant bezüglich der Pegel (ca. 2,6V H, ca 2,1V L bei 5V Vcc)  – es spricht also nichts dagegen beide auf direktem Weg zu verbinden.

PIN Belegung:

  • INT           Digital 2
  • SO             Digital 12
  • SCK           Digital 13
  • RESET      RESET
  • GND          GND
  • Clockout   frei
  • WOL         frei
  • SI              Digital 11
  • CS             Digital  10
  • VCC           3,3V (per 2x 1N4007 an 5V)

die 3,3V Versorgungsspannung für des Ethernet Modul wird durch zwei in Reihe geschaltete Dioden (1N4007 in diesem Fall) “erzeugt” – das ist echt quikanddirty ;-)

Verkabelung zum Test mit Jumper und Patchkabel

schnell noch die ethershield library installiert – das Webserver Example in die Arduino IDE geladen – richtige IP Adresse eingegeben – aber – Fehler beim kompilieren:

/home/michi/arduino-0021/libraries/etherShield/etherShield.cpp:8:25: Fehler: EtherShield.h: Datei oder Verzeichnis nicht gefunden
/home/michi/arduino-0021/libraries/etherShield/etherShield.cpp:11: Fehler: »EtherShield« has not been declared
/home/michi/arduino-0021/libraries/etherShield/etherShield.cpp:11: Fehler: ISO-C++ verbietet Deklaration von »EtherShield« ohne Typ
/home/michi/arduino-0021/libraries/etherShield/etherShield.cpp:14: Fehler: »EtherShield« is not a class or namespace
/home/michi/arduino-0021/libraries/etherShield/etherShield.cpp:18: Fehler: »EtherShield« is not a class or namespace

Hmm – scheinbar hat es sich immer noch nicht rumgesprochen dass richtige Betriebssysteme “case sensitive” sind es also nicht egal ist ob man Files gross oder klein schreibt ;-)

auf einem Windows System würde es  wahrscheinlich laufen – doch leider sitze ich ich an einem Ubuntu Linux System…

also entweder man nennt das File etherShield.h in EtherShield.h um und ändert auch im Sketch   #include “etherShield.h” in #include “EtherShield.h”

oder man editiert Ethershield.cpp und passt dort #include “etherShield.h”  an…

…na ja – jedenfalls läuft es nun:

Update:

Habe ich eben grad noch gefunden: Updated Arduino ENC28J60 Ethernet library available  http://blog.thiseldo.co.uk/?p=504

Diese Library wurde erweitert (DNS Support!!) und kompiliert auch unter Linux!

Update 12.11.2012

Momentan die einzige Library die ich finden konnte die  auch in der Arduino IDE 1.x richtig funktioniert:

Jeelabs Ethercard library

Der CS Anschluss am ENC28J60 Breakout muss mit Arduino Digital Pin 8 verbunden  oder per  (ether.begin(sizeof Ethernet::buffer, mymac, 10) z.B auf Pin 10 gesetzt werden.

 

 

ToDo:

WOL – Wake on LAN – was könnte man damit alles anstellen?

 

Links Datenblätter etc:

Ethernet Breakout mit ENC28J60

ENC28J60 Datenblatt

Library von nuelectronics

Updated Arduino ENC28J60 Ethernet library – mit DNS Support!!

 

 

 

 

 

 

 

 

 

 

Dieser Beitrag wurde unter Arduino, Produkte veröffentlicht. Setze ein Lesezeichen auf den Permalink.

5 Antworten auf Quick And Dirty Arduino Ethernet

  1. Frank sagt:

    Ich habe D2/INT nicht verkabelt. Wenn man nur das Ethernet-Modul mit Spannung versorgt leuchtete bei mir mit verkabeltem INT die Power-LED.

    Mit dem WOL könnte man einen Remote-Reset des Controllers umsetzen.

    Ist das eigentlich normal, dass das Ethernet-Modul 150mA zieht?

  2. Holger Klages sagt:

    Hallo,

    ich kann nirgends fonden, wo ich mit etherCard die verwendeten Pins konfigurieren kann…..

    Habe nur gelesen, dass CS standardmässich auf 8 liegt.

    Kann mir jemand helfen?

  3. Fish sagt:

    Haben die meisten Arduino-Boards (zumindest Duemilanove, UNO) nicht auch einen 3.3V Ausgang?

  4. rastagandalf sagt:

    @Fisch: Ja, der 3.3V-Ausgang wird aber vom FT232 (der USB-Seriell-Wandler des Boards) besaftet und liefert nur wenige mA, das Board hingegen benötigt 150mA, daher ist es sinnvoller und vor allem sicherer fürs Board, die 3.3V über die Dioden selbst zu generieren.

  5. Julian sagt:

    Hallo,

    gibt es für dieses EthernetShield bzw. die Library eine Art Tutorial?
    Bis jetzt konnte ich nur die Beispiele nutzen um auszuprobieren ob es funktioniert.
    Jetzt würde ich gerne meine eigenen Sketches schreiben, um irgendwann den Aruino per OSC oder ähnlichem fern zu steuern.

    Viele Grüße,
    Julian

Hinterlasse eine Antwort