อ่านบล็อกของฉัน"Byte and Switch" - มันครอบคลุมสถานการณ์ที่แน่นอนนี้
คำตอบสั้น ๆ คือคุณต้องมีไดโอดอิสระเสรีเพื่อทำกระแสไฟเมื่อ MOSFET ดับ โซลินอยด์มีการเหนี่ยวนำที่เก็บพลังงานไว้ในสนามแม่เหล็กและเมื่อคุณปิด MOSFET จะทำให้เกิดการเหนี่ยวนำ แต่แรงดันไฟฟ้าจำนวนมากจำเป็นต่อการไหลของกระแสไฟฟ้านั้นต่อไป พัลส์แรงดันไฟฟ้าที่เกิดขึ้นจะทำให้เกิดการพังทลายของ MOSFET ซึ่งทำให้เกิดความเสียหายที่คุณเห็น
คุณควรเพิ่มตัวต้านทานสองตัวตัวหนึ่งจากไมโครคอนโทรลเลอร์เอาท์พุทลงไปที่กราวด์เพื่อให้แน่ใจว่ามันปิดเมื่อไมโครคอนโทรลเลอร์ของคุณถูกรีเซ็ตและอีกตัวจากไมโครคอนโทรลเลอร์ไปที่เกท MOSFET เพื่อเพิ่มความต้านทานแยกระหว่างสวิตช์เพาเวอร์และ ไมโครคอนโทรลเลอร์
แก้ไข: ฉันเพิ่งสังเกตเห็นว่าคุณกำลังใช้ BS170 MOSFET คุณดูแผ่นข้อมูลหรือไม่? นี่เป็นตัวเลือกที่แย่สำหรับ MOSFET ที่ใช้เป็นสวิตช์ไฟจากไมโครคอนโทรลเลอร์
ก่อนอื่น MOSFET จะถูกระบุที่ 10V Vgs คุณกำลังส่งมันจากไมโครคอนโทรลเลอร์ 5V คุณต้องตรวจสอบให้แน่ใจว่าคุณใช้ MOSFET ที่เป็น "ระดับตรรกะ" และมีการต้านทานแบบระบุไว้ที่ 4.5V หรือ 3.3V Vgs (ฉันขอแนะนำให้คุณไม่ใช้มอสเฟตแรงดันไฟฟ้าต่ำมากเนื่องจากมีความเป็นไปได้ที่มันจะเปิดแบบอ่อนเมื่อคุณคิดว่ามันปิด)
ที่สำคัญกว่านั้นคือ TOF-92 MOSFET ขนาดเล็กที่ระบุไว้ที่ 5 ohms max Rdson ที่ 10V Vgs MOSFET นี้ใช้งานได้ดีสำหรับการโหลดขนาดเล็กมากเช่นไฟ LED ที่วาดสักไม่กี่มิลลิแอมป์ แต่โดยทั่วไปโซลินอยด์จะวาดเป็นหมื่นหรือหลายร้อย milliamps และคุณจำเป็นต้องคำนวณการสูญเสีย I2R ใน MOSFET ของคุณสำหรับการโหลดในปัจจุบันมันดึงและตรวจสอบให้แน่ใจว่ามันไม่ทำให้ทรานซิสเตอร์ของคุณร้อนเกินไป ดูความต้านทานความร้อน R theta JA บนแผ่นข้อมูลและคุณสามารถประเมินได้ว่ามีอุณหภูมิเพิ่มขึ้นในส่วนใด
ใช้ MOSFET ในช่วง 20V-60V ที่มีความต้านทานต่ำกว่าดังที่ฉันได้กล่าวไว้ในความคิดเห็นของเราเราจำเป็นต้องรู้ว่าโซลินอยด์ของคุณดึงกระแสไฟฟ้าออกมามากแค่ไหนถ้าเราจะช่วยคุณ