Hallo,
ich habe so meine Startschwierigkeiten mit dem Ethernet-Shield (bezogen über Watterott.com).
Erstmal finde ich es merkwürdig, dass das Shield auf jeder Seite zwei Steckleisten-Pins mehr hat, als mein Arduino Uno Buchsen(nicht die SMD-Version).
Auf einer Seite musste ich die sogar wegen einem Kondensator auf dem Uno, der im Weg ist, wegbiegen.
So, dann hab ich erstmal das Shield aufgesteckt und versucht den Examples-Sketch Ethernet->WebClient raufzuladen. (Arduino IDE 1.0)
Das scheiterte mit dieser Meldung: avrdude: stk500_getsync(): not in sync: resp=0x00
Ohne aufgestecktes Shield gelang der Upload dann schließlich.
Dann habe ich das Shield wieder augesteckt, LAN- und USB-Kabel verbunden und den Serial-Monitor angeschmissen.
Dort stand nichts. (im Sketch ist bereits in der setup-funktion ein Serial.println)
Dann den Reset-Knopf auf dem Ethernet-Shield gedrückt, nichts aufm Serial-Monitor.
Beim drücken des Reset-Knopf auf dem Uno passiert immer noch nichts auf dem Serial-Monitor.
Die Mac-Adresse des Shields hab ich abgeändert im Sketch.
Der Router verteilt IP-Adressen automatisch.
Auch die LED's aufm Ethernet-Shield blinken. (RX, TX, Link)
Was mach ich hier bloß falsch?
Hier noch der Sketch:
/*
Web client
This sketch connects to a website (http://www.google.com)
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
created 18 Dec 2009
by David A. Mellis
*/
#include <SPI.h>
#include <Ethernet.h>
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress server(173,194,33,104); // Google
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;
void setup() {
// start the serial library:
Serial.begin(9600);
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;;)
;
}
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("GET /search?q=arduino HTTP/1.0");
client.println();
}
else {
// kf you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop()
{
// if there are incoming bytes available
// from the server, read them and print them:
if (client.available()) {
char c = client.read();
Serial.print(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
// do nothing forevermore:
for(;;)
;
}
}