Bagaimana cara membaca tegangan tinggi pada mikrokontroler?

17

Saya ingin membaca tegangan tinggi, seperti ~ 50V, menggunakan mikrokontroler. Saya berencana untuk menempatkan ini sebagai input ke dalam garis A / D mikrokontroler. Tapi tentu saja, Anda seharusnya tidak memiliki tegangan setinggi itu pada input mikrokontroler atau itu akan menggoreng.

Bagaimana saya bisa membaca tegangan tinggi? Yang utama adalah saya harus turunkan tegangan sebelum membacanya. Apa yang perlu saya pertimbangkan ketika mengecilkan tegangan ini?

Terima kasih sebelumnya!

Sunting: Saya perhatikan dalam lembar data PIC18 yang mengatakan "Impedansi maksimum yang disarankan untuk sumber analog adalah 2,5 kOhms." Bagaimana hal ini memengaruhi cara saya menurunkan tegangan, baik dengan pembagi resistif, dll.?

Mendongkrak
sumber
1
Maksud Anda dengan mikrokontroler? Catatan impedansi tentang sumber analog mungkin berarti bahwa jika sumber lebih tinggi dari 2.5K, input pada PIC akan mulai memuatnya. Anda biasanya menginginkan impedansi sumber setidaknya sepuluh kali lebih kecil dari impedansi beban, sehingga tidak terganggu oleh impedansi beban. Ini bisa menjadi cara bundaran untuk mengatakan bahwa input menyediakan 25K impedansi. Jadi kita akan membuat pembagi tegangan sekitar 2K "tinggi". Ini berarti 25 mA akan mengalir. Jika itu tidak dapat diterima, Anda dapat menggunakan pembagi yang jauh lebih resistif, dan buffer Z tinggi.
Kaz
1
Menggabungkan jawaban di bawah ini, saya telah menggunakan pembagi resistor untuk mengecilkan tegangan dan menempatkan output pembagi resistor melalui op-amp pengikut voltase. Op-amp ini kemudian bertindak sebagai buffer impedansi keluaran rendah. Dengan cara ini, saya dapat menggunakan resistor bernilai tinggi untuk membatasi kehilangan daya pada resistor tersebut.
Jack

Jawaban:

24

Pembagi tegangan resistif sederhana akan mencapai apa yang Anda inginkan.

Pembagi Tegangan

Rumus untuk menghitung tegangan output adalah:

Rumus

Jadi jika kita mengasumsikan tegangan input Anda berkisar dari 0-50V, kita perlu membaginya dengan 10 untuk mencapai 0-5V. Jika kita juga berasumsi bahwa kita ingin memuat tegangan input dengan 100kΩ, maka perhitungannya akan seperti:

Vout / Vin = R2 / 100kΩ

0,1 = R2 / 100kΩ -> R2 = 10kΩ

R1 = 100kΩ - R2 = 90kΩ

Jadi R1 = 90kΩ dan R2 = 10kΩ

Untuk ADC yang membutuhkan impedansi sumber maksimum, Anda harus memastikan impedansi pembagi tegangan di bawah level ini. Impedansi pada pembagi dapat dihitung sebagai R1 || R2.

Untuk <2.5kΩ, hal di atas tidak akan memenuhi persyaratan ini sebagai 10kΩ || 90kΩ = 9kΩ
Jika kita menggunakan 9kΩ dan 1kΩ, kita mendapatkan 1 / (1/1000 + 1/9000) = 900Ω

Ingatlah, semakin rendah resistansi, semakin tinggi resistor peringkat watt yang Anda butuhkan. 50V / 1k = 50mA -> 50mA * 45V = 2.25W melintasi resistor atas (0.25W melintasi bagian bawah).
Dalam kasus ini, yang terbaik adalah menggunakan buffer opamp di antara pembagi resistansi tinggi dan ADC. Atau gunakan pembagi 2kΩ dan 18kΩ, yang tidak terlalu haus daya seperti versi 1k / 9k.

Oli Glaser
sumber
3
2.25W adalah banyak daya yang terbuang untuk melakukan pengukuran tegangan.
Nick Johnson
Ya, saya setuju - Anda akan menggunakan buffer yang disebutkan (dan dijelaskan oleh Steven) dalam banyak kasus.
Oli Glaser
50V / 1k. Bagaimana? Bukankah resistor itu seri?
Adithya
Pertanyaan yang sama di sini ... bagaimana 50v / 1k? Lebih jauh dari mana datangnya 45v ini?
Prasan Dutt
@ OliGlaser bukan kata tentang kapasitor? Input ADC, jika digerakkan dengan resistansi tinggi, dapat mendistorsi sinyal. Sebenarnya itu benar. Jadi minimum adalah dengan menggunakan kapasitor kecil secara paralel dengan resistor yang lebih rendah.
Gregory Kornblum
19

Untuk menambah jawaban Oli:

masukkan deskripsi gambar di sini

Dioda Schottky melindungi input opamp terhadap tegangan lebih jika seandainya tegangan input akan melebihi batas maksimum 50 V. Ini adalah solusi yang lebih baik daripada zener 5 V yang sering ditempatkan secara paralel dengan resistor 3 kΩ. Tegangan zener 5 V memerlukan beberapa mA, jika arus jauh lebih rendah tegangan zener akan lebih rendah juga, dan dioda dapat menjepit input misalnya 4 V, atau bahkan lebih rendah.

Resistor 27 kΩ akan memungkinkan 2 mA, bukankah itu cukup untuk zener? Aku mungkin, tapi bukan itu yang akan didapat zener; sebagian besar dari 2 mA akan melewati resistor 3 kΩ, hanya menyisakan puluhan hingga ratusan μA untuk zener, yang terlalu sedikit.

Pilih dioda Schottky dengan arus bocor balik yang rendah, sehingga tegangan suplai 5 V tidak terlalu mempengaruhi pembagi.

stevenvh
sumber
Maafkan kenaifan saya di sini tetapi dioda Schottky melindungi opamp dari tegangan berlebih pada rel 50V, akankah kondisi ini menaikkan rel 5V? Berpikir untuk melakukan ini tetapi khawatir tentang perangkat lain di rel 5V (PIC, Arduino, dll)
GreenaGiant
Tidak jika arusnya kecil. Tentunya jika Anda menghubungkan sumber impedansi rendah maka tegangan akan naik. Tetapi resistor 27k memastikan arusnya kecil.
Martin
6

Untuk pengukuran yang terisolasi, Anda dapat menggunakan transduser tegangan, misalnya LEM's LV-25 atau serupa.

Tetapi cara yang jauh lebih mudah jika Anda tidak memerlukan isolasi adalah dengan hanya menggunakan pembagi tegangan :

masukkan deskripsi gambar di sini

Jim Paris
sumber
6

Untuk mengatasi masalah impedansi sumber Anda, Anda dapat terlebih dahulu menggunakan pembagi tegangan dan kemudian menggunakan opamp standar. Itu harus memiliki impedansi keluaran yang cukup rendah untuk Anda. Ini adalah catatan aplikasi yang saya posting kemarin menggunakan opamps untuk mengubah level tegangan untuk ADC.

http://www.ti.com/lit/an/slyt173/slyt173.pdf

Guy Perangkat Keras
sumber
3

Cari sesuatu yang disebut pembagi resistor . Dengan menggunakan dua resistor, Anda dapat mengalikan tegangan dengan konstanta antara 0 dan 1. Dalam kasus Anda, Anda ingin menurunkan skala 50 V ke level mikrokontroler. Katakanlah mikro berjalan pada 5 V, jadi Anda ingin skala input dengan 0,1. Ini bisa dilakukan dengan dua resistor, yang pertama memiliki 9x hambatan yang kedua. Sinyal masuk ke yang pertama. Ujung lainnya terhubung ke resistor kedua dan input A / D mikro, dan ujung resistor kedua terhubung ke arde. Dengan rasio 9: 1, Anda mendapatkan gain 0,1 (atenuasi sebesar 10).

Anda mungkin ingin yang lebih rendah dari keduanya (resistor 1x) sekitar 10 kΩ, yang akan membuat 90 kΩ lainnya. Saya mungkin akan menggunakan 100 kΩ untuk memberikan beberapa margin dan penginderaan yang berlebihan.

Olin Lathrop
sumber
0

Saya telah berhasil melakukan ini dengan menggunakan pembagi tegangan dan pembalikan dioda Zener yang bias antara pin input dan ground (untuk berjaga-jaga).

s3c
sumber
1
Dioda zener memberikan tegangan output tetap dan digunakan untuk pengaturan. Bagaimana Anda menggunakannya untuk memvariasikan tegangan input? Tegangan output sensor bervariasi antara 0-50v dan input adc harus bervariasi di antara 0-5v. Menggunakan zener akan memperbaiki tegangan input adc.
Prasan Dutt
3
Zener adalah untuk melindungi input ADC terhadap tegangan yang lebih tinggi daripada yang dapat ditangani oleh UC, untuk berjaga-jaga, seperti yang dia katakan. Katakanlah uC dapat menangani 0V-5V, jika Anda berencana untuk mengukur 50V, Anda meletakkan pembagi 10: 1 dan Zener 5V, jadi jika inputnya lebih dari 50V, zener menjepitnya menjadi 5V.
s3c