- Dasar-dasar Op-Amp
- Penguat Penguat yang Dapat Diprogram Bekerja
- Komponen Diperlukan
- Diagram skematik
- Kode Arduino untuk PGA
- Perhitungan untuk Penguat Penguat yang Dapat Diprogram
- Pengujian Rangkaian Penguat Gain Terprogram
- Pro & Kontra Penguat Gain Terprogram
- Peningkatan Lebih Lanjut
Dalam industri pengukuran, blok fungsional yang sangat penting adalah Programmable Gain Amplifier (PGA). Jika Anda seorang penggemar elektronik atau mahasiswa, Anda mungkin pernah melihat multimeter atau osiloskop yang mengukur voltase sangat kecil dengan sangat berharga karena rangkaian tersebut memiliki PGA internal di samping ADC yang kuat yang membantu proses pengukuran yang tepat.
Saat ini, penguat PGA dari rak menawarkan penguat berbasis op-amp, non-pembalik dengan faktor penguatan yang dapat diprogram pengguna. Jenis perangkat ini memiliki impedansi masukan yang sangat tinggi, lebar pita lebar, dan referensi tegangan masukan yang dapat dipilih yang dibangun ke dalam IC. Tetapi semua fitur ini ada harganya, dan bagi saya, tidak ada gunanya meletakkan chip yang mahal itu untuk aplikasi umum.
Jadi untuk mengatasi situasi ini, saya telah membuat pengaturan yang terdiri dari Op-amp, MOSFET, dan Arduino, di mana saya dapat mengubah penguatan op-amp secara terprogram. Jadi, dalam tutorial ini, saya akan menunjukkan kepada Anda bagaimana membangun Penguat Gain Terprogram Anda sendiri dengan op-amp LM358 dan MOSFET, dan saya akan membahas beberapa pro dan kontra rangkaian bersama pengujian.
Dasar-dasar Op-Amp
Untuk memahami cara kerja rangkaian ini, sangat penting untuk mengetahui cara kerja penguat operasional. Pelajari lebih lanjut tentang Op-amp dengan mengikuti rangkaian penguji Op-amp ini.
Pada gambar di atas, Anda dapat melihat penguat operasional. Tugas dasar penguat adalah memperkuat sinyal masukan, selain penguatan, op-amp juga dapat melakukan berbagai operasi seperti menjumlahkan, membedakan, mengintegrasikan, dll. Pelajari lebih lanjut tentang penguat penjumlah dan penguat diferensial di sini.
Op-amp hanya memiliki tiga terminal. Terminal dengan tanda (+) disebut masukan non-pembalik, dan terminal dengan tanda (-) disebut masukan pembalik. Selain kedua terminal tersebut, terminal ketiga adalah terminal keluaran.
Sebuah op-amp hanya mengikuti dua aturan
- Tidak ada arus yang masuk atau keluar dari input op-amp.
- Op-amp mencoba menjaga input pada level tegangan yang sama.
Jadi dengan dua aturan itu dibersihkan, kita dapat menganalisis sirkuit di bawah ini. Selain itu, pelajari lebih lanjut tentang Op-amp dengan melalui berbagai rangkaian berbasis Op-amp.
Penguat Penguat yang Dapat Diprogram Bekerja
Gambar di atas memberi Anda ide dasar tentang pengaturan rangkaian Amplifier PGA mentah saya. Pada rangkaian ini op-amp dikonfigurasikan sebagai penguat non-inverting, dan seperti yang kita ketahui bersama dengan rangkaian rangkaian non-inverting, kita dapat mengubah gain dari op-amp dengan mengubah resistor umpan balik atau resistor masukan, seperti yang Anda lihat dari pengaturan rangkaian di atas, saya hanya perlu mengganti MOSFET satu per satu untuk mengubah penguatan op-amp.
Di bagian pengujian, saya baru saja mengganti MOSFET satu per satu dan membandingkan nilai yang diukur dengan nilai praktis, dan Anda dapat mengamati hasilnya di bagian "menguji sirkuit" di bawah ini.
Komponen Diperlukan
- Arduino Nano - 1
- IC LM358 - 1
- Regulator LM7805 - 1
- BC548 Generic NPN Transistor - 2
- BS170 Generik N-channel MOSFET - 2
- Resistor 200K - 1
- Resistor 50K - 2
- Resistor 24K - 2
- 6.8K Resistor - 1
- 1K Resistor - 4
- 4.7K Resistor - 1
- 220R, 1% Resistor - 1
- Tactile Switch Generic - 1
- LED Kuning 3mm - 2
- Bread Board Generic - 1
- Kabel Jumper Generik - 10
- Catu Daya ± 12V - 1
Diagram skematik
Untuk demonstrasi Penguat Penguat yang Dapat Diprogram, sirkuit dibangun pada papan tempat memotong roti tanpa solder dengan bantuan skema; Untuk mengurangi induktansi parasit internal dan kapasitansi papan tempat memotong roti, semua komponen telah ditempatkan sedekat mungkin.
Dan jika Anda bertanya-tanya mengapa ada sekelompok kabel di papan tempat memotong roti saya? izinkan saya memberi tahu Anda itu untuk membuat koneksi ground yang baik karena koneksi ground internal di papan tempat memotong roti sangat buruk.
Di sini op-amp dalam rangkaian dikonfigurasi sebagai penguat non-pembalik dan tegangan input dari regulator tegangan 7805 adalah 4,99V.
Nilai terukur untuk resistor R6 adalah 6.75K dan R7 adalah 220.8R kedua resistor ini membentuk pembagi tegangan yang digunakan untuk menghasilkan tegangan uji input untuk op-amp. The Resistor R8 dan R9 digunakan untuk membatasi dasar masukan saat ini transistor T3 dan T4. The resistor R10 dan R11 digunakan untuk membatasi kecepatan switching dari MOSFET T1 & T2, jika tidak, dapat menyebabkan osilasi di sirkuit.
Di blog ini, saya ingin menunjukkan kepada Anda alasan menggunakan MOSFET daripada BJT, oleh karena itu pengaturan rangkaiannya.
Kode Arduino untuk PGA
Di sini Arduino Nano digunakan untuk mengontrol basis transistor dan gerbang MOSFET, dan multimeter digunakan untuk menunjukkan level tegangan karena ADC bawaan dari Arduino melakukan pekerjaan yang sangat buruk, ketika harus mengukur rendah level tegangan.
Kode Arduino lengkap untuk proyek ini diberikan di bawah ini. Karena ini adalah kode Arduino yang sangat sederhana, kami tidak perlu menyertakan pustaka apa pun. Tapi kita perlu mendefinisikan beberapa konstanta dan pin input seperti yang ditunjukkan dalam kode.
The kekosongan setup () adalah blok fungsional utama di mana membaca dan menulis operasi untuk semua input dan output yang dilakukan sesuai kebutuhan.
# Tentukan BS170_WITH_50K_PIN 9 # Tentukan BS170_WITH_24K_PIN 8 # Tentukan BC548_WITH_24K_PIN 7 # Tentukan BC548_WITH_50K_PIN 6 # Tentukan BUTTON_PIN 5 # Tentukan LED_PIN1 5000 # Tentukan LED_PIN2 3 # Tentukan tombol PRESS_ int debounce_counter = 0; batal penyiapan () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_50K_PIN, OUTPUT); pinMode (LED_PIN1, OUTPUT); pinMode (LED_PIN2, OUTPUT); pinMode (BUTTON_PIN, INPUT); } lingkaran kosong () {bool val = digitalRead (BUTTON_PIN); // baca nilai masukan if (val == LOW) {debounce_counter ++; jika (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } jika (button_is_pressed == 0) {digitalWrite (BS170_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_24K_PIN, LOW);digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, LOW); } jika (button_is_pressed == 2) {digitalWrite (BS170_WITH_24K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, HIGH); } jika (button_is_pressed == 3) {digitalWrite (BC548_WITH_24K_PIN, HIGH); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, HIGH); digitalWrite (LED_PIN2, HIGH); } jika (button_is_pressed == 1) {digitalWrite (BC548_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (LED_PIN1, HIGH);digitalWrite (LED_PIN2, LOW); } jika (button_is_pressed> = 4) {button_is_pressed = 0; }}}
Perhitungan untuk Penguat Penguat yang Dapat Diprogram
Nilai terukur untuk rangkaian penguat PGA ditunjukkan di bawah ini.
Vin = 4.99V R7 = 220.8 Ω R6 = 6.82 KΩ R5 = 199.5K R4 = 50.45K R3 = 23.99K R2 = 23.98K R1 = 50.5K
Catatan! Nilai terukur dari resistor ditampilkan karena dengan nilai resistor terukur kita dapat membandingkan dengan dekat nilai teoritis dan nilai praktis.
Sekarang perhitungan dari kalkulator pembagi tegangan ditunjukkan di bawah ini,
Output dari pembagi tegangan adalah 0.1564V
Menghitung penguatan penguat non-pembalik untuk 4 resistor
Vout ketika R1 adalah resistor yang dipilih
Vout = (1+ (199.5 / 50.5)) * 0.1564 = 0.77425V
Vout ketika R2 adalah resistor yang dipilih
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout ketika R3 adalah resistor yang dipilih
Vout = (1+ (199.5 / 23.99)) * 0.1564 = 1.45701V
Vout ketika R4 adalah resistor yang dipilih
Vout = (1+ (199.5 / 50.45)) * 0.1564 = 0.77486V
Saya melakukan semua itu untuk membandingkan nilai teoritis dan praktis sedekat mungkin.
Dengan semua perhitungan selesai, kita dapat melanjutkan ke bagian pengujian.
Pengujian Rangkaian Penguat Gain Terprogram
Gambar di atas menunjukkan kepada Anda tegangan output ketika MOSFET T1 aktif, maka arus mengalir melalui Resistor R1.
Gambar di atas menunjukkan tegangan output saat Transistor T4 menyala, maka arus mengalir melalui Resistor R4.
Gambar di atas menunjukkan kepada Anda tegangan output ketika MOSFET T2 aktif, maka arus mengalir melalui Resistor R2.
Gambar di atas menunjukkan tegangan output saat Transistor T3 menyala, maka arus mengalir melalui Resistor R3.
Seperti yang bisa Anda lihat dari skema bahwa T1, T2 adalah MOSFET, dan T3, T4 adalah transistor. Jadi ketika MOSFET digunakan, kesalahannya berada dalam rentang 1 hingga 5 mV tetapi ketika transistor digunakan sebagai sakelar, kami mendapatkan kesalahan dalam rentang 10 hingga 50 mV.
Dengan hasil di atas, jelas bahwa MOSFET adalah solusi kebagian untuk aplikasi semacam ini, dan kesalahan dalam teori dan praktik mungkin disebabkan karena kesalahan offset op-amp.
Catatan! Harap dicatat bahwa saya telah menambahkan dua LED hanya untuk kepentingan pengujian dan Anda tidak dapat menemukannya dalam skema yang sebenarnya, ini menunjukkan kode biner untuk menunjukkan pin mana yang aktif
Pro & Kontra Penguat Gain Terprogram
Karena rangkaian ini murah, mudah, dan sederhana, rangkaian ini dapat diimplementasikan dalam banyak aplikasi berbeda.
Di sini MOSFET digunakan sebagai sakelar untuk melewatkan semua arus melalui resistor ke ground, itulah sebabnya efek suhu tidak pasti, dan dengan alat dan peralatan uji saya yang terbatas, saya tidak dapat menunjukkan kepada Anda efek dari berbagai suhu pada sirkuit.
Tujuan menggunakan BJT bersama MOSFET adalah karena saya ingin menunjukkan kepada Anda betapa buruknya BJT untuk aplikasi semacam ini.
Nilai resistor umpan balik dan resistor masukan harus dalam kisaran KΩ, itu karena dengan nilai resistor yang lebih rendah, lebih banyak arus akan mengalir melalui MOSFET, sehingga lebih banyak tegangan akan turun melintasi MOSFET sehingga menyebabkan hasil yang tidak dapat diprediksi.
Peningkatan Lebih Lanjut
Rangkaian ini dapat dimodifikasi lebih lanjut untuk meningkatkan kinerjanya seperti kita dapat menambahkan filter untuk menolak suara frekuensi tinggi.
Karena op-amp jelly bean LM358 digunakan dalam pengujian ini, kesalahan offset dari op-amp memainkan peran utama pada tegangan keluaran. Sehingga bisa lebih ditingkatkan lagi dengan menggunakan penguat instrumen daripada LM358.
Sirkuit ini dibuat hanya untuk keperluan demonstrasi saja. Jika Anda berpikir untuk menggunakan rangkaian ini dalam aplikasi praktis, Anda harus menggunakan op-amp tipe chopper dan resistor 0,1 ohm presisi tinggi untuk mencapai stabilitas absolut.
Saya harap Anda menyukai artikel ini dan mempelajari sesuatu yang baru darinya. Jika Anda ragu, Anda dapat bertanya di komentar di bawah atau dapat menggunakan forum kami untuk diskusi terperinci.