
Существует способ перезагрузить arduino используя watchdog, но как показывает практика плата остается работоспособной, а вот Ethernet Shield остается в зависшем состоянии. Можно конечно поставить на модуль дополнительный обвес, провести анализ и найти причины зависания. Не не факт что на этом ваши мытарства прекратятся, вполне возможно зависание будет продолжаться по другим новым проблемам.
Для решения проблемы можно периодически перезагружать плату, и если модуль зависнет то только до первой же периодической перезагрузки, после которой связь с устройством возобновится. Пример перезагрузки arduino.
Воспользуемся чипом-таймером SE555. Datasheet.
Рабочее напряжение: от 4,5 до 16В.
Рабочая температура: от -55° до +125°C;
Максимальны выходной ток: 200mA;
Все мы знаем что на плате arduino есть пин под названием reset. Судя по описанию ATMEGA достаточно соединить его с землей на 2мкс и произойдет перезагрузка arduino. На этой странице есть подобный пример но с кнопкой, на видео видно как после нажатия на кнопку происходит перезанрузка. В нашем случае вместо кнопки будет таймер который и отправит сигнал LOW на пин reset.
Схема подключения:

Список деталей:
R: 100 кОм; 4,7 кОм.
С: 470,0*25В; 0,01.
DT: SE555.
Период работы таймера регулируется: R1, R2 и C1.
Номиналы электролитических конденсаторов: 1, 2.2, 4.7, 10, 16, 22, 47, 100, 220, 470, 1000, 2200, 4700мкф на напряжения 16В и 25В.
Номиналы резисторов: ряд E24
Для примера:
Вариант 1
R1=10 МОм;
R2=1 кОм;
C1=470 мкФ;
Будет подавать ток в течении 3258 сек и после этого прервется на 0.32 сек, произойдет перезагрузка arduino. И так по кругу.
Вариант 2
R1=100 кОм;
R2=4,7 кОм;
C1=220 мкФ;
Будет подавать ток в течении 16 сек и после этого прервется на 0.7 сек.
Вариант 3
R1=910 кОм;
R2=15 кОм;
C1=470 мкФ
Будет подавать ток в течении 300 сек и после этого прервется на 5 сек.
Материал взят отсюда. Там же есть онлайн калькулятор задержек.
Распиновка se555p

Возможные проблемы
При попытке залить скетч на плату Arduino возможно будут проблемы. Для этого надо попробовать убрать провод с пина Reset. После заливки скетча воткнуть провод обратно.
|