Модуль или шилд wiznet W5100 Arduino UNO подходит для непосредственной установки на плату контроллера Arduino UNO R3 или Arduino MEGA 2560.
Библиотека для работы с шилдом - Ethernet library
Работа с кардридером micro-SD карточек, установленным на шилде, выполняется с применением библиотеки SD Library
Таким образом, используемые пины:
- 4 для выбора SD-карты (SD_CS)
- 9 для сброса микросхемы W5100 (W5100_RST)
- 10 для выбора микросхемы W5100 (W5100_CS)
- Шина SPI: 11,12,13 контактов на плате Arduino UNO / Duelmilanove. Контакты 50, 51 и 52 для Mega
--------------------------------- | D13 D12 D11 | | SCK MISO MOSI | | \ | ETH | | JACK | | | | MISO --- | | SCK MOSI | | ---- GND | | | | SD CARD | | | | | | RESET / ----------------------------------
Пример программы под Arduino IDE:
//Libraries
#include <Ethernet.h>
//Parameters
String request ;
unsigned long refreshCounter = 0;
byte mac [6] = {0x54, 0x34, 0x41, 0x30, 0x30, 0x31};
//Objects
EthernetServer server(80);
IPAddress ip(192, 168, 1, 179);
EthernetClient client;
void setup() {
//Init Serial USB
Serial.begin(9600);
Serial.println(F("Initialize System"));
//Init W5100
Ethernet.begin(mac, ip);
while (!Ethernet.begin(mac)) {
Serial.println(F("failed. Retrying in 5 seconds."));
delay(5000);
Serial.print(F("Starting W5100..."));
}
pinMode(2, OUTPUT);
server.begin();
Serial.println(F("W5100 initialized"));
Serial.print(F("IP Address: "));
Serial.println(Ethernet.localIP());
}
void loop() {
client = server.available();
clientRequest();
handleRequest();
}
void clientRequest( ) { /* function clientRequest */
////Get client request
if (!client) {
return;
}
// Wait until the client sends some data
while (!client.available()) {
delay(1);
}
request = client.readStringUntil('\r'); // Read the first line of the request
Serial.println(request);
client.flush();
}
void handleRequest( ) { /* function handleRequest */
////Handle web client request
if (request.indexOf('GET') >= 0) {
{
webpage(client);
client.stop();
}
}
if (request.indexOf("/dig2on") > 0) {
{
digitalWrite(2, HIGH);
}
}
if (request.indexOf("/dig2off") > 0) {
{
digitalWrite(2, LOW);
}
}
}
void webpage(EthernetClient client) { /* function webpage */
////Send webpage to client
//output HTML data header
client.println(F("HTTP/1.1 200 OK"));
client.println(F("Content-Type: text/html"));
client.println();
//header
client.print(F("<!DOCTYPE HTML><html><head><title>AranaCorp</title>"));
client.print(F("<meta http-equiv='content-type' content='text/html; charset=UTF-8'>"));
//meta-refresh page every x seconds
client.print(F("<meta http-equiv='refresh' content='2'>"));
client.print(F("</head><body bgcolor='black'><br>"));
client.print(F("<hr/><hr>"));
client.print(F("<h1 style='color : #3AAA35;'><center> Geekmatic - Arduino Web Controller </center></h1>"));
client.print(F("<hr/><hr>"));
client.print("<center><p style='color:white;'>");
client.print(F("Page refresh number : "));
client.print(refreshCounter); //current refresh count
client.print("</p></center><br>");
client.print(F("<h2 style='color:green;'>Arduino Inputs</h2>"));
client.print("<p style='color:white;'>");
client.print("<br><br>");
//output analog input pin
for (int i = 0; i < 6; i++) {
client.print("<b>Input A");
client.print(i);
client.print(" : </b>");
client.print(analogRead(14 + i)); //A0=14, A1=15 ,etc.
client.print(F("<br>"));
}
client.print(F("</p><br>"));
//digital output
client.print(F("<h2 style='color:green;'>Arduino Outputs</h2>"));
client.print(F("<p style='color:white;'>"));
client.print(F("<br><br>"));
client.print(F("<b>Digital output Pin 2 : </b>"));
client.print("<input value=" + String(digitalRead(2)) + " readonly></input>");
client.print(F("<a href='/dig2on'><button>Turn On </button></a>"));
client.print(F("<a href='/dig2off'><button>Turn Off </button></a><br />"));
client.print(F("</p><br>"));
//file end
client.print(F("<br></body></html>"));
refreshCounter += 1;
}
После загрузки скетча в Arduino UNO мы видим, что Ethernet Shield W5100 инициализируется правильно. Когда вы вводите IP-адрес в адресную строку браузера, появляется веб-страница, описанная в функции.

После загрузки страницы значения аналоговых входов меняются при каждом обновлении, и состояние пина 2 можно изменить, нажав соответствующие кнопки.
Микросхема W5100
Микросхема W5100 представляет собой встроенный контроллер Ethernet с проводным TCP / IP, который упрощает подключение к Интернету для встроенных систем.

W5100 лучше всего подходит пользователям, нуждающимся в стабильном подключении к Интернету, используя один чип для реализации стека TCP / IP, 10/100 Ethernet MAC и PHY. Проводной стек TCP / IP поддерживает TCP, UDP, IPv4, ICMP, ARP, IGMP и PPPoE,…, что было проверено в различных приложениях на протяжении многих лет. W5100 использует 16-байтовый внутренний буфер в качестве памяти для передачи данных.
Используя W5100, пользователи могут реализовать необходимое им приложение Ethernet, используя простую программу сокета вместо работы со сложным контроллером Ethernet.
Одновременно можно использовать 4 независимых аппаратных разъема. Шина (прямая и косвенная) и SPI (последовательный периферийный интерфейс) предусмотрены для легкой интеграции с внешним MCU.
Ethernet модуль W5100
- Модель W5100
- Код: ID-132
- Наличие через 2-3 недели
-
305.19грн.
Рекомендуемые товары
LAN Ethernet шилд ENC28J60
Ethernet шилд расширения с маркировкой HR911105A. Подходит для различных плат контроллера. Питание 5..
159.18грн.
Теги шилд W5100




