Сетевой Ethernet модуль W5500 отличается от предыдущих версий Ethernet контроллеров от Wiznet более быстрым SPI (80 МГц), уменьшенным потреблением, оптимизированной работой с памятью и работает совместно с трансформатором гальванической развязки, находящимся в разъеме RJ45 подключения к линии TCP/IP. Также W5500 имеет реализованный Firewall, повышая тем самым надежность системы. Это автоматически конфигурируемый Ethernet-контроллер на основе микросхемы серии W5500 класса IOcP (Internet Offload co-Processor).
Пример: WebServer
 
		| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | #include <SPI.h> #include <Ethernet.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() {   // You can use Ethernet.init(pin) to configure the CS pin   //Ethernet.init(10);  // Most Arduino shields   //Ethernet.init(5);   // MKR ETH shield   //Ethernet.init(0);   // Teensy 2.0   //Ethernet.init(20);  // Teensy++ 2.0   //Ethernet.init(15);  // ESP8266 with Adafruit Featherwing Ethernet   //Ethernet.init(33);  // ESP32 with Adafruit Featherwing Ethernet   // Open serial communications and wait for port to open:   Serial.begin(9600);   while (!Serial) {     ; // wait for serial port to connect. Needed for native USB port only   }   Serial.println("Ethernet WebServer Example");   // start the Ethernet connection and the server:   Ethernet.begin(mac, ip);   // Check for Ethernet hardware present   if (Ethernet.hardwareStatus() == EthernetNoHardware) {     Serial.println("Ethernet shield was not found.  Sorry, can't run without hardware. :(");     while (true) {       delay(1); // do nothing, no point running without Ethernet hardware     }   }   if (Ethernet.linkStatus() == LinkOFF) {     Serial.println("Ethernet cable is not connected.");   }   // start the server   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("<!DOCTYPE HTML>");           client.println("<html>");           // 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("<br />");           }           client.println("</html>");           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");   } } | 
	Документация W5100 (PDF)
	Библиотека и примеры (ZIP)
	Библиотека от Wiznet (ZIP)










