-
1. Data: 2018-04-30 01:25:04
Temat: Arduino + Ethernet shield
Od: "Michal M. Lechanski" <m...@d...eu>
Dobry wieczór,
Mam problem z elementami jak w temacie.
Problem polega na tym, że Ethernet od czasu do czasu gubi adres IP.
Układ składa się z Arduino UNO + płytki ethernet W5100 + guzika i
przekaźnika. Zasilanie UNO i płytki eth z jednego silacza, przekaźnika
z innego.
Adres IP pobierany z DHCP (lub na definiowany w kodzie - nie ma różnicy).
UNO i eth coś tam robią, a guzikiem wywoływane jest przerwanie
inicjujące zadziałanie przekaźnika. I niby wszystko jest OK tylko co
któreś tam przerwanie płytka eth traci adres IP. Czasem pierwsze
naciśniecie guzika i płytka ma adres 0.0.0.0, a czasem dopiero
dziesiąte. Pomiędzy kolejnymi naciśnięciami guzika najkrótszy możliwy
czas to 3 minuty.
Przekaźnik podłączony przez tranzystor więc nie ma mowy o przeciążeniu
pinu UNO. Zresztą dla testów odłączyłem przekaźnik zupełnie - nic to
jednak nie zmieniło.
Oba zasilacze ze sporym zapasem mocy więc to też raczej nie będzie
przyczyna utraty IP.
Co ważne chyba, to od momentu kiedy płytka straci adres IP nie można nic
zrobić poza wyłączeniem zasilania lub ponownym wgraniem programu.
Nie działa ani Ethernet.begin() ani Ethernet.maintain()
Pytanie do bardziej doświadczonych - czy znacie jakąś sztuczkę
programową żeby płytka eth znów dostała IP?
Googlownica wykazuje że prawdopodobnie jedynym rozwiązaniem jest reset
płytki eth bez resetu Arduino. Rad bym jednak poznać inne rozwiązanie.
Pomożecie? Z góry dziękuję.
--
Michał