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:
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:
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:
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
Updated Arduino ENC28J60 Ethernet library – mit DNS Support!!
5 Antworten auf Quick And Dirty Arduino Ethernet