2015-06-05 4 views
0

В настоящее время я пытаюсь подключить Ethernet-щит к моей Mega. Я пытался запустить пример Webserver, но программа, похоже, застряла в какой-то момент, поэтому я попытался начать с нуля.Arduino Ethernet Shield 2 не работает

Это мой тестовый код:

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

byte mac[] = { 
    0x90, 0xA2, 0xDA, 0x0F, 0xF6, 0x3D 
}; 
byte subnet[] = { 255,0,0,0 }; 
byte gateway[] = { 2,0,0,1 }; 
IPAddress ip(2, 0, 0, 1); 

EthernetServer server(80); 

void setup() { 
    Serial.begin(9600); 
    Ethernet.begin(mac, ip, gateway, subnet); 
    Serial.println("Ethernet started"); 
    server.begin(); 
    Serial.println("Server started"); 
} 

void loop() { 
    // put your main code here, to run repeatedly: 
    Serial.println("Loop"); 
} 

Выход я получаю от последовательной консоли:

Etrted 
Ethernet started 

Так что я думаю, что программа застревает внутри EthernetServer :: начинают функцию() , Я знаю, что есть более ранние версии экранов Ethernet, которые не совместимы с мега, но продавец моего щита говорит, что это так.

Также я не понимаю, почему он выводит первую строку.

Спасибо за ваши подсказки!

+0

вы должны попробовать здесь: http://arduino.stackexchange.com/ – SilentTremor

ответ

1

Arduino.cc и Arduino.org - это не то же самое ... Arduino.org, который продает сетевой экран 2, имеет свою собственную среду IDE с правильной библиотекой! Вы можете загрузить его на http://www.arduino.org/downloads и источник может быть найден в https://github.com/arduino-org/Arduino/tree/1.7.4/libraries

+0

Это не было проблемой библиотеки. Просто вырезать все заголовки, но заголовок ICSP экрана выключен примерно на 2 мм, и он работает. – julianrabe

+0

Хорошо. Я просто испытал то же поведение, что и вы, исправленное с помощью правильной библиотеки. – cholewa1992

0

Попробуйте эту форму кода (http://www.arduino.cc/en/Tutorial/DhcpAddressPrinter):

#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() { 

} 

И после того, что выходной последовательный монитор.

0

Попробуйте следующее:

NB. Вы можете повторно использовать код, написанный для Arduino Ethernet Shield, просто заменив

#include <Ethernet.h> --> #include <Ethernet2.h> 
#include <EthernetUdp.h> --> #include <EthernetUdp2.h> 

Смотреть это: http://labs.arduino.org/Arduino+Ethernet+Shield+2

Смежные вопросы