1 (2010-05-27 05:41:30 отредактировано icegrif)

Тема: Проблема с Ethernet Shield v2

Испробывал различные примеры работы с Ethernet Shield v2, в частности и http://arduino.cc/en/Tutorial/ChatServer. Проблема в том что строчка client.read()  не работает вообще, пробывал для проверки такой вариант:

#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 10, 100 };
byte gateway[] = { 192, 168, 10, 1 };
byte subnet[] = { 255, 255, 255, 0 };

Server server(23);

void setup()
{
  pinMode(0, OUTPUT);
  digitalWrite(0, LOW);

  Ethernet.begin(mac, ip, gateway, subnet);
  server.begin();

  Serial.begin(9600);
  Serial.println("connecting...");
  delay(1000);
}

void loop()
{
  Client client = server.available();
  if (client) {
    digitalWrite(0, HIGH);
    delay(1000);
    char c = client.read();
    Serial.println(c);
    delay(1000);
    digitalWrite(0, LOW);
    server.write(c);
  }
}

Пробывал посылать символы и с помощью telnet и с помощью своей программы, результат один - ничего не выводиться ни в консоль, ни в SerialMonitor((( При этом индикатор TX мигает при передаче символа. Выполняется толькое включение выхода 0, далее после read() ничего не работает.

Re: Проблема с Ethernet Shield v2

Если используется последовательный порт, то ноги 0 и 1 уже им заняты.
Т.е. светодиод нужно перевешать на какую-то другую ногу.
А загорается он потому, что вызов Serial.begin перевел его в режим входа
(0й вывод - это RX - прием), а FT232 на этом выводе +5В держит.

...сам не проверял, но судя по коду, чехарда с 0й ногой никак не должна мешать
Ethernet Shield'у устанавливать соединение и прочее.

Типовой пример WebServer'а работает?
Плата пингуется?
Какое состояние светодиодов?

И заодно напомню про типовую хохму всех Shield'ов, если Вы не в курсе:
http://www.arduino.cc/cgi-bin/yabb2/YaB … 25354009/2
...товарищи из freeduino.ru - напишите об этйо особенности в документации!

3

Re: Проблема с Ethernet Shield v2

Спасибо, Сергей, за разъяснение по поводу Serial и светодиодов. Теперь понятно почему светодиод на ноге 0 постоянно горит, при использовании Serial.
По поводу Ethernet, решение нашел на форуме http://www.arduino.cc/cgi-bin/yabb2/YaBB.p. Я не единственный, кто столкнулся с этой проблемой. Дело в ПО arduino-0018, а именно в библиотеке Ethernet, не работает read в классе Client. Решение - заменить библиотеку Ethernet на Ethernet2 (http://code.google.com/p/tinkerit/sourc … /Ethernet2).
Хотелось бы теперь узнать, кто-нибудь сталкивался с этой проблемой при использовании связки arduino-0018+Freeduino 2009+Ethernet Shield v2???

4

Re: Проблема с Ethernet Shield v2

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

5

Re: Проблема с Ethernet Shield v2

kanakhin пишет:

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

А можно уточнить, какое именно ПО arduino вы используете (<Windows | Linux> : <x86 | x64>). В моем случае линуксовая сборка arduino 0018-x64-2. Вобщем, кому интересно, вот здесь затронута эта проблема, http://www.arduino.cc/cgi-bin/yabb2/YaB … 9308907/8.

6 (2010-05-28 05:34:28 отредактировано icegrif)

Re: Проблема с Ethernet Shield v2

Появилась новая проблема,не работает функция stop() в классе Client (Ethernet2). В библиотеке Ethernet функция stop() работала исправно.

7

Re: Проблема с Ethernet Shield v2

windows 7 x86