Lisez mon article de blog "Byte and Switch" - il couvre ce scénario exact.
La réponse courte est que vous avez besoin d'une diode de roue libre pour conduire le courant lorsque le MOSFET s'éteint; le solénoïde a une inductance qui stocke de l'énergie dans le champ magnétique, et lorsque vous désactivez le MOSFET, l'inductance générera la tension nécessaire pour continuer le flux de ce courant. L'impulsion de tension qui en résulte provoquera une panne dans le MOSFET qui provoque les dommages que vous voyez.
Vous devez également ajouter quelques résistances, l'une de la sortie du microcontrôleur à la masse, pour vous assurer qu'elle est éteinte lorsque votre microcontrôleur est réinitialisé, et l'autre du microcontrôleur à la porte MOSFET, pour ajouter une isolation résistive entre votre interrupteur d'alimentation et votre microcontrôleur.
edit: Je viens de remarquer que vous utilisez un MOSFET BS170. Avez-vous regardé la fiche technique? C'est un mauvais choix pour un MOSFET utilisé comme interrupteur d'alimentation d'un microcontrôleur.
Tout d'abord, le MOSFET est spécifié à 10 V Vgs. Vous l'alimentez à partir d'un microcontrôleur 5V. Vous devez vous assurer que vous utilisez des MOSFET qui sont de "niveau logique" et dont la résistance de marche est spécifiée à 4,5 V ou 3,3 V Vgs. (Je vous suggère de ne pas utiliser de MOSFET à ultra-basse tension car il est possible qu'il s'allume faiblement lorsque vous pensez qu'il est éteint.)
Plus important encore, c'est un petit MOSFET TO-92 spécifié à 5 ohms max Rdson à 10 V Vgs. Ce MOSFET est très bien pour de très petites charges comme les LED tirant quelques milliampères. Mais les solénoïdes consomment généralement des dizaines ou des centaines de milliampères, et vous devez calculer la perte I2R dans votre MOSFET pour la charge actuelle qu'il tire, et assurez-vous que cela ne provoque pas une surchauffe de votre transistor. Regardez la résistance thermique R thêta JA sur la fiche technique et vous pouvez estimer la montée en température de la pièce.
Utilisez un MOSFET dans la gamme 20V-60V qui a une résistance à la marche plus faible - comme je l'ai dit dans mon commentaire, nous devons savoir combien de courant votre solénoïde tire si nous voulons vous aider.