Прочитайте мою запись в блоге "Byte and Switch" - она охватывает именно этот сценарий.
Короткий ответ: вам нужен свободно вращающийся диод для проведения тока, когда MOSFET выключается; соленоид имеет индуктивность, которая накапливает энергию в магнитном поле, и при выключении полевого МОП-транзистора индуктивность будет генерироваться, однако большое количество напряжения необходимо для продолжения протекания этого тока. Результирующий импульс напряжения вызовет поломку MOSFET, что приведет к повреждению, которое вы видите.
Вы также должны добавить пару резисторов, один от выхода микроконтроллера к земле, чтобы убедиться, что он выключен, когда ваш микроконтроллер перезагружен, а другой от микроконтроллера к шлюзу MOSFET, чтобы добавить некоторую резистивную изоляцию между вашим выключателем питания и вашим микроконтроллер.
Редактировать: я только что заметил, что вы используете BS170 MOSFET. Вы смотрели на таблицу? Это плохой выбор для полевого МОП-транзистора, используемого в качестве выключателя питания от микроконтроллера.
Прежде всего, МОП-транзистор определен в 10 Vgs. Вы поставляете это от 5V микроконтроллера. Вы должны убедиться, что вы используете полевые МОП-транзисторы, которые имеют «логический уровень» и имеют сопротивление включения, указанное при напряжении 4,5 В или 3,3 В. (Я предлагаю вам не использовать полевые МОП-транзисторы со сверхнизким напряжением, поскольку есть вероятность его слабого включения, когда вы думаете, что он выключен.)
Что еще более важно, это небольшой полевой МОП-транзистор TO-92, рассчитанный на максимальное сопротивление 5 Ом по Рдсону при напряжении 10 В. Этот MOSFET отлично подходит для очень малых нагрузок, таких как светодиоды, потребляющие несколько миллиампер. Но соленоиды обычно потребляют десятки или сотни миллиампер, и вам необходимо рассчитать потери I2R в вашем MOSFET для текущей нагрузки, которую он потребляет, и убедиться, что это не вызывает перегрев вашего транзистора. Посмотрите на тепловое сопротивление R theta JA на листе данных, и вы сможете оценить, насколько повышается температура в детали.
Используйте полевой МОП-транзистор в диапазоне 20–60 В с более низким сопротивлением - как я уже сказал в своем комментарии, нам нужно знать, какой ток потребляет ваш соленоид, если мы собираемся вам помочь.