Добрый день! Решил я по-экспериментировать с шилдом Ethernet W5100, но далеко, к сожалению, не ушёл... Никак не могу связать в одну сеть сборку Arduino Leonardo + W5100. ПК упорно отказывается видеть подключение. Тестирую на простом стандартном примере. Пинг не проходит (выдаёт информацию о превышеном времени ожидании и потери всех пакетов ) и соответственно обратиться к вебсерверу через браузер тоже не могу... Грешил было на кабель т.к. сначала использовал самый обычный, не кроссовый, а затем переобжал старый кабель под кросс и опробовал его. Результат оказался всё тем же. Подключаю это всё напрямую к ПК за отсутствием роутера. Так же обратил внимание, что на шилде датчики сигнализируют лишь о наличии питания (PWR). Может кто сталкивался с подобной проблемой? Бьюсь уже не первый вечер. Сам в этом деле новичок, помогите добрым советом, ребят) #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() { // 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 } // 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("<!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"); } }
У компа какой IP и подсеть на Ethernet интерфейсе ? При прямом соединении на компе тоже нужно назначить порту статический IP адрес.
Вы имеете ввиду конфигурировать сетевое подключение после подключения ардуины? Не скажу, что спец по сетям, но винда никак не определяет это подключение от слова совсем. Смотрел как через просто сетевые подключения, так и через cmd. Что до подключения, что после - не меняется ничего. Интернетом сам пользуюсь через мобильную сеть (модем). Порт Ethernet очень давно не трогал уже.
Модем получает IP от DHCP сервера оператора связи. В прямом Ethernet соединении DHCP сервер отсутствует. Операционная система назначает произвольный IP и разные подсети не могут видеть друг друга.
Витую пару (кроссовер) сделал по схеме, что нашёл на просторах сети: бело-зелёный, зелёный, бело-оранжевый, синий, бело-синий, оранжевый, бело-коричневый, коричневый. Да, это знаю. Думал даже пробывать поднять DHCP сервер под Windows, но не думаю, что есть смысл, если система даже подключения не видит.
DHCP поднимать не нужно, нужно в параметрах адаптера, в IPv4, прописать фиксированный IP адрес из той же подсети, и маску подсети. Светодиод на разъеме горит хотя бы?
У тебя кабель без коннекторов? Как эти провода разведены в коннекторах? Картинку прицепи по которой делал.
Прошу прощения за задержку. Спасибо всем за помощь) Отбой тревога) Проблему нашёл. Оказалось сам шилд косячный. На порте Ethernet транзистор стоял 511-ый. Погуглив в этом направлении обнаружил, что проблема эта довольно распространённая, ибо мало у кого такие шилды не из китая и раз на раз не приходится. Снял со старой материнки 510-ый транзистор и поменял. Теперь всё в порядке)