Ошибка при подключении W5100

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Здравствуйте. Установил на Uno плату W5100

Файл - Примеры - WebServer

Пытаюсь загрузить в ардуино, получаю

avrdude: stk500_getsync(): not in sync: resp=0x00

Другие проекты, не W5100 работают.

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Вот так та же ошибка

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Пршу прощения, косяк мой, неверно был указан COM порт.

 

/*
  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 <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 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");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
                    // add a meta refresh tag, so the browser pulls again every 5 seconds:
          client.println("<meta http-equiv=\"refresh\" content=\"5\">");
          // 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 disonnected");
  }
}

 

Захожу по адресу, не удаётся получить доступ к сайту. 

В чём может быть проблема?

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Подключаю напрямую к компьютеру к LAN, работает. Через Хаб не работает.

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Sergeyevd пишет:

Подключаю напрямую к компьютеру к LAN, работает. Через Хаб не работает.

Резюки вроде китайские товарищи на плате не того номинала ставят, 500 ом вместо 50.

nezza_profi
Offline
Зарегистрирован: 26.08.2016

Andy пишет:

Sergeyevd пишет:

Подключаю напрямую к компьютеру к LAN, работает. Через Хаб не работает.

Резюки вроде китайские товарищи на плате не того номинала ставят, 500 ом вместо 50.

а маркировка 500 о чем говорит) как мне кажется это 50 Ом )) 

nezza_profi
Offline
Зарегистрирован: 26.08.2016

Sergeyevd пишет:

Вот так та же ошибка

а почему вы перевернули так шилд то? у меня точно такой же и ставиться он сверху.  

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

nezza_profi пишет:

Sergeyevd пишет:

Вот так та же ошибка

а почему вы перевернули так шилд то? у меня точно такой же и ставиться он сверху.  

Было неверным решением,

http://forum.amperka.ru/threads/РЕШЕНО-w5100-ethernet-shield-uno-ch340.4425/

Сейчас плата установлена как и должна быть, бутербродом.

 

 

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014
/*
  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 <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 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");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println(" <meta charset=\"utf-8\">");
          client.println("<p>Главная</p>");
          client.println("</html>");
          break;
        }
        
 /*      if (strstr(заголовок, "GET /index.htm") || strstr(заголовок, "GET / HTTP/1.1") ) {
 client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println(" <meta charset=\"utf-8\">");
          client.println("<p>Главная</p>");
          client.println("</html>");
          break;
        }
                if (strstr(заголовок, "GET /123.htm") ) {
 client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println(" <meta charset=\"utf-8\">");
          client.println("<p>123</p>");
          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 disonnected");
  }
}

Подскажите пожалуйста как получить заголовок, чтобы осуществить указанное в коде условие

nezza_profi
Offline
Зарегистрирован: 26.08.2016

Sergeyevd пишет:

nezza_profi пишет:

Sergeyevd пишет:

Вот так та же ошибка

а почему вы перевернули так шилд то? у меня точно такой же и ставиться он сверху.  

Было неверным решением,

http://forum.amperka.ru/threads/РЕШЕНО-w5100-ethernet-shield-uno-ch340.4425/

Сейчас плата установлена как и должна быть, бутербродом.

 

 

вы прежде чем смотреть как она у других подлючена проверьте свое устройство.

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Не хочет работать через коммутатор D-link DES-1008D, ни через 4-ч, ни через 8-ми жильный провод.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

А кабель прямой или перекрестный?

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016
Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Нет по близости таких резисторов,закажу, попробую.Спасибо.

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

А кабель прямой или перекрестный?

Прямой

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Как найти этот 510 резистор? Как он может называться на алиэкспресс?

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

resistor array

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014
#include <SPI.h>
#include <Ethernet.h>
String readString;


byte mac[] = {0xDE,0xAD,0xBE,0xEF,0xFE,0xED};
IPAddress ip(192,168,1,177);
EthernetServer server(80);

void setup() {
  Serial.begin(9600);
   while (!Serial) {
    ;
  }

Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}


void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
readString += c;
}

if (c == '\n' && currentLineIsBlank) {
if (readString.indexOf("?index") >0)//Главная страница
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();    
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> ");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<p>Это главная страничка</p>");
client.println("</BODY>");
client.println("</HTML>");
}
if (readString.indexOf("?foto") >0)//Фото
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();    
client.println("<HTML>");
client.println("<HEAD>");
client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> ");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<p>Это страничка с фото</p>");
client.println("</BODY>");
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;
        }
      }
    }

    delay(1);
    readString="";

    client.stop();
    Serial.println("client disonnected");
  }
}

Поправьте если что не так

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016
Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Andy пишет:

resistor array

 

Посмотрите пожалуйста, тот ли я выбрал.

 

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

Да, это он. Здесь по 2 р: http://www.chipdip.ru/product/cat16-510j4/

Китайские товарищи все таки запаяли не тот?

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Ну да, 511 стоит. 

У меня по близости нет Чип и Дип, и в радиомагазинах местных не нашёл. Чем куда-то ехать, дешевле выйдет с китая заказать.

Sergeyevd
Sergeyevd аватар
Offline
Зарегистрирован: 25.03.2014

Загрузил скетч

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 6

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Thermometer1 = { 0x27, 0x80, 0x1D, 0xAB, 0x02, 0x00, 0x00, 0xBD }; 

void setup() {
sensors.begin();
sensors.setResolution(Thermometer1, 10);
Serial.begin(9600);
}
void printTemperature(DeviceAddress deviceAddress) {
float tempC = sensors.getTempC(deviceAddress);
Serial.println(tempC);
}
void loop() {
sensors.requestTemperatures();
Serial.print("Temperatura kontrollera ");
printTemperature(Thermometer1);

delay(800);
}

 

Кажет 50 градусов, при этом W5100 ничего не выполняет.

Это нормально?