user3573310
user3573310

Reputation: 21

DhcpAddressPrinter in the Arduino example can not work

I use the combination of Arduino mega r3 and ethernet shield. When using the example of DhcpAddressPrinter, I can not get any result. I did not change any code.

#include <SPI.h>
#include <Ethernet.h>

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
  // this check is only needed on the Leonardo:
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for(;;)
      ;
  }
  // print your local IP address:
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print("."); 
  }
  Serial.println();
}

void loop() {

}

Afterwards, I added some "println" in the code as follows: #include #include

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  
  0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };

// Initialize the Ethernet client library
// with the IP address and port of the server 
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
  // this check is only needed on the Leonardo:
   Serial.println("1");
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
   Serial.println("2");
  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
   Serial.println("3");
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for(;;)
      ;
  }
  // print your local IP address:
  Serial.print("My IP address: ");
  for (byte thisByte = 0; thisByte < 4; thisByte++) {
    // print the value of each byte of the IP address:
    Serial.print(Ethernet.localIP()[thisByte], DEC);
    Serial.print("."); 
  }
  Serial.println();
}

void loop() {

}

I can get the result 1 and 2 from Serial Monitor, but cannot receive 3; So I doubt that the function Ethernet.begin(mac) is keeping running all the time and don't know why. I have change the mac address to others, but get the same result.

Upvotes: 2

Views: 823

Answers (1)

F4T4liS
F4T4liS

Reputation: 185

Are you using a microSD in the same time ? Sometimes it can create problems with DHCP on the Ethernet Shield

Upvotes: 0

Related Questions