Bagaimana mendeteksi arus tinggi

9

Saya sedang mengerjakan proyek yang melibatkan menjalankan motor DC yang digunakan untuk menaikkan / menurunkan kaca jendela di dalam kendaraan.

Saat berjalan, motor menarik arus sekitar 1.5A. Namun, ketika jendela mencapai ujung slider dan motor tidak bisa lagi menaikkan / menurunkan kaca, itu mulai menggambar hingga 15A sampai Anda melepaskan tombol.

Saya ingin menggunakan mikrokontroler AVR untuk mengontrol motor ini dan ingin menghentikan motor ketika jendela mencapai penghalang. Saya berhasil menemukan tiga solusi sejauh ini:

  1. Gunakan sakelar yang akan memicu dan menginformasikan mikrokontroler ketika jendela mencapai penghalang. Saya ingin menghindari ini karena ini berarti menginstal dua sakelar per jendela dan menjalankan kabel tambahan ke mikrokontroler.
  2. Gunakan fungsi pengatur waktu yang akan mematikan motor setelah waktu tertentu. Ini tidak berlaku karena tegangan dapat bervariasi dan motor mungkin berubah lebih cepat atau lebih lambat dari biasanya. Selain itu, jendela mungkin berada dalam posisi yang tidak dikenal saat memulai timer (sepanjang jalan, di tengah ...).
  3. Gunakan semacam detektor arus tinggi dan rutekan ke input mikrokontroler, beri tahu program ketika ambang saat ini tercapai (katakanlah 5A). Sesuatu seperti transistor, relay atau perangkat sejenis yang dapat menangani arus setinggi ini pada input.

Saya cukup banyak pemula ketika datang ke elektronik, jadi saya berpikir jika ada cara untuk mendeteksi arus tinggi ini (motor berjalan ~ 12V) dan memberikan sinyal ini ke mikrokontroler (yang berjalan pada 5V).

Saya akan menghargai bantuan apa pun. Terima kasih!

Nikola Malešević
sumber

Jawaban:

6

Ini seharusnya cukup mudah. Anda dapat mendeteksi perbedaan antara 1.5A dan 15A menggunakan resistor sederhana. Nilai 0,3 ohm akan memberikan 0,45v pada 1,5A dan 4,5v pada 15A.

masukkan deskripsi gambar di sini

Pin input digital pada mikrokontroler akan membaca 0 at 1.5A, dan 1 at 15A.

Anda bisa menyambungkan ini langsung ke pin input mikrokontroler, tetapi mungkin lebih baik menambahkan sedikit penyaringan dan perlindungan.

RF dan C1 menyediakan filter low-pass untuk membuat tegangan lebih stabil.

D1 memberikan perlindungan tegangan berlebih jika arus jauh melebihi 15A.

Roket
sumber
Sebuah motor 12V yang berhenti di 15A memiliki ketahanan jangkar 0,8 Ω sehingga akan ada sekitar 3,3V melintasi R1 yang akan menghilang hampir 36W!
MikeJ-UK
@ MikeJ-UK - Berapa lama? MCU akan mematikan motor dalam satu atau dua milidetik. Disipasi daya yang khas hanya 0,675W.
Rocketmagnet
2
Benar saya kira, selama OP tidak menetapkan breakpoint yang tidak nyaman di debugger-nya!
MikeJ-UK
@ MikeJ-UK - Haha! Iya. Saya telah membakar motor sebelumnya karena breakpoints. Tapi masalah itu sama apa pun yang digunakan untuk merasakan arus. Jangan lupa bahwa pemborosan motor akan menjadi 180W saat kios!
Rocketmagnet
10

Allegro memiliki sejumlah IC sensor saat ini, berdasarkan sensor efek Hall. The ACS712 dapat mendeteksi arus hingga 50 A.

masukkan deskripsi gambar di sini

ACS712ELCTR-20A-T memiliki sensitivitas 100 mV / A, sehingga Anda dapat menggunakan ADC mikrokontroler untuk mendeteksi kapan ambang 500 mV (5 A) tercapai, atau lebih baik, menggunakan komparator, yang mengganggu mikrokontroler. Banyak AVR memiliki on-chip komparator, dengan interupsi khusus ditugaskan untuk itu.

ACS712 memiliki ketahanan jalur indera saat ini hanya 1,2 mΩ , sehingga bahkan pada 15 A itu hanya akan menghilangkan 270 mW , yang dapat bertahan selamanya. Itulah keuntungan utama dari resistor pengertian arus yang lebih tradisional seperti pada jawaban Rocketmagnet. Di sana Anda memerlukan resistensi yang relatif tinggi untuk mendapatkan level tinggi pada 15 A. Mike menghitung bahwa resistor indera Rocketmagnet akan menghilang 36 W ketika motor berhenti, jadi waktunya sangat penting (untuk sesaat mengabaikan disipasi 131 W di motor). Meski begitu, tipe 5 W direkomendasikan untuk resistor akal.

stevenvh
sumber
Pengaturan waktu sangat penting, apa pun solusinya. Semua orang berfokus pada disipasi resistor 36W, tetapi sepenuhnya melupakan disipasi motor 180W! Motor itu akan cepat terbakar.
Rocketmagnet
@ Roket - Saya memang menyebutkan motor, hanya milik saya 131 W, yang cukup tinggi. Anda benar, bahwa Anda harus merespons dengan cepat, tetapi setidaknya sensor Allegro tidak akan menjadi masalah. Saya menyebutkan 5 W karena sebagian besar resistor tidak memungkinkan daya> 10 x nominal, bahkan untuk sesaat. Saya pikir resistor akal Anda dapat dipilih lebih kecil, karena sebagian besar pengendali akan melihat 0,7 Vcc sudah setinggi, dan kemudian pada 15 A itu 0,23 & Omega ;.
stevenvh
1

Ada hal-hal ini disebut sakelar buluh magnetik. Pada dasarnya seperti relay; arus menyebabkan bidang yang menutup beberapa kontak. Jika Anda melempar satu seri dengan motor, Anda harus dapat menemukan satu yang akan tetap terbuka pada 1,5 atau 2A, tetapi ditutup pada 15A. Hubungkan salah satu kontak sakelar, tarik ujung satunya ke logika + V Anda, dan voila, sinyal input digital yang terisolasi.

JustJeff
sumber
2
Apakah Anda memiliki tautan untuk saklar buluh yang dapat beralih 15 A?
stevenvh
saklar buluh tidak mengubah arus 15A. Arus 15A mengaktifkan sakelar buluh. Saklar itu sendiri mengalihkan sejumlah kecil arus pada tegangan logika. Ini memberikan input digital ke mikro yang mematikan apa pun yang dihidupkannya untuk memasok 15A.
JustJeff
0

Bukan benar-benar solusi elektronik tetapi mekanis: Jika Anda memiliki kendali atas mekanika, Anda dapat menggunakan solusi sakelar di motor, misalnya dengan mentransfer dari gear kecil ke besar yang akan berubah kurang dari satu kali selama seluruh proses. Lekuk pada gigi ini bisa memicu sakelar. (Ini adalah bagaimana pembuka pintu garasi kami melakukannya.)

mcandril
sumber