При неаккуратной работе с arduino всегда наступает расплата за не поставленные вовремя ограничивающие резисторы, за сопли на макетной плате и просто за ошибки по питанию.
Пред история: совсем неаккуратное обращение с пином 44 (PWMC5), в результате короткое замыкание на +24В (длиттеееллльное....)
История: Arduino вместо положенных 100 мА при работе скетча (измерялось, когда было все еще рабочим), стала потреблять 240 мА. Стабилизатор AS1117 готовился жарить яйца. Сама мега подогревалась не слабо. Mega шьется, скетч работает.
Расследование: переводим все пины в состояние HIGH, тестором проходим все пины. 44 "шумит" 1.4В, понятно, выгорел. 45 пин 0.75В - тоже плохо ему. Переводим все пины в LOW - измеряем - 44 "шумит", 45 -0.25В, и еще один "мертвец" - 43 - 4.78В. Видим, выгорело по "географическому" признаку (на avr эти пины рядышком, окружают 44).
Терапия: К сожалению, стабилизатор AS долго не протянул, дал время на измерение и "просел". Выдергиваем его, на место ставим 7805, не забываем поставить кусочек меди для теплоотвода.
Подключаем амперметр, и начинаем колдовать со скетчем. В avr можно задавать разнообразные режимы работы пинов, от этого зависит подключение внутреннего подтягивающего резистора. Перебираем варианты, измеряем ток потребления. При следующих состояниях пинов получилось 140мА потребления, что уже не плохо.
pinMode ( 43 , INPUT_PULLUP ) ; digitalWrite ( 43 , HIGH ) ; pinMode ( 44 , OUTPUT ) ; digitalWrite ( 44 , LOW ) ; pinMode ( 45 , OUTPUT ) ; digitalWrite ( 45 , LOW ) ;
Это частный случай, не факт, что у Вас будет также. (а еще жаль, что нельзя отключать пины от "цифровой" в AVR все, а можно только используемые в коммутаторе АЦП).
Если у Вас есть интересные решения "оживления" ардуино, пожалуйста пишите.
С уважением, к читателям. Прошу комментировать, спасибо.
Мой блог о радио: https://sp8plus.blogspot.com/