W5100 не могу подключиться по IP
- Войдите на сайт для отправки комментариев
Приветствую всех.
Дошли руки до шилда W5100. Того самого, который со слотом для карты. Прочитал множество тем и здесь на форуме и вообще в интернете. Вроде тема изжевана вдоль и поперек, но все равно у меня не получается сходу запустить этот шилд.
Пытаюсь подключить этот шилд к Меге2560 (и то и другое китайские клоны, если это важно). Подключал и "бутербродом" и проводами к 50-52 пинам на Меге. Скетч использовал стандартный, добавив к нему только управление состояниями пинов 4, 10 и 53. В сериал выводится IP. Пытаюсь в браузере открыть этот IP и он не открывается.
На шилде горят диоды power, fulld, 100m и link. При попытке подключения моргают tx и rx. Вроде связь есть. А по IP ничего не доступно.
Подскажите, пожалуйста в очередной раз, где могут быть ошибки?
/*-------------------------------------------------------------- Program: eth_websrv_page Description: Arduino web server that serves up a basic web page. Does not use the SD card. Hardware: Arduino Uno and official Arduino Ethernet shield. Should work with other Arduinos and compatible Ethernet shields. Software: Developed using Arduino 1.0.3 software Should be compatible with Arduino 1.0 + References: - WebServer example by David A. Mellis and modified by Tom Igoe - Ethernet library documentation: http://arduino.cc/en/Reference/Ethernet Date: 7 January 2013 Author: W.A. Smith, http://startingelectronics.org --------------------------------------------------------------*/ #include <SPI.h> #include <Ethernet.h> // MAC address from Ethernet shield sticker under board byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 0, 20); // IP address, may need to change depending on network EthernetServer server(80); // create a server at port 80 IPAddress gateway(192, 168, 0, 1); IPAddress mask(255, 255, 255, 0); void setup() { Serial.begin(9600); pinMode(4, OUTPUT); digitalWrite(4, HIGH); pinMode(53, OUTPUT); pinMode(10, OUTPUT); digitalWrite(10, LOW); Ethernet.begin(mac, ip, gateway, mask); // Ethernet.begin(mac, ip); // initialize Ethernet device server.begin(); // start to listen for clients Serial.print("server is at "); Serial.println(Ethernet.localIP()); } void loop() { EthernetClient client = server.available(); // try to get client if (client) { // got client? boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { // client data available to read char c = client.read(); // read 1 byte (character) from client // last line of client request is blank and ends with \n // respond to client only after last line received 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"); client.println(); // send web page client.println("<!DOCTYPE html>"); client.println("<html>"); client.println("<head>"); client.println("<title>Arduino Web Page</title>"); client.println("</head>"); client.println("<body>"); client.println("<h1>Hello from Arduino!</h1>"); client.println("<p>A web page from the Arduino server</p>"); client.println("</body>"); client.println("</html>"); break; } // every line of text received from the client ends with \r\n if (c == '\n') { // last character on line of received text // starting new line with next character read currentLineIsBlank = true; } else if (c != '\r') { // a text character was received from client currentLineIsBlank = false; } } // end if (client.available()) } // end while (client.connected()) delay(1); // give the web browser time to receive the data client.stop(); // close the connection } // end if (client) }
Забыл добавить, что пинг тоже не проходит.
резистор на плате проверте. подключите прямо к компу коротким шнурком
Хммм. Про резисторы знаю. У меня как раз 511 сборка. Но вроде, на коротких шнурках должно и так работать? У меня 50 см провод.
Попробовал напрямую к компьютеру подключить - заработало!! На всякий случай хочу уточнить про DHCP на роутере. Он должен быть включен или выключен?
Ну и в качестве бонуса заглянувшим, хитрый способ припаять резисторы не связываясь с СМД-пайкой.
http://forum.arduino.cc/index.php?topic=351477.msg2538804#msg2538804
66
есть хабы или со слабыв сигналом или шибко умные которые пытаются тип шнурка определить и адаптироваться. у меня без замены резистора на коротком шнурке с хабом не работало с компом работало.