วงจรโซลินอยด์ที่ดำเนินการ MOSFET ของฉันทำลายอินพุต Arduino ของฉัน


14

ฉันสร้างซีรีส์ PCB เพื่อจ่ายกำลังโซลินอยด์วาล์วที่ใช้แหล่งจ่ายไฟภายนอก ฉันสลับมันด้วยBS170 MOSFETsโดยใช้ Arduino เป็นสัญญาณเกท ผมตามมันแก้ปัญหาโดยเจสัน S

นี่เป็นภาพประกอบของวงจรของฉัน: วงจรวาล์วที่ดำเนินการของ MOSFET

ในการทดสอบ PCB นั้นฉันสังเกตว่าส่วนใหญ่ทำงานได้ดี แต่บางคนทำไม่ได้ ไม่มีปัญหาอาจเป็นเรื่องการบัดกรี

อย่างไรก็ตามคนที่มีข้อบกพร่องเหล่านั้นสามารถทำลายหมุดดิจิตอล Arduino สองตัวได้! ที่หนึ่งฉันได้แรงดันไฟฟ้าคงที่ที่ 5 V และอีกอันหนึ่งเอาท์พุท 0.2 V เมื่อฉันส่งสัญญาณ HIGH ไปที่นั้นและ 0.5 V เมื่อฉันส่งสัญญาณ LOW สิ่งที่แปลก

ดังนั้นฉันจึงเดาว่าวงจรที่ผิดพลาดเกิดขึ้น (บางส่วน) 16 V ไหลผ่าน Arduino ทำลายพวกเขา

ฉันจะป้องกัน Arduino ในสถานการณ์นี้จากกระแสที่สูงเกินไปได้อย่างไร

ฉันรู้เกี่ยวกับไดโอดซีเนอร์ แต่ฉันไม่รู้ว่าจะวางไว้อย่างไรเพื่อป้องกันอินพุต

ข้อมูลทางเทคนิค:


คุณใช้ซอฟต์แวร์ใดในการสร้างภาพวาดนั้น มันดูดีจริงๆ!
mjh2007

3
Fritzing ฟรีและมีประโยชน์มากสำหรับชนิดของสิ่งนี้ยังสำหรับการออกแบบ PCB :)
Dyte

Gate-source zener diode กล่าว 12V (> Vgate_drive) เป็นความคิดที่ดีมากในทุกวงจรที่มีโหลดแบบเหนี่ยวนำ เมาซีเนอร์ใกล้กับ MOSFET ขั้วบวกไปยังแหล่งที่มาและแคโทดไปที่เกตเพื่อให้ซีเนอร์มักไม่ดำเนินการ || ไกลดีกว่า MOSFETs ที่ 26c / 10 Digikey เป็นเช่นIRLML6346 SOT23 หรือNDT3055 48c / 10 TO251 leaded หรือRFD14N05 71c / 10 TO220
รัสเซลแม็คมาฮอน

...When MOSFETs fail they often go short-circuit drain to gate...อ้างจากที่นี่
abdullah kahraman

การใช้ 16V อาจฆ่าพอร์ต Arduino ของคุณ
abdullah kahraman

คำตอบ:


7

ทฤษฎีนี้ใช้งานได้ดี
ต้องมีการปรับปรุงในทางปฏิบัติ

การเพิ่ม diode zener ของ gate-source กล่าวว่า 12V (> Vgate_drive) เป็นความคิดที่ดีมากในทุกวงจรที่มีโหลดแบบเหนี่ยวนำ สิ่งนี้จะหยุดประตูที่ถูกผลักดันอย่างสูงอย่างทำลายล้างโดย "มิลเลอร์คาปาซิเตอร์" เชื่อมต่อกับท่อระบายน้ำในระหว่างการเปลี่ยนแปลงที่ไม่คาดคิด

เมานต์ซีเนอร์ใกล้กับ MOSFET
เชื่อมต่อแอโนดกับแหล่งที่มาและแคโทดไปที่เกตเพื่อให้ซีเนอร์มักไม่ทำงาน

ตัวต้านทานไดรฟ์เกต 10k (ดังแสดง) มีขนาดใหญ่และจะทำให้การปิดและเปิดช้าลงและการกระจายพลังงานในมอสเฟตมากขึ้น นี่อาจไม่ใช่ปัญหาที่นี่

MOSFET ที่เลือกนั้นมีขนาดเล็กมากในแอปพลิเคชันนี้
ไกลยิ่งกว่า MOSFET ที่มีอยู่ในสต็อกที่ Digikey รวมถึง:

สำหรับ 26c / 10 Digikey IRLML6346 SOT23 pkg, 30V, 3.4A, 0.06 Ohm, Vgsth = 1.1V = เกตแรงดันเกต ..

NDT3055 48c / 10 TO251 leaded 60V, 12A, 0.1 Ohm, Vgsth = 2V

RFD14N05 71c / 10 TO220 50V, 14A, 0.1 โอห์ม, 2V Vgsth


ADDED

มอสเฟตที่เหมาะสมสำหรับ 3V DRIVE DRIVE:

ระบบทิ้งคำตอบอีกต่อไปของฉันแล้ว :-( ดังนั้น - MOSFET ต้องมี Vth (แรงดันขีด จำกัด ) ไม่เกิน 2V เพื่อทำงานอย่างถูกต้องกับคอนโทรลเลอร์ควบคุม 3V3
FET ที่แนะนำไม่ตรงตามข้อกำหนดนี้
พวกเขาอาจทำงานได้ตามปกติ โหลดปัจจุบัน แต่มีน้อยและสูญเสียมากเกินไปและวิธีแก้ปัญหาไม่ขยายไปถึงโหลดที่ใหญ่กว่า
ดูเหมือนว่า IRF FETS ในช่วงขนาดที่เกี่ยวข้องที่มี Vth (ของ Vgsth) <= 2 โวลต์ทั้งหมดมีรหัสตัวเลข 4 หลักเริ่มต้นที่ 7 ยกเว้น IRF3708 .

FET ตกลงรวม IRFxxxx โดยที่ xxxx = 3708 6607 7201 6321 7326 7342 7353 7403 7406 7416 7455 7463 7468 7470

จะมีคนอื่น ๆ แต่สิ่งที่แนะนำทั้งหมดดูเหมือนจะมี Vth = 4V หรือ 5V และมีขอบเขตหรือแย่กว่าในแอปพลิเคชันนี้

Vgsth หรือ Vth จำเป็นต้องมีอย่างน้อยหนึ่งโวลต์น้อยกว่าและดีเลิศหลายโวลต์น้อยกว่าแรงดันไดรฟ์เกตจริง


ใช่ฉันจะไปเพื่อความปลอดภัยและฉันจะใช้ mosfet อื่น สิ่งนั้นและไดโอดซีเนอร์น่าจะเป็นกลลวง ในร้านขายเครื่องใช้ไฟฟ้าใกล้กับที่ที่ฉันอาศัยอยู่พวกเขาไม่มี mosfets ที่คุณเสนอ แต่พวกเขามี: IRF520, IRF530, IRL530, IRF540, IRF540, IIRF730, IRF740, IRF840, IRF9530, IRF9540, IRF9540, IRF9540, IRF9540, IRF9540, IRF9540, IRF9540 IRFDD110, IRFD9120, IRFP50, IRFP054, IRFP140, IRFP150, IRFP450, IRFP520, IRFP520, IRFP9140, IRFZ44, IRFZ46 ฉันคิดว่าฉันสามารถไปเป็น IRF520 เป็นตัวอย่างได้หรือไม่ กระแสน้ำที่ไหลออกมาอย่างต่อเนื่องคือ 6.5 ถึง 9.2 A. Vgs ต่ำสุดคือ 2V และสูงสุดคือ 4V มันโอเคสำหรับ arduino หรือเปล่า?
Dyte

IRF520 นั้นดีสำหรับ Arduino ในการขับเคลื่อน Min Vgs และ "max Vgs" ไม่ใช่สิ่งที่คุณคิดนั่นคือแรงดันไฟฟ้า "treshold" ซึ่ง MOSFET เริ่มทำงาน Vgs สูงสุดจะสูงขึ้นอย่างมีนัยสำคัญ (เหนือ 5v Arduino จะส่งออก) ให้คะแนนที่สูงกว่านั้น (20V?) แล้วคุณจะทำตาม FET
ไบรอัน Boettcher

ใช้งานได้กับ IRF520 MOSFET และไดโอด 5.1 V zener และอาจจะทำงานต่อไปในครั้งนี้ :) ขอบคุณมากที่ช่วยฉันออกมา คำตอบทั้งหมดช่วยฉันได้ แต่คุณอธิบายเกี่ยวกับไดโอดซีเนอร์และมอสเฟตบางประเภทดังนั้นฉันจึงยอมรับว่าคุณเป็นคำตอบ
Dyte

@ รัสเซลแมคมาฮอน: แรงดันไฟฟ้าเอาท์พุตของฉันคือ Arduino (น้อยกว่า) 5V ไม่ใช่ 3V3 นั่นไม่ได้เปลี่ยนสถานการณ์หรือไม่
Dyte

10

วาล์วของคุณอยู่ที่ 500mA ที่ 12V ถ้าคุณให้ 16V มันจะวาดได้มากกว่า 500mA สมมติว่ามันเป็นแนวต้านมันจะวาด 667mA

กระแสสูงสุดที่แน่นอนสำหรับ MOSFET ที่คุณใช้คือ 500mA อย่างต่อเนื่อง อะไรก็ตามที่อยู่เหนือการให้คะแนนสูงสุดแบบสัมบูรณ์อาจทำลายอุปกรณ์ นี่อาจเป็นเหตุผลว่าทำไมคุณถึงพบปัญหาความน่าเชื่อถือ

ไม่มีโหมดความล้มเหลวที่รับประกันได้สำหรับ MOSFET ดังนั้นฉันจึงไม่แปลกใจที่มันจะล้มเหลวในลักษณะที่ทำให้เกิดความเสียหายกับเอาท์พุท Arduino

ดังที่เจสันพูดถึงในคำตอบที่เชื่อมโยงกัน BS170 เป็นตัวเลือกที่ดีของ MOSFET คุณต้องการสิ่งที่ดีกว่า เลือกหนึ่งในเคส TO-220 ที่จัดอันดับที่หลายแอมป์ คุณต้องแน่ใจว่า Vgs ได้รับการจัดอันดับสำหรับไดรฟ์ระดับตรรกะ 5V

คุณใช้ไดโอดตัวไหน


สวัสดีมาร์คไดโอดที่ฉันใช้คือ 1N4001: fairchildsemi.com/ds/BS/BS170.pdf
Dyte

5

วาล์วของคุณอยู่ในระดับประมาณ 500 mA BS170 ได้รับการจัดอันดับ 500 mA ด้วยเช่นกัน แต่นั่นคือตัวเลขยอดขาย ฉันจะใช้ FET ที่สูงกว่านี้มาก 500mA ผ่าน TO92 ทำให้ฉันกังวล และคุณมีตัวต้านทานเกต 1k ซึ่งเป็นความคิดที่ดีในกรณีส่วนใหญ่ แต่อาจทำให้ FET ที่ไม่ดีเปลี่ยนช้าเกินไปที่จะอยู่รอด 0.5A

คุณกำลังใช้ไดโอดอะไร ต้องได้รับการจัดอันดับสำหรับ 0.5A ดังนั้น 1n4148 จะไม่ทำ ฉันไม่แน่ใจ แต่จริง ๆ แล้วอาจได้รับมากกว่า 0.5 เพราะส่วนที่เคลื่อนไหวของค่าอาจทำให้เข็มใหญ่กว่าขดลวดธรรมดา

ในรูปภาพของคุณคุณมีค่ากระแสไหลย้อนกลับผ่านการเชื่อมต่อภาคพื้นดินของ Arduino ฉันอยากให้มันเป็นดาว: เชื่อมต่อพื้นดินอาร์ดิโนเข้ากับแหล่งจ่ายไฟโดยตรง หรือดีกว่ามาก: ใช้ออปโตคัปเปิลเพื่อแยกวงจรกระแสสูงออกจาก Arduino (และใช้แหล่งจ่ายไฟสองแยก)


ไดโอดที่ฉันใช้คือ 1N4001 diodes.com/dat เอกสาร/ds28002.pdfฉันไม่ได้นึกถึง opto coupler นั่นเป็นสถานการณ์ที่ดีที่จะตรวจสอบ :)
Dyte

5

คุณควรจะมีตัวต้านทานแหล่งเกตบน MOSFET ของคุณเพื่อให้เกทไม่สามารถลอยขึ้นหากเอาต์พุต Arduino มีความต้านทานสูง เนื่องจากแหล่งจ่ายไฟโซลินอยด์และแหล่งจ่ายไฟ Arduino แยกกันสถานการณ์นี้อาจเกิดขึ้นได้ (เว้นแต่คุณจะรับประกันโดยการออกแบบที่ Arduino เปิดอยู่เสมอก่อน)

MOSFET อยู่ไกลจากโซลินอยด์หรือไม่? ถ้าเป็นเช่นนั้นก็ควรขยับเข้าใกล้มากขึ้น ย้ายเพื่อให้ท่อระบายน้ำเสียบโดยตรงกับแถบ protoboard ที่ลวดสีแดงไปยังโซลินอยด์และไดโอด จากนั้นทำการเชื่อมต่อแหล่งสั้น ๆ กับแถบ GND มันจะดีกว่าถ้ามีสัญญาณเกตอีกต่อไป (ที่พลังงานต่ำ) เทียบกับการวนซ้ำที่ใช้พลังงานนาน คุณสามารถขยับ Arduino ให้ใกล้กับโซลินอยด์ได้เช่นกันทำให้ห่วงเหล่านั้นสั้น


โดยตัวต้านทานแหล่งที่มาคุณหมายถึงตัวต้านทานระหว่างเกตและแหล่งที่มาของมอสเฟตหรือไม่ ขออภัยถ้านี่เป็นคำถามโง่ ๆ :) คุณแนะนำค่าอะไร? เกี่ยวกับระยะทางไม่มีส่วนประกอบทั้งหมดอยู่ใกล้กันฉันมีวงจรนี้บัดกรีบน PCB แกะสลักด้วยตนเอง เฉพาะสายต่อไปยัง Arduino ฉันต้องบอกว่าฉันไม่รู้ว่าสิ่งนี้สร้างความแตกต่างใด ๆ ฉันคิดว่าความแตกต่างในเวลาที่การเดินทางในปัจจุบันอีกไม่กี่ซม. นั้นเล็กน้อยมาก
Dyte

@Dyte ใช่ตัวต้านทานระหว่างเกตและแหล่งที่มา
Adam Lawrence

@Dyte ฉันจินตนาการว่าตัวต้านทานแหล่งเกต 10k นั้นใช้ได้ดี เป้าหมายคือเพื่อให้แน่ใจว่าประตูของ MOSFET ไม่ลอย คุณต้องการบางสิ่งบางอย่างที่ต่ำพอที่จะ "ชนะ" กับองค์ประกอบวงจรกาฝาก แต่สูงพอที่เอาท์พุท Arduino สามารถ "ชนะ" เมื่อต้องการเปิด MOSFET
ajs410

3

วงจรตามที่แสดงไว้ดูดีให้การเชื่อมต่อภาคพื้นดินเพียงอย่างเดียวระหว่างบอร์ด Arduino และขั้วบวกของอุปทาน +16 คือสายสีน้ำเงินสั้น ในทางกลับกันเป็นไปได้ที่กางเกงขาสั้นโดยไม่ตั้งใจอาจทำให้เกิดสิ่งไม่ดีเกิดขึ้น มันยากที่จะคาดเดาสิ่งที่อาจเกิดขึ้นโดยไม่ได้เห็นว่าบอร์ดที่เป็นปัญหาจริงถูกจัดวางไว้อย่างไร

หากคุณกำลังผลักดันสเปคของ MOSFET ของคุณมันอาจล้มเหลวได้ง่ายในลักษณะที่ส่ง +16 ออกจากประตู แต่ถ้าตัวต้านทานมีภาพประกอบดังที่ฉันคาดหวังว่า Arduino จะได้รับการปกป้องอย่างดี


1

ก่อนอื่นคุณต้องมีไดโอดสวิตช์ที่เร็วมากไม่ใช่ไดโอด 2n4001-4 ราคาถูกเหล่านี้เมื่อใช้มอเตอร์หรือคอยส์ ยิ่งการสลับเปลี่ยนเร็วขึ้นเท่าใด BEMF ยิ่งถูกสร้างขึ้น นอกจากนี้ยังใช้ไดโอดสลับ 914 ไปที่ประตู mosfet จาก arduino และตัวต้านทานดึงลง / ลง 10k จากประตูสู่พื้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.