Saya membuat pengontrol untuk sistem 12 V menggunakan mikrokontroler Arduino Uno. Untuk output saya menggunakan pelindung relay untuk mengganti komponen 12 V. Saya memiliki 12 toggle switch yang menyalakan beberapa komponen 12 V dalam sistem dan saya ingin menggunakan sinyal pemicu dari switch yang sama ini untuk mengirim ke input digital Arduino. Saya tahu bahwa Arduino hanya dapat menangani 5 V maks. Apa cara terbaik untuk mengecilkan 12 V yang keluar dari sakelar ke 5 V untuk input?
EDIT: Sistem ini untuk digunakan dalam mobil. Apakah ampere aki mobil perlu diturunkan entah bagaimana agar tidak meledakkan komponen?
Jawaban:
Kabar baik! Ini akan menjadi murah! :-)
Pembagi resistor sederhana akan membawa 12 V ke bawah ke 5 V yang bisa dicerna oleh Arduino. Tegangan output dapat dihitung sebagai
Nilai resistor di kisaran 10 kΩ adalah pilihan yang baik. Jika R2 Anda adalah 10 kΩ maka R1 harus menjadi 14 kΩ. Sekarang 14 kΩ bukan nilai standar, tetapi 15 kΩ adalah. Tegangan input Anda akan menjadi 4,8 V, bukan 5 V, tetapi Arduino akan melihatnya sebagai level tinggi. Anda juga memiliki sedikit ruang kepala jika 12 V harus agak terlalu tinggi. Bahkan 18 kΩ masih akan memberi Anda 4.3 V yang cukup tinggi, tetapi kemudian Anda harus mulai memikirkan 12 V agak terlalu rendah. Apakah voltase masih terlihat tinggi? Saya akan tetap dengan 15 kΩ.
sunting
Anda menyebutkan lingkungan otomotif, dan kemudian Anda memang membutuhkan perlindungan ekstra. Mobil 12 V tidak pernah cukup 12 V, tetapi sebagian besar waktu lebih tinggi, dengan puncak beberapa volt di atas nominal 12 V. (Sebenarnya nominal lebih seperti 12.9 V, pada 2.15 V per sel.) Anda dapat menempatkan zener 5 V dioda secara paralel dengan R2, dan ini harus memotong tegangan lebih tinggi dari zener's 5 V. Tapi tegangan zener bervariasi dengan arus, dan pada arus input rendah resistor memberi Anda itu akan terputus pada tegangan yang lebih rendah. Solusi yang lebih baik adalah memiliki dioda Schottky antara input Arduino dan suplai 5 V. Maka setiap tegangan input lebih tinggi dari sekitar 5,2 V akan membuat dioda Schottky melakukan, dan tegangan input akan terbatas pada 5,2 V. Anda benar-benar membutuhkan dioda Schottky untuk ini, dioda PN umum memiliki 0.
Optocoupler
Michael yang lebih baik adalah alternatif yang baik, meskipun sedikit lebih mahal. Anda akan sering menggunakan optocoupler untuk mengisolasi input dari output, tetapi Anda juga dapat menggunakannya untuk melindungi input seperti yang Anda inginkan di sini.
Cara kerjanya: arus input menyala LED inframerah internal, yang menyebabkan arus keluaran melalui phototransistor. Rasio antara input dan arus keluaran disebut CTR , untuk Current Transfer Ratio. The CNY17 memiliki minimal CTR 40%, yang berarti Anda perlu 10 mA masukan untuk 4 mA output. Mari kita pergi untuk input 10 mA. Maka R1 harus (12 V - 1,5 V) / 10 mA = 1 kΩ. Resistor output harus menyebabkan penurunan 5 V pada 4 mA, maka itu harus 5 V / 4 mA = 1250 Ω. Lebih baik memiliki nilai yang sedikit lebih tinggi, toh tegangan tidak akan turun lebih dari 5 V. 4,7 kΩ akan membatasi arus sekitar 1 mA.
Vcc adalah suplai 5 V Arduino, Vout pergi ke input Arduino. Perhatikan bahwa input akan terbalik: akan rendah jika 12 V ada, tinggi ketika tidak. Jika Anda tidak menginginkannya, Anda dapat menukar posisi output optocoupler dan resistor pull-up.
sunting 2
Bagaimana solusi optocoupler tidak memecahkan masalah kelebihan tegangan? Pembagi resistor adalah ratiometrik: tegangan keluaran adalah rasio tetap dari input. Jika Anda telah menghitung 5 V pada 12 V in, maka 24 V in akan memberikan 10 V out. Tidak OK, karenanya dioda perlindungan.
Dalam rangkaian optocoupler Anda dapat melihat bahwa sisi kanan, yang terhubung ke pin input Arduino tidak memiliki tegangan lebih tinggi dari 5 V sama sekali. Jika optocoupler aktif maka transistor akan menarik arus, saya menggunakan 4 mA pada contoh di atas. 1,2 kΩ akan menyebabkan penurunan tegangan 4,8 V, karena Hukum Ohm (resistansi kali saat ini = tegangan). Maka tegangan output akan menjadi 5 V (Vcc) - 4,8 V melintasi resistor = 0,2 V, itu level yang rendah. Jika arus akan lebih rendah drop tegangan akan lebih kecil juga, dan tegangan output akan naik. Arus 1 mA, misalnya, akan menyebabkan penurunan 1,2 V, dan output akan menjadi 5 V - 1,2 V = 3,8 V. Arus minimum adalah nol. Maka Anda tidak memiliki tegangan melintasi resistor, dan output akan menjadi 5 V. Itu maksimum, ada '
Bagaimana jika tegangan input akan menjadi terlalu tinggi? Anda secara tidak sengaja menghubungkan baterai 24 V dan bukannya 12 V. Kemudian arus LED akan berlipat ganda, membentuk 10 mA hingga 20 mA. 40% CTR akan menyebabkan arus keluaran 8 mA dan bukannya 4 mA yang dihitung. 8 mA melalui resistor 1,2 kΩ akan menjadi penurunan 9,6 V. Tetapi dari pasokan 5 V itu akan menjadi negatif, dan itu tidak mungkin; Anda tidak bisa lebih rendah dari 0 V di sini. Jadi sementara optocoupler sangat ingin menggambar 8 mA, resistor akan membatasi itu. Arus maksimum yang melaluinya adalah ketika 5 V penuh melewatinya. Outputnya akan benar-benar 0 V, dan 5 V / 1.2 kΩ saat ini = 4.2 mA. Jadi catu daya apa pun yang Anda pasang arus keluaran tidak akan lebih tinggi dari itu, dan tegangan akan tetap antara 0 V dan 5 V. Tidak ada perlindungan lebih lanjut yang diperlukan.
Jika Anda mengharapkan tegangan lebih, Anda harus memeriksa apakah LED optocoupler dapat menangani peningkatan arus, tetapi 20 mA tidak akan menjadi masalah bagi sebagian besar optocoupler (mereka sering diberi nilai maksimum 50 mA), dan selain itu, itu untuk double tegangan input, yang mungkin tidak akan terjadi IRL.
sumber
Cara yang baik untuk mengisolasi sinyal sakelar 12V adalah dengan melewatkannya melalui coupler opto. Sirkuit akan dikonfigurasi mirip dengan yang berikut ini.
Vi dalam diagram mewakili 12V di sirkuit Anda yang diaktifkan oleh saklar Anda (S1). Pilih R1 untuk membatasi arus melalui bagian D1 dari coupler opto ke tingkat yang berada dalam peringkat komponen yang Anda pilih.
Opto coupler bukan komponen tercepat di dunia, terutama yang termurah, tetapi untuk kasus aksi lambat seperti sakelar yang dikendalikan manusia, kecepatan coupler tidak terlalu diperhatikan.
sumber
Anda juga dapat menggunakan dioda dan resistor, sebagai berikut:
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
Saya akan membuat resistor sesuatu yang cukup kaku, kalau tidak Anda akan tenggelam banyak daya dari rangkaian ini. Keindahan sirkuit ini (dibandingkan dengan pembagi tegangan) adalah bahwa ia tidak peduli apakah tegangan asli Anda adalah 12V, 14V, atau 15V: itu akan menjadi 5V (sebenarnya 5.2-5.3V tergantung pada dioda) terlepas dari tegangan input.
sumber
Untuk independensi tegangan, gunakan resistor untuk mengatur arus dan Zener untuk mengatur tegangan, seperti ini:
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
Dengan resistor 30k, ini akan menghasilkan 4.99V dan hanya menggunakan sekitar 234uA @ 12Vin.
Dalam hal ini:
R1 mengkonsumsi 234uA x (12V - 4.99V) = 1.64mW
D1 mengkonsumsi 234uA x 4.99V = 1.17mW
Total konsumsi daya: 2.81mW (saat input tinggi)
sumber
Sedikit terlambat tetapi di mobil saya saya menggunakan LM7805. Bekerja dengan baik dan murah.
sumber