Ethernet Shield无法提供正确的IP

时间:2015-11-24 11:40:16

标签: networking arduino ethernet

每个人都好。

我很难配置以太网屏蔽。

  1. 我将ENC28J60以太网屏蔽安装在Arduino Mega 2560上。
  2. 我将Arduino的USB端口连接到我的电脑的USB端口,
  3. 我将以太网网关的以太网端口连接到TP-Link路由器的LAN端口,IP地址为192.168.0.1,DHCP起始地址为.100到.200
  4. 我把上传的代码上传到Arduino模块:https://www.arduino.cc/en/Reference/EthernetClient

    #include <Ethernet.h>
    #include <SPI.h>
    
    
    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
    byte ip[] = { 192, 168, 0, 100 };
    byte server[] = { 64, 233, 187, 99 }; // Google
    
    EthernetClient client;
    
    void setup()
    {
      Ethernet.begin(mac, ip);
      Serial.begin(9600);
    
      delay(1000);
    
      Serial.println("connecting...");
    
      if (client.connect(server, 80)) {
        Serial.println("connected");
        client.println("GET /search?q=arduino HTTP/1.0");
        client.println();
      } else {
        Serial.println("connection failed");
      }
    }
    
    void loop()
    {
      if (client.available()) {
        char c = client.read();
        Serial.print(c);
      }
    
      if (!client.connected()) {
        Serial.println();
        Serial.println("disconnecting.");
        client.stop();
        for(;;)
          ;
      }
    }
    

    然后,从Arduino IDE的串行窗口,我得到了

    connecting... connection failed disconnecting...

    我也从上面尝试了一些类似的代码,有些正在输出屏蔽IP,但是,我仍然遇到同样的问题,以太网屏蔽没有输出IP地址或说'#34;已连接&#34;。

    我也尝试过直通和交叉电缆。

    请帮助。

    感谢。

2 个答案:

答案 0 :(得分:0)

在你的代码中:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

必须与以太网盾 mac地址匹配。

答案 1 :(得分:0)

也许尝试让路由器通过DHCP提供IP地址。为此,只需将设置例程中的行更改为var randomWord; var word = new Array(3); word[0] = "Michael"; word[1] = "Simon"; word[2] = "Peter"; word[3] = "Mark"; function random_word(){ var randomWord = word[Math.floor(Math.random()*word.length)] } random_word(); document.write(randomWord);

即可