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:
- 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.
- 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 ...).
- 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!
sumber
Jawaban:
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.
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.
sumber
Allegro memiliki sejumlah IC sensor saat ini, berdasarkan sensor efek Hall. The ACS712 dapat mendeteksi arus hingga 50 A.
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.
sumber
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.
sumber
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.)
sumber