Mengapa menghubungkan perangkat arus tinggi ke sirkuit digital saya menyebabkan perilaku aneh?

19

Saya punya

  • Arduino
  • mikrokontroler
  • hal digital lainnya

dan ketika saya menghubungkan a

  • motor
  • pompa
  • pemanas
  • hal arus tinggi lainnya

Saya mengalami

  • pengukuran ADC aneh
  • reboot
  • crash
  • kesalahan dalam komunikasi digital
  • perilaku tak terduga lainnya

Catu daya saya berukuran tepat untuk memberi daya pada semua perangkat ini. Saya tidak punya osiloskop jadi saya tidak bisa melihat banyak apa yang sebenarnya terjadi di sirkuit. Apa kemungkinan penyebabnya?

Phil Frost
sumber

Jawaban:

18

Tanpa perincian, mustahil memberikan jawaban spesifik. Lihatlah hal-hal ini dengan cermat:

  1. Landasan . Ini persis gejala yang Anda dapatkan dari strategi landasan yang buruk secara keseluruhan. Tanpa diagram blok yang menunjukkan kekuatan dan dasar segala sesuatu yang terhubung, mustahil untuk memberikan saran khusus. Namun, dengan hati-hati visualisasikan semua arus balik tanah, dan pertimbangkan bahwa setiap arus pada konduktor tanah akan menyebabkan ground offset.

  2. Decoupling lokal . Pastikan ada 1 μF atau lebih tutup keramik sedekat mungkin antara masing-masing pasangan pin daya dan arde dari setiap chip. Koneksi ini perlu pendek, karena bahkan sedikit induktansi seri secara signifikan mengurangi efektivitasnya.

  3. Kemampuan lonjakan catu daya. Pastikan ada cukup kapasitansi reservoir massal pada catu daya untuk menangani transien untuk waktu apa pun yang diperlukan catu daya itu sendiri untuk mengejar ketinggalan dan menghasilkan lebih banyak arus.

  4. Dioda tangkap induktif. Pastikan benar-benar ada kemungkinan beban induktif, yang mencakup semua beban eksternal, memiliki dioda polaritas terbalik. Untuk voltase hingga 50-100 V atau lebih, ini harus Schottky karena kecepatan tinggi mereka. Ini berlaku untuk beban yang digerakkan oleh DC. Karena mereka selalu didorong dengan satu polaritas, dioda dapat dengan aman menyingkat polaritas lainnya. Seperti yang ditunjukkan Tut dalam komentar, untuk beban AC, snubber yang lebih rumit dan / atau sirkuit kliping perlu digunakan.

Olin Lathrop
sumber
2
Dioda tangkap induktif ketika beban induktif digerakkan oleh DC. Untuk AC Anda memerlukan sesuatu seperti MOVs & / atau snubber.
Tut
@Tut: Poin bagus. Saya telah memperbarui jawaban saya sesuai dengan itu.
Olin Lathrop
15

Pertimbangkan dua sirkuit ini:

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Apakah mereka sama? Dalam model elemen disatukan mereka. Namun, model kami mengabaikan apa yang mungkin menjadi fakta yang relevan: kabel nyata memiliki hambatan. Mari kita perkenalkan skema pasangan bahwa model itu:

skema

mensimulasikan rangkaian ini

Pertimbangkan di sirkuit di sebelah kanan apa yang terjadi ketika arus yang ditarik oleh motor berubah. Satu saat itu mati dan menggambar 0A, lalu menyala, dan menggambar 1A. 1A ini harus mengalir melalui R1 dan R3. Menurut hukum Ohm , maka harus ada penurunan tegangan pada resistor ini1SEBUAH1Ω=1V. Dengan 1V dari tegangan suplai hilang pada masing-masing R1 dan R3, dari perspektif mikrokontroler, tegangan suplai tiba-tiba 10V, bukan 12V.

Banyak elektronik digital tidak suka ketika tegangan suplai mereka berubah dengan cepat. Masalah tambahan terjadi ketika ada beberapa perangkat yang mencoba untuk berbicara satu sama lain melalui bus digital, tetapi arus yang tinggi di rel pasokan memberikan masing-masing perangkat gagasan yang berbeda tentang apa "tanah" itu. Lihatlah "tanah" untuk MCU, dan motor dalam hal ini. Semua resistor memiliki 1A di dalamnya, dan dengan demikian 1V melintasi mereka. "Ground" di MCU berbeda 1V dari "ground" di motor! Jika ini adalah perangkat digital yang menandakan "0" dengan membuat tegangan sama dengan "ground", mereka tidak akan berkomunikasi dengan baik ketika mereka tidak bisa sepakat tentang apa "ground" itu.

Solusi untuk ini adalah menjalankan kedua koneksi catu daya untuk setiap perangkat sepenuhnya kembali ke baterai atau regulator tegangan, dan membuat semua koneksi catu daya untuk setiap perangkat di sana. Ini adalah situasi yang dimodelkan dalam sirkuit di sebelah kiri. Di sini, ketika motor menyala, akan ada arus tinggi di R5 dan R7. Akan ada penurunan voltase di sini, tetapi motor tidak akan keberatan. Sementara itu, arus di R6 dan R8 tidak berubah, dan begitu juga tegangannya. Dengan demikian, tegangan suplai yang terlihat oleh mikrokontroler adalah konstan.

Anda tidak harus melakukan ini sepanjang waktu, untuk setiap perangkat, tetapi Anda perlu memikirkan di mana arus tinggi akan berjalan ketika sirkuit Anda menyertakan perangkat semacam itu. Ingatlah bahwa semua kabel Anda memiliki hambatan, dan dengan demikian akan mengalami penurunan tegangan ketika arus tinggi melewatinya. Kemudian rencanakan kabel atau jejak Anda sehingga arus tinggi tidak mengalir melalui pasokan untuk komponen sensitif, yang menyebabkan masalah kebisingan.

Ini hanyalah satu penjelasan yang mungkin. Jawaban lain pasti akan memberikan kemungkinan tambahan.

Phil Frost
sumber