Menyetel ulang / menggantung Arduino karena percikan pada garis ac

15

Ini adalah desain proyek PCB yang saya kerjakan baru-baru ini (desain pcb pertama saya). Tata letak PCB

Idenya adalah untuk mengontrol peralatan ac (kipas angin, lampu dll) tanpa relay. Saya menggunakan triac yang lebih baik daripada relay untuk aplikasi semacam itu. Saya menggunakan opto-isolator untuk isolasi lengkap dari jalur ac. Saya mencoba menjalankan Arduino menggunakan kabel USB yang terhubung ke laptop saya (dengan pengisi daya dicabut) serta adaptor dinding (12V).

Pada awalnya, sirkuit sepertinya berfungsi dengan baik. Saya dapat membuang kode ke controller dan control bulbs (On / Off dan juga redup) menggunakan UART. Saya mengirim perintah melalui UART. Namun sepertinya setiap kali ada percikan pada garis ac (saat saya mencolokkan kipas angin), micro-controller tidak terlihat bahagia. Kadang-kadang ini me-reset (yang merupakan bagian yang lebih baik dari gambar) dan lain kali hang dan saya tidak dapat mengirim perintah melalui UART. Saya tidak yakin apakah kode terbakar juga terpengaruh, tetapi kadang-kadang saya harus mengunggah ulang kode tersebut. Jika saya menghidupkan / mematikan kipas angin di ruangan lain, tidak ada efek.

Kemungkinan masalah:

1) Tidak adanya bidang tanah pada PCB.

2) Semacam EMI karena percikan.

Saya juga mencoba mencolokkan pemanas air (beban resistif 800 watt) dengan cara yang sama seperti kipas angin tetapi tidak terjadi apa-apa. Jadi, saya pikir ini adalah beban induktif yang memberikan masalah.

Solusi konstruktif apa pun untuk masalah ini akan sangat berarti.

Terima kasih.

Whiskeyjack
sumber
2
Ya, ini beban induktif. Anda memerlukan snubber & / atau MOV (atau diode TVS dua arah) untuk menekan lonjakan induktif. Biasanya ditempatkan sejajar dengan beban. Tata letak PCB yang ditingkatkan dapat membantu meminimalkan efek. Lihat electronics.stackexchange.com/q/101815/25328 untuk pertanyaan serupa meskipun papan itu menggunakan relai.
Tut
Karena Anda menggunakan triac, masalah lonjakan induktif kemungkinan akan jauh lebih buruk ketika memasang / melepas kabel kipas secara manual karena triac mati pada saat mendekati nol arus. Masalah potensial yang mungkin Anda temui adalah triac tidak mati ketika terhubung ke beban induktif. Sarankan Anda mencari di lembar data dan catatan aplikasi untuk sirkuit triac yang dirancang untuk beban AC.
Tut
Ini mungkin atau mungkin tidak membantu tetapi Anda dapat mencoba menambahkan timer anjing penjaga ke perangkat lunak Arduino Anda.
Axis
@Tut - Terima kasih atas semua saran Anda. Saya membaca tautan yang Anda poskan. Saya mencoba menerapkannya di PCB saya berikutnya. Akan memposting tata letak papan sebelum pergi ke produksi sehingga kalian dapat memberikan umpan balik dan menunjukkan kesalahan / koreksi.
Whiskeyjack

Jawaban:

11

Anda tidak menunjukkan skematis, tetapi saya tidak melihat tutup pintasan yang jelas atau tutup reservoir catu daya lokal. Itu dan kurangnya landasan yang baik sangat mungkin menyebabkan masalah.

Seperti yang orang lain katakan, Anda juga harus meninggalkan jarak isolasi yang tepat antara bagian AC dan DC, dan setidaknya mencoba membuat sedikit dari tanah pesawat.

Anda memiliki papan besar dengan beberapa komponen dan pin pitch yang besar, sehingga merutekan sebagian besar jejak pada lapisan atas harus cukup mudah. Anda kadang-kadang harus pergi ke lapisan bawah karena secara umum sirkuit tidak dapat dialihkan dalam satu pesawat. Namun, Anda dapat menjaga agar jejak di lapisan bawah tetap pendek. Anggap mereka sebagai "jumper" yang cukup panjang untuk menghubungkan dua trek pada lapisan atas yang Anda tidak dapat hubungkan di pesawat. Ukuran pesawat darat bukanlah berapa banyak pulau yang ada di dalamnya, tetapi dimensi terpanjang dari pulau mana pun. Jaga agar jumper tetap pendek dan tidak rata.

Namun, Anda benar-benar harus mengenakan topi pintas pada setiap umpan daya ke setiap IC. Ini harus topi keramik kecil secara fisik dekat dengan IC dengan loop keseluruhan sekecil mungkin. 1 μF 0805 hampir benar. Tidak hanya itu akan lebih murah dan berkinerja lebih baik daripada yang setara melalui lubang tutup, tetapi juga akan lebih mudah disolder.

Karena daya DC datang dari tempat lain dan oleh karena itu impedansinya curiga, letakkan penutup elektrolit ukuran yang layak tepat di tempat daya masuk papan. Beberapa 100 μF harus melakukannya.

Olin Lathrop
sumber
Terima kasih Olin. Saya sedang membaca posting Anda tentang pertanyaan serupa lainnya dan saya harus belajar banyak. Sepertinya meninggalkan pesawat darat adalah kesalahan terbesar. Saya akan mendesain ulang PCB saya dengan bidang tanah di kedua permukaan dan juga mencoba untuk menempatkan komponen dengan cara yang lebih rapi seperti yang ditunjukkan oleh orang lain. Sekali lagi, saya sangat menghargai bantuan Anda.
Whiskeyjack
1
@ user3455594 Jangan tinggalkan kapasitor pintas tersebut, terutama pada Arduino.
Tut
@Olin - Tindakan apa yang Anda sarankan untuk melindungi triac dari lonjakan tegangan setiap kali perangkat dihidupkan atau dimatikan? Setelah membaca, saya menemukan bahwa snubber digunakan paling umum untuk menekan lonjakan yang masuk. Namun penggunaan utama snubber terkait untuk mencegah pemicu salah triac dan bukan triac protection. MOV adalah pilihan lain. Apa pendapat Anda tentang ini? Referensikan tautan ini untuk referensi ke use case saya.
Whiskeyjack
20

Anda harus menghormati isolasi tegangan Anda. Cara Anda menempatkan (dan merutekan) resistor R16, R13 R10, R2, R31, dan R4 mengkompromikan penghalang isolasi yang dibuat oleh opto-isolator Anda. Di bawah ini saya telah menandai tata letak yang ada dengan jalur isolasi Anda, yang cukup buruk:

masukkan deskripsi gambar di sini

Memiliki zona isolasi tunggal yang selebar mungkin (lebar OPTO-isolator Anda). Jaga sirkuit garis di sisi garis, dan sirkuit terisolasi di sisi yang terisolasi. Lihat gambar di bawah untuk saran.

masukkan deskripsi gambar di sini

W5VO
sumber
Itu akan berguna, dan mungkin membantu, tetapi apakah Anda benar-benar percaya ini sebagai sumber seluruh masalah, dan bahwa solusi ini akan sepenuhnya menyelesaikannya?
Adam Davis
1
@AdamDavis Tidak, saya tidak dapat menjamin bahwa ini adalah satu-satunya penyebab masalah. Faktanya, saran Olin dan Andy pasti harus diperhatikan. Namun, ini merupakan pertimbangan keamanan yang penting, dan saya juga bisa melihat perakitan yang kurang sempurna mempermasalahkan masalah ini.
W5VO
@ W5VO - Saya telah membuat layout lain . Bisakah Anda melihatnya sekali dan memberikan saran berharga Anda? Terima kasih sebelumnya.
Whiskeyjack
6

Pesawat tanah, pesawat tanah, pesawat tanah dan sangat sedikit alasan. Lihatlah bagaimana Anda bisa melakukan banyak hal pada papan sirkuit ini: -

masukkan deskripsi gambar di sini

Saya menghabiskan sekitar 5 menit menandai (dengan merah terang) jejak biru yang bisa merah tanpa kerja otak sama sekali.

Saya akan memo dan mulai lagi.

Andy alias
sumber
4
@ Kolosy Kita semua mulai di suatu tempat dan kita semua melakukan tata letak yang buruk ketika pertama kali memulai. Ini adalah saran gratis terbaik yang akan didapat OP dan jika Anda pikir saya terlalu kasar maka tolong, saya bersikeras, beri tanda pada jawaban ini kepada moderator.
Andy alias
1
Terima kasih Andy. Saya sudah meletakkan ground plane di desain kedua saya. Apakah Anda pikir ini adalah satu-satunya masalah? PS - Saya tidak menemukan balasan Anda keras dengan cara apa pun. Saya menghargai bantuan Anda.
Whiskeyjack
4
@ Kolosy Jujur, saya tidak berpikir jawabannya menghina (dan ini mungkin karena saya setuju dengan vonis Andy).
W5VO
1
@ Kolosy: Andy mengatakan itu seperti itu, dan adalah sesuatu yang OP perlu dengar dalam istilah yang jelas. Dan ya, saya setuju dengan putusannya juga.
Olin Lathrop
3
@Andyaka mungkin memang seperti itu, tapi saya tidak melihat gunanya memasukkan "tidak ada alasan" dan "hampir tidak ada otak yang berfungsi." Yang jelas dan tidak berotak bagimu, bukan untuk orang-orang yang baru memulai.
kolosy
2

Dalam pengalaman saya, mengatur dan mengatur ulang jalur, sandal jepit, dan sirkuit lain, sangat rentan terhadap "gangguan listrik." Cara praktis terbaik untuk menghindari perilaku rangkaian yang tidak terduga, adalah dengan memisahkan kabel listrik di setiap chip, dengan kapasitor yang sesuai. Selain itu, gating / mengaktifkan jalur input dengan sinyal clock, akan mengurangi peluang "transien" mempengaruhi sirkuit.

Guill
sumber
Saya tidak mengerti baris terakhir. Bisakah Anda jelaskan? Terima kasih atas jawabannya.
Whiskeyjack
1

ketika saya sedang mengerjakan proyek kontrol beban berbasis DTMF, saya menemukan masalah yang sama dengan beban AC. Tanpa beban AC, sirkuit 8051 Micro-controller saya berfungsi dengan baik. Ketika saya menyalakan beban AC, seluruh rangkaian berperilaku dalam berbagai cara ketika saya AKTIFKAN / MATI beban AC melalui sirkuit relai. Kemudian saya menemukan bahwa tuangkan tanah pada papan 8051 tidak baik. Akhirnya saya mengganti papan micro-controller 8051 yang lama dengan 8051 micro-controller board yang baru dengan ground pour yang bagus. Sekarang berfungsi dengan baik. Oleh karena itu, saya berpikir bahwa PCB Anda harus memiliki tanah yang baik.

kiranvarma
sumber
Persisnya itulah masalahnya. Yah saya baru saja memulai pekerjaan pada waktu itu dan saya tidak tahu apa-apa tentang tata letak pcb yang baik, ground pour, isolasi dll. Bug ini telah lama diperbaiki tetapi terima kasih telah menjawabnya. Saya berharap ini berfungsi sebagai referensi yang bagus untuk orang-orang yang berjuang dengan masalah serupa. (+1).
Whiskeyjack