Saya telah belajar tentang mikrokontroler gambar untuk jangka waktu tertentu dan memiliki pengetahuan yang cukup tentang penanganan elektronik digital. Saya telah bekerja pada proyek elektronik dasar dan sekarang saya perlu mengerjakan beberapa aplikasi komersial.
Pertanyaan saya adalah tentang bagaimana merancang dan membangun sirkuit yang andal dan tahan lama. Saya membangun sirkuit pengontrol cahaya otomatis yang mengambil input dari LDR dan menampilkan nilai pembacaan analog pada panel tujuh segmen. Kemudian melakukan beberapa perhitungan dan mengontrol cahaya melalui relay. Sirkuit ini perlu dinyalakan secara permanen (24 jam sehari). Beberapa bulan pertama sirkuit bekerja dengan baik, tetapi setelah sekitar 6 bulan mulai rusak. Ini menunjukkan hal-hal yang tidak masuk akal pada layar 7 segmen (hanya menunjukkan bagian-bagian angka), kemudian menyalakan bohlam pada indikator LED tetapi tidak menyalakan relai. Ini bukan perilaku yang diharapkan. Masalahnya adalah itu tidak akan selalu bekerja seperti itu. Terkadang ini bekerja dengan sempurna. Kemudian mulai lagi kerusakan. Tidak ada urutan pasti di mana ia bekerja.
Sekarang pertanyaan saya adalah mengapa sirkuit ini berperilaku seperti ini. Saya berasumsi ini mungkin karena ia bekerja sepanjang hari tanpa jeda. Aplikasi semacam ini perlu bekerja sepanjang hari. Saya menggunakan PIC karena saya tahu tentang pic saja. Apakah atmal lebih dapat diandalkan daripada pic? (Saya bertanya karena atmal digunakan di sebagian besar aplikasi otomasi, lebih sering daripada pic yang digunakan) Saya butuh saran dari seorang ahli dalam elektronik digital. Bagaimana aplikasi industri semacam ini dibangun? Apakah ada aturan khusus untuk diikuti? Bagaimana cara mendesain sirkuit yang lebih andal? Setiap saran atau bimbingan dari seorang ahli akan sangat dihargai. Terima kasih...
EDIT
Seperti yang disarankan dalam jawaban, saya akan mengedit jawaban saya dengan menyediakan sumber daya tambahan untuk membantu mencari tahu bug dalam desain.
Di bawah ini adalah gambar yang menggambarkan bagaimana rangkaian terlihat setelah itu dibangun. Ini adalah transformator pusat 12V yang memasok daya ke sirkuit. Ini diperbaiki menggunakan penyearah setengah gelombang, kemudian diatur menggunakan IC 7805.
Di bawah ini adalah desain skematis.
Jika ada informasi tambahan yang dibutuhkan, saya akan memberikan semua yang dibutuhkan. Jika program diperlukan, saya akan menambahkannya. Programnya agak panjang. Menggunakan interupsi.
sumber
Jawaban:
Sebelum Anda mulai berpikir tentang beralih, pastikan Anda memiliki desain solid yang bagus. Anda harus mulai memikirkan semua cara Anda dapat memiliki masalah dalam desain Anda. Cara yang baik untuk melakukan ini adalah berhenti memikirkan mikroprosesor sebagai "kotak ajaib" yang Anda masukkan kode dan melakukan apa yang Anda kirim dan mulai berpikir tentang bagaimana fungsinya, pada tingkat gerbang dan tingkat sistem. Anda harus membuat mikroprosesor Anda senang.
Yang benar-benar perlu Anda lakukan adalah menemukan mekanisme kegagalan, Anda perlu tahu mengapa itu gagal. Setelah Anda tahu mengapa ini gagal, Anda dapat mengatasi masalahnya. Jika Anda tidak dapat menemukan itu maka Anda harus membuat desain Anda tak terkalahkan untuk menghentikan masalah yang terjadi. Jika tidak, Anda dapat beralih mikroprosesor dan masih memiliki masalah yang sama. Jika Anda ingin beralih, ST membuat beberapa mikroprosesor hebat yang lebih cocok untuk aplikasi industri.
sumber
Karena Anda tidak mengatakannya, saya mempertanyakan bagaimana rangkaian yang bermasalah dibangun secara fisik - karena ini terdengar seperti PERSIS jenis yang biasanya terlihat ketika seseorang yang tidak solder membangun sirkuit pada papan tempat memotong roti dan dedaunan "push to connect" selama beberapa bulan.
Jika ini menyerupai kasus Anda, ada masalah Anda; jika tidak, saya masih akan mencurigai koneksi yang buruk, tetapi itu menjadi masalah "keterampilan menyolder" lebih dari masalah "kegagalan untuk menyolder apa pun".
sumber
Anda tidak memiliki kapasitor decoupling pada pasokan PIC, tetapi pada papan kecil seperti ini Anda mungkin akan lolos begitu saja. Anda mungkin juga ingin menambahkan perlindungan kecoklatan sehingga PIC diatur ulang jika tegangan turun di bawah ambang batas.
Tapi saya akan melihat kode Anda.
Sebagai permulaan, Anda harus mengaktifkan pengawas di mikro. Jika kode berhenti bekerja dengan benar, anjing penjaga akan memulai kembali.
Kemungkinan besar, Anda baru saja menemukan bug di suatu tempat. Sebagai seorang insinyur perangkat lunak tertanam oleh profesi, saya kira itu terkait dengan interupsi, karena di situlah pemula paling sering membuat kesalahan. Sebagai seorang pemula, ada sejumlah besar kesalahan yang bisa Anda buat dalam kode, jadi itu hanya tempat pertama yang saya lihat. (Jangan tersinggung - saya membuat banyak kesalahan sendiri, termasuk ketika saya benar-benar seharusnya tahu lebih baik. ;-)
sumber
Saya setuju dengan komentar bahwa Anda memerlukan kapasitor lemak yang bagus di kedua sisi 7805. Terutama dengan relay di sana. Saya berharap ini adalah masalah root. Saya akan menambahkan kapasitor decoupling di seluruh jalur catu daya PIC juga.
Saya juga akan mencari sendi kering.
Saya juga akan memeriksa program saya secara menyeluruh, dan menggunakan fasilitas pengawas apa pun yang ada.
Namun, inilah beberapa hal menarik dari pertanyaan Anda:
Saya akan mencoba mencari tahu apa yang terjadi. Apakah PIC rusak misalnya?
Sekarang, jika saya membaca skema Anda dengan benar, maka agar masing-masing dari 7 segmen display menunjukkan sesuatu , dan sesuatu yang berbeda dan konstan pada setidaknya dua dari mereka, maka masing-masing dari Q1, Q2 dan Q3 pasti masih harus diputar aktif secara berurutan, dan output ke segmen harus benar. Ini akan memberitahu saya PIC Anda masih menjalankan setidaknya beberapa kodenya, tetapi entah bagaimana output digit telah diacak. Misalnya mungkin itu tidak diberikan angka 0-9 untuk ditampilkan, tetapi angka 17 atau serupa (yang mendapatkan tata letak digit dari lokasi memori acak).
Kamu bilang:
Melihat skematis, maka kecuali jika output PIC berdenyut atau sesuatu (bukan tidak mungkin karena itu juga port output timer), ini harus berupa kegagalan listrik (misalnya sambungan kering), masalah PSU (lihat kapasitor di atas ulang) , atau transistor Q4 (mungkin) tidak sepenuhnya jenuh. Saya belum pernah membaca lembar data PIC, tetapi BC547 memiliki I C maksimum 100mA (mudah-mudahan itu cukup untuk mengarahkan estafet dan LED Anda), dan hFE dari 120 pada tingkat semacam itu, sehingga Anda akan membutuhkan sekitar 1mA masuk 10k karena itu mungkin sedikit banyak. Saya mungkin mencoba 3k3.
Lebih lanjut, Anda tidak memiliki sarana debug yang berguna. Karena tampilan Anda selalu menyala, mungkin Anda dapat membuat titik desimal titik akhir flash sekali per detik (atau serupa) untuk menunjukkan semuanya baik-baik saja.
Jika saya harus mengambil tusukan liar di kegelapan, saya akan menebak bahwa terutama ketika relay menyala, sirkuit menarik arus yang signifikan. Karena kurangnya kapasitor besar di sisi input 7805, ketika tegangan AC melintasi nol, 7805 tidak akan menyediakan arus keluaran apa pun (dan mungkin memang menguras kapasitor itu sendiri) - dari lembar data 7805 'The tegangan input harus tetap khas 2,0 V di atas tegangan output bahkan selama titik rendah pada tegangan riak input ' . Tegangan pada PIC karena itu akan berkurang, mungkin cukup untuk menabraknya. Letakkan cakupan garis 5V di sebelah PIC dan jika Anda tidak melihat apa pun selain garis 5V yang bagus, Anda tahu Anda memiliki masalah.
sumber
Setiap kali Anda memiliki perilaku tidak menentu dalam mikroprosesor, ada dua sumber utama untuk masalah ini. 1) kapasitor "bypass" yang hilang atau tidak cukup, 2) pin mikroprosesor "mengambang".
Setiap "chip" perlu memiliki bypass cap, tepat di pin chip yang terhubung ke Vcc (+ 5v).
Pin apa pun yang tidak digunakan, harus diikat tinggi atau rendah, tetapi jangan pernah "mengambang".
Saya setuju bahwa Anda tidak mengemudi "cukup keras" Q4, saya sarankan 1K untuk R12.
sumber