Dalam proyek ini kita akan membuat ammeter jarak rendah menggunakan mikrokontroler ATMEGA8. Di ATMEGA8, kami akan menggunakan fitur 10bit ADC (Analog to Digital Conversion) untuk melakukan ini. Meskipun kami memiliki beberapa cara lain untuk mendapatkan parameter arus dari rangkaian, kami akan menggunakan metode drop resistif, karena ini adalah cara termudah dan termudah untuk mendapatkan parameter saat ini.
Dalam metode ini kita akan melewatkan arus yang perlu diukur ke resistansi kecil, dengan ini kita mendapatkan penurunan resistansi yang terkait dengan arus yang mengalir melaluinya. Tegangan melintasi resistansi ini diumpankan ke ATMEGA8 untuk konversi ADC. Dengan itu kita akan mendapatkan arus dalam nilai digital yang akan ditampilkan pada LCD 16x2.
Untuk itu kita akan menggunakan rangkaian pembagi tegangan. Kami akan memberi makan arus melalui cabang hambatan lengkap. Titik tengah cabang digunakan untuk pengukuran. Ketika perubahan arus akan terjadi perubahan penurunan resistansi yang linier terhadapnya. Jadi dengan ini kita memiliki tegangan yang berubah dengan linieritas.
Sekarang hal penting untuk dicatat di sini adalah, input yang diambil oleh pengontrol untuk konversi ADC serendah 50µAmp. Efek pembebanan pembagi tegangan berbasis resistansi ini penting karena arus yang ditarik dari Vout pembagi tegangan meningkatkan persentase kesalahan yang meningkat, untuk saat ini kita tidak perlu khawatir tentang efek pembebanan.
Komponen Diperlukan
Hardware: ATMEGA8, power supply (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), kapasitor 100uF, kapasitor 100nF (4 buah), resistor 100Ω (7 buah) atau 2.5Ω (2 buah), resistor 100KΩ.
Perangkat lunak: Atmel studio 6.1, progisp atau flash magic.
Diagram Sirkuit dan Penjelasan Kerja
Tegangan pada R2 dan R4 tidak sepenuhnya linier; itu akan menjadi yang berisik. Untuk menyaring kebisingan, kapasitor ditempatkan di setiap resistor di sirkuit pembagi seperti yang ditunjukkan pada gambar.
Di ATMEGA8, kita dapat memberikan input Analog ke salah satu dari EMPAT saluran PORTC, tidak masalah saluran mana yang kita pilih karena semuanya sama. Kami akan memilih saluran 0 atau PIN0 dari PORTC. Di ATMEGA8, ADC memiliki resolusi 10 bit, sehingga pengontrol dapat mendeteksi perubahan minimum Vref / 2 ^ 10, jadi jika tegangan referensi 5V kita mendapatkan kenaikan keluaran digital untuk setiap 5/2 ^ 10 = 5mV. Jadi untuk setiap kenaikan 5mV dalam input, kami akan memiliki kenaikan satu pada output digital.
Sekarang kita perlu mengatur register ADC berdasarkan ketentuan berikut:
1. Pertama-tama kita perlu mengaktifkan fitur ADC di ADC.
2. Disini akan didapat tegangan input maksimum untuk konversi ADC + 5V. Jadi kita dapat mengatur nilai maksimum atau referensi ADC ke 5V.
3. Kontroler memiliki fitur konversi pemicu yang berarti konversi ADC terjadi hanya setelah pemicu eksternal, karena kita tidak ingin perlu menyetel register untuk ADC agar berjalan dalam mode berjalan bebas berkelanjutan.
4. Untuk ADC apa pun, frekuensi konversi (Nilai analog ke nilai Digital) dan keakuratan keluaran digital berbanding terbalik. Jadi untuk akurasi keluaran digital yang lebih baik kita harus memilih frekuensi yang lebih rendah. Untuk jam ADC normal kita mengatur presale ADC ke nilai maksimum (2). Karena kita menggunakan clock internal 1MHZ, clock ADC akan menjadi (1000000/2).
Inilah empat hal yang perlu kita ketahui untuk memulai ADC.
Keempat fitur di atas diatur oleh dua register,
MERAH (ADEN): Bit ini harus disetel untuk mengaktifkan fitur ADC ATMEGA.
BIRU (REFS1, REFS0): Kedua bit ini digunakan untuk mengatur tegangan referensi (atau tegangan input maks yang akan kami berikan). Karena kami ingin memiliki tegangan referensi 5V, REFS0 harus diatur, oleh tabel.
KUNING (ADFR): Bit ini harus disetel agar ADC terus berjalan (mode berjalan bebas).
PINK (MUX0-MUX3): Empat bit ini untuk memberi tahu saluran input. Karena kita akan menggunakan ADC0 atau PIN0, kita tidak perlu mengatur bit apa pun seperti pada tabel.
BROWN (ADPS0-ADPS2): ketiga bit ini untuk mengatur prescalar untuk ADC. Karena kami menggunakan prescalar 2, kami harus menetapkan satu bit.
DARK GREEN (ADSC): bit ini diatur untuk ADC untuk memulai konversi. Bit ini dapat dinonaktifkan dalam program ketika kita perlu menghentikan konversi.