Hello to everybody,
I would like to do webserver with arduino DUE and W5500 ethernet module. When I test it with arduino UNO, everything works correctly. But when I use DUE and the same library and code of webserver I can ping to server, but the google chrome can not show the site, show me this error: ERR_CONNECTION_REFUSED. I use Ethernet2 libbrary from github.
There's either an error in your code (which you're hiding) or your library (which you didn't provide a link for) isn't compatible with the Due. Or even your Ethernet module is not compatible with the 3V3 level of the Due.
With Arduino UNO everythink works fine, but with DUE I can ping to server, but can't show the website. I use webserver example code without any change.
/*
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 <Ethernet2.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, 1, 177);
// 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("");
client.println("");
// 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("");
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");
}
}
Thank you for your answer! I get the SPI signals form SPI header. When I try to get the SPI signals form ICSP header, ping can't work, does work nothing.
On the original Arduino Due board the ICSP header is labeled "SPI" while the header labeled "ICSP" is the ICSP connector for the ATmega16U2 coprocessor (USB2serial) also on the board.
Do you use the W5500 directly (the chip)? If not, post a link to the schematics.
Does anyone know where the problem could be?
Most probably bad wires or bad wiring. How did you wire the setup? Using a breadboard? Many breadboards give bad connections. Check every pin connection with a multimeter.