Страница 1 из 1

W5100 ethernet shield получает неправильный адрес

Добавлено: Ср апр 07, 2021 12:57 pm
schel4ok
Я сделал скетч для Arduino Mega2560+W5100 ethernet shield для отправки данных через MQTT.
Сначала только получал данные температуры и влажности с четырёх датчиков DHT22.
Пару дней всё работало.
Вчера добавил датчик движения и работать перестало.

При этом основной код, который отвечает за соединение с Ethernet я вообще не трогал, но контроллер перестал получать правильный IPAddress и соответственно нифига не работает.

То есть в скетче у меня такие настройки ethernet

Код: Выделить всё

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };    //mac адрес Ethernet Shield'a Arduino
byte gateway[] = {192, 168, 1, 1};
byte subnet[]  = {255, 255, 255, 0};
IPAddress ip{ 192, 168, 1, 30 };                        //ip адрес Ethernet Shield'a Arduino
IPAddress server{ 192, 168, 1, 2};                      //ip адрес MQTT Брокера
А в серийном порте вот этот код вместо правильного адреса стал выдавать вообще другие значения. Пару раз я видел 0.0.0.0 и пару раз 0.40.1.30

Код: Выделить всё

Serial.print("IP: ");  Serial.println(Ethernet.localIP());
Я думал просто глюк и пытался несколько раз перезагрузить Ардуину, перезаливал скетч, но обратно правильный адрес не возвращается.
При этом с роутера правильный адрес 192.168.1.30 пингуется.

Что могло сломаться?

Re: W5100 ethernet shield получает неправильный адрес

Добавлено: Пн апр 19, 2021 8:13 pm
schel4ok
Похоже проблема была в том, что я подключал 4 датчика DHT22 в пины 50-53.
Я просто на схеме arduino mega увидел, что рядом с пином 51 подписано непонятное слово SPI MOSI, а рядом с пином 53 подписано непонятное слово SPI SS.
Видимо их использует ethernet shield. Не знаю. Но как только переткнул в пины 41-44, то сразу проблема пропала.