Arduino รีเซ็ต / แขวนเนื่องจากประกายไฟในสาย ac


15

นี่คือการออกแบบ PCB ของโครงการที่ฉันทำงานเมื่อเร็ว ๆ นี้ (การออกแบบ pcb ครั้งแรกของฉัน) เค้าโครง PCB

แนวคิดคือการควบคุมเครื่องใช้ไฟฟ้า ac (พัดลมหลอดไฟ ฯลฯ ) โดยไม่มีรีเลย์ ฉันใช้ triacs ซึ่งดีกว่ารีเลย์สำหรับแอพพลิเคชั่นดังกล่าว ฉันใช้ opto-isolators สำหรับการแยกอย่างสมบูรณ์จากสาย ac ฉันลองใช้งาน Arduino โดยใช้สาย USB ที่เชื่อมต่อกับแล็ปท็อปของฉัน (พร้อมที่ชาร์จไม่ได้เสียบ) รวมถึงอะแดปเตอร์ติดผนัง (12V)

ตอนแรกวงจรก็ทำงานได้ดี ฉันสามารถถ่ายโอนรหัสลงในคอนโทรลเลอร์และหลอดควบคุม (เปิด / ปิดเช่นเดียวกับหรี่แสง) โดยใช้ UART ฉันส่งคำสั่งผ่าน UART อย่างไรก็ตามดูเหมือนว่าเมื่อใดก็ตามที่มีประกายไฟบนสาย ac (เมื่อฉันเสียบพัดลมเข้า / ออก) ไมโครคอนโทรลเลอร์ไม่ได้ดูมีความสุข บางครั้งมันรีเซ็ต (ซึ่งเป็นส่วนที่ดีกว่าของรูปภาพ) และเวลาอื่น ๆ มันแฮงค์และฉันไม่สามารถส่งคำสั่งผ่าน UART ฉันไม่แน่ใจว่ารหัสที่ได้รับผลกระทบหรือไม่ แต่บางครั้งฉันต้องอัปโหลดรหัสอีกครั้ง หากฉันเปิด / ปิดพัดลมในห้องอื่นจะไม่มีผลกระทบ

ปัญหาที่เป็นไปได้:

1) ขาดระนาบพื้นบน PCB

2) EMI บางประเภทเกิดจากประกายไฟ

ฉันยังลองเสียบปลั๊กในเครื่องทำน้ำอุ่น (ตัวต้านทานโหลด 800 วัตต์) แบบเดียวกับพัดลม แต่ไม่มีอะไรเกิดขึ้น ดังนั้นฉันคิดว่ามันเป็นภาระอุปนัยที่ทำให้เกิดปัญหา

ทางออกที่สร้างสรรค์สำหรับปัญหานี้จะได้รับการชื่นชมอย่างมาก

ขอบคุณ


2
ใช่มันเป็นภาระอุปนัย คุณต้องมี snubber & / หรือ MOV (หรือไดโอด TVS สองทิศทาง) เพื่อระงับการขัดขวางแบบเหนี่ยวนำ โดยปกติวางขนานกับโหลด เค้าโครง PCB ที่ได้รับการปรับปรุงสามารถช่วยลดผลกระทบได้ ดูelectronics.stackexchange.com/q/101815/25328สำหรับคำถามที่คล้ายกันแม้ว่าบอร์ดนั้นจะใช้รีเลย์
ตุต

เนื่องจากคุณกำลังใช้ triacs ปัญหาขัดขวางแบบอุปนัยมีแนวโน้มที่จะแย่ลงมากเมื่อทำการเสียบ / ถอดปลั๊กพัดลมด้วยตนเองเนื่องจาก triacs ปิดที่กระแสใกล้ศูนย์ ปัญหาที่อาจเกิดขึ้นที่คุณอาจพบคือ triac ที่ไม่ได้ปิดการทำงานเมื่อเชื่อมต่อกับโหลดแบบเหนี่ยวนำ แนะนำให้คุณดูในเอกสารข้อมูลทางเทคนิคและแอพสำหรับวงจร triac ที่ออกแบบมาสำหรับโหลด AC
ตุต

สิ่งนี้อาจช่วยได้หรือไม่ แต่คุณสามารถลองเพิ่มตัวจับเวลาสุนัขเฝ้าดูในซอฟต์แวร์ arduino ของคุณ
ฝ่ายอักษะ

@Tut - ขอบคุณสำหรับคำแนะนำของคุณ ฉันอ่านลิงค์ที่คุณโพสต์ ฉันกำลังพยายามที่จะใช้พวกเขาใน PCB ต่อไปของฉัน จะโพสต์เลย์เอาต์บอร์ดก่อนที่จะผลิตเพื่อที่พวกคุณจะสามารถให้ข้อเสนอแนะและชี้ให้เห็นข้อผิดพลาด / การแก้ไข
Whiskyjack

คำตอบ:


11

คุณไม่ได้แสดงวงจร แต่ฉันไม่เห็นหมวกบายพาสที่เห็นได้ชัดหรือแคปแหล่งจ่ายไฟภายในตัวเครื่อง สิ่งนั้นและการขาดสายดินที่ดีนั้นเป็นสาเหตุของปัญหา

อย่างที่คนอื่นพูดคุณควรเว้นระยะห่างอย่างเหมาะสมระหว่างส่วน AC และ DC และอย่างน้อยก็ลองสร้างระนาบกราวด์

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

อย่างไรก็ตามคุณต้องใส่หมวกบายพาสลงในทุกตัวจ่ายพลังงานให้กับ IC ทุกตัว สิ่งเหล่านี้ควรเป็นฝาเซรามิกขนาดเล็กใกล้กับ IC ด้วยห่วงโดยรวมที่เล็กที่สุด 1 µF 0805 นั้นถูกต้อง ไม่เพียง แต่จะมีราคาถูกกว่าและทำงานได้ดีกว่าฝาปิดรูเทียบเท่า แต่จะง่ายต่อการบัดกรีด้วย

เนื่องจากพลังงาน DC มาจากที่อื่นและมีความต้านทานจึงสงสัยให้ใส่หมวกไฟฟ้าที่มีขนาดพอเหมาะตรงข้ามกับที่พลังงานเข้าสู่บอร์ด สองสาม 100 µF ควรทำ


ขอบคุณแลง ฉันกำลังอ่านข้อความของคุณในคำถามที่คล้ายกันและฉันได้เรียนรู้มากมาย ดูเหมือนว่าการทิ้งระนาบพื้นเป็นความผิดพลาดครั้งใหญ่ที่สุด ฉันจะออกแบบ PCB ของฉันใหม่โดยมีระนาบกราวด์บนพื้นผิวทั้งสองและพยายามวางส่วนประกอบในลักษณะที่มีความต่อเนื่องตามที่ผู้อื่นชี้ ฉันขอขอบคุณที่คุณช่วย
Whiskyjack

1
@ user3455594 อย่าปล่อยตัวเก็บประจุบายพาสเหล่านั้นออกโดยเฉพาะใน Arduino
ตุตันคาเมน

@Olin - มาตรการใดที่คุณแนะนำให้ปกป้อง triacs จากแรงดันไฟฟ้าแหลมเมื่อใดก็ตามที่เปิดหรือปิดอุปกรณ์ หลังจากอ่านเสร็จฉันก็พบว่าคนที่หมิ่นประมาทมักถูกใช้เพื่อระงับหนามแหลม อย่างไรก็ตามการใช้หัวหน้าของ snubber มีความเกี่ยวข้องเพื่อป้องกันการทริกเกอร์ triac ที่ผิดพลาดและไม่ใช่การป้องกัน triac MOV เป็นอีกทางเลือกหนึ่ง คุณมีความคิดเห็นอย่างไรเกี่ยวกับเรื่องนี้ อ้างอิงลิงค์นี้เพื่ออ้างอิงถึงกรณีการใช้งานของฉัน
Whiskyjack

20

คุณควรเคารพการแยกแรงดันไฟฟ้าของคุณ วิธีที่คุณวางต้านทาน (และกำหนดเส้นทาง) ตัวต้านทาน R16, R13 R10, R2, R31 และ R4 ลดอุปสรรคการแยกที่สร้างโดยตัวแยกออปโตของคุณ ด้านล่างฉันได้ทำเครื่องหมายเค้าโครงที่มีอยู่ของคุณด้วยเส้นทางแยกของคุณซึ่งไม่ดีพอ:

ป้อนคำอธิบายรูปภาพที่นี่

มีโซนแยกเดี่ยวที่กว้างที่สุดเท่าที่จะเป็นไปได้ (ความกว้างของออปโตอิเล็กทริกของคุณ) รักษาวงจรของสายที่ด้านข้างของสายและวงจรแยกที่ด้านที่แยกได้ ดูภาพด้านล่างสำหรับคำแนะนำ

ป้อนคำอธิบายรูปภาพที่นี่


สิ่งนี้จะมีประโยชน์และอาจช่วยได้ แต่คุณเชื่อจริงหรือว่านี่เป็นแหล่งที่มาของปัญหาและวิธีแก้ปัญหานี้จะแก้ไขได้อย่างสมบูรณ์หรือไม่?
Adam Davis

1
@ AdamDavis ไม่ฉันไม่สามารถรับประกันได้ว่านี่เป็นเพียงสาเหตุของปัญหา ในความเป็นจริงทั้งคำแนะนำของแลงและแอนดี้ควรได้รับการเอาใจใส่อย่างแน่นอน อย่างไรก็ตามนี่คือการพิจารณาด้านความปลอดภัยที่สำคัญและฉันยังสามารถเห็นการชุมนุมที่น้อยกว่าที่สมบูรณ์แบบทำให้โกรธปัญหา
W5VO

@ W5VO - ฉันได้สร้างเลย์เอาต์ใหม่ คุณช่วยกรุณาดูได้ครั้งเดียวและให้คำแนะนำที่มีค่าของคุณ ขอบคุณล่วงหน้า.
Whiskyjack

6

ระนาบกราวด์, กราวด์เรน, กราวด์และข้อแก้ตัวที่น้อยมาก มาดูกันว่าคุณสามารถทำแผงวงจรนี้ได้มากมาย: -

ป้อนคำอธิบายรูปภาพที่นี่

ฉันใช้เวลาประมาณ 5 นาทีทำเครื่องหมาย (ด้วยสีแดงสด) แทร็กสีน้ำเงินที่อาจเป็นสีแดงและแทบจะไม่มีสมองทำงานเลย

ฉันจะทิ้งมันและเริ่มใหม่อีกครั้ง


4
@ kolosy เราทุกคนเริ่มต้นที่ไหนสักแห่งและเราได้ทำเลย์เอาต์ที่ไม่ดีเมื่อเริ่มต้นครั้งแรก นี่คือคำแนะนำฟรีที่ดีที่สุดที่ OP จะได้รับและถ้าคุณคิดว่าฉันมีความเมตตาอย่างไร้เหตุผลแล้วโปรดยืนยันฉันทำเครื่องหมายคำตอบนี้ให้ผู้ดูแล
แอนดี้อาคา

1
ขอบคุณแอนดี้ ฉันได้วางระนาบกราวด์ไว้ในแบบที่สองแล้ว คุณคิดว่านี่เป็นปัญหาเดียวหรือไม่ ป.ล. - ฉันไม่พบคำตอบของคุณอย่างรุนแรง ฉันขอขอบคุณสำหรับความช่วยเหลือของคุณ
Whiskyjack

4
@kolosy สุจริตฉันไม่คิดว่าคำตอบนั้นเป็นการดูถูก (และอาจเป็นเพราะฉันเห็นด้วยกับคำตัดสินของ Andy)
W5VO

1
@kolosy: Andy กำลังบอกว่ามันเป็นอย่างนั้นและเป็นสิ่งที่ OP ต้องการได้ยินในแง่ที่ชัดเจน และใช่ฉันเห็นด้วยกับคำตัดสินของเขาเช่นกัน
Olin Lathrop

3
@Andyaka อาจจะบอกว่ามันเป็นอย่างนั้น แต่ฉันไม่เห็นจุดที่จะนำ "ไม่มีข้อแก้ตัว" และ "แทบจะไม่มีสมองเลย" สิ่งที่ชัดเจนและงี่เง่าสำหรับคุณไม่ใช่สำหรับคนที่เพิ่งเริ่มต้น
kolosy

2

จากประสบการณ์ของฉันการตั้งค่าและการตั้งค่าใหม่สาย flip-flop และวงจรอื่น ๆ มีความอ่อนไหวต่อ "สัญญาณรบกวนทางไฟฟ้า" วิธีปฏิบัติที่ดีที่สุดในการหลีกเลี่ยงพฤติกรรมวงจรที่ไม่สามารถคาดเดาได้คือการแยกสายไฟที่แต่ละชิปด้วยตัวเก็บประจุที่เหมาะสม นอกจากนี้การ gating / เปิดใช้งานสายอินพุตด้วยสัญญาณนาฬิกาจะช่วยลดโอกาสสำหรับ "การเปลี่ยนแปลง" เพื่อส่งผลต่อวงจร


ฉันไม่เข้าใจบรรทัดสุดท้าย คุณช่วยอธิบายรายละเอียดได้ไหม? ขอบคุณสำหรับคำตอบ.
Whiskyjack

1

เมื่อฉันทำงานเกี่ยวกับโครงการควบคุมโหลด DTMF ฉันพบปัญหาเดียวกันกับโหลด AC หากไม่มี AC โหลดวงจร 8051 Micro-controller ของฉันก็ใช้งานได้ดี เมื่อฉันจ่ายไฟให้กับโหลด AC วงจรทั้งหมดจะทำงานในลักษณะที่หลากหลายเมื่อฉันเปิด / ปิดโหลด AC ผ่านวงจรรีเลย์ ต่อมาฉันพบว่าพื้นดินเทบนกระดาน 8051 นั้นไม่ดี ในที่สุดฉันก็เปลี่ยนบอร์ดไมโครคอนโทรลเลอร์คอนโทรลเลอร์ 8051 เก่าเป็นบอร์ดไมโครคอนโทรลเลอร์คอนโทรลเลอร์ 8051 รุ่นใหม่ที่มีกราวด์ดี ตอนนี้มันทำงานได้ดี ดังนั้นฉันคิดว่า PCB ของคุณควรมีพื้นดินที่ดี


นั่นคือปัญหา ฉันเพิ่งเริ่มงานในเวลานั้นและฉันก็ไม่รู้อะไรเกี่ยวกับเลย์เอาต์ pcb ที่ดีการแยกพื้นการแยก ฯลฯ ข้อผิดพลาดนี้ได้รับการแก้ไขนาน แต่ขอบคุณสำหรับการตอบ ฉันหวังว่ามันจะทำหน้าที่เป็นข้อมูลอ้างอิงที่ดีสำหรับผู้ที่ดิ้นรนกับปัญหาที่คล้ายกัน (+1)
Whiskyjack
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.