Categories
Mikrokontroler

Memanfaatkan ADC Internal Mikrokontroler PIC16F877

Sebagaimana diketahui bahwa mikrokontroler PIC16F877 memiliki fasilitas 8 kanal ADC 10bit. Penggunaannya memang tidak bisa serentak untuk semua kanal, harus dilakukan satu persatu. Artikel kali ini akan mengulas tentang penggunaan ADC internal ini.

Rangkaian dasarnya sangat sederhana, cukup Anda hubungkan kanal-0 dan 1 (untuk contoh saja) ke sumber tegangan 5 volt (karena kita juga akan menggunakan tegangan referensi (Vref) yang sama) melalui potensiometer atau sejenisnya. Rangkaian dasar ini mirip dengan Gambar 1 pada artikel yang membahas aplikasi LED dan pushbutton pada PIC16F877 (klik disini untuk lihat gambar).

Instruksi terkait

Beberapa hal yang perlu diketahui dalam penggunaan ADC internal PIC16F877 dalam bahasa C (menggunakan kompilator CCS):

  • #device ADC = jumlah_bit
    • Digunakan untuk memberitahukan berapa resolusi bit yang akan digunakan apakah 8 atau 10bit.
  • setup_adc(mode)
    • Digunakan untuk melakukan kofigurasi awal (inisialisasi) ADC internal. Hanya dapat digunakan pada mikrokontroler dari Microchip yang memiliki fasilitas ADC internal. Paremeter mode memiliki beberapa pilihan, antara lain: ADC_OFF untuk mematikan ADC, ADC_CLOK_DIV_2, ADC_CLOK_DIV_8 dan ADC_CLOK_DIV_32 yang masing-masing digunakan untuk mengatur frekuensi kerja dari ADC-nya apakah detaknya dibagi 2, 8 atau 32, ADC_CLOK_INTERNAL yang digunakan untuk menentukan frekuensi kerja ADC sama dengan frekuensi kerja mikrokontroler.
  • setup_adc_ports(nilai)
    • Digunakan untuk menentukan pin ADC sebagai pin masukan analog, digital atau kombinasi keduanya serta tegangan referensi yang digunakan untuk menghitung nilai ADC. Kombinasi pin-pin analog tergantung pada mikrokontroler yang digunakan, cuman ada dua parameter yang bisa digunakan untuk semua jenis mikrokontroler yang dilengkapi ADC internal, yaitu ALL_ANALOG dan NO_ANALOGS. Pilihan lain untuk parameter nilai adalah RA0_RA1_RA3_ANALOG (RA0, RA1 dan RA3 saja sebagai masukan analog), A_ANALOG_RA3_REF (semua analog, RA3 digunakan sebagai tegangan referensi), RA0_ANALOG dan lain sebagainya.
  • set_adc_channel(kanal)
    • Digunakan untuk menentukan kanal ADC yang akan dibaca selanjutnya, berikan kesempatan mikrokontroler untuk menyiapkan diri, berikan tundaan minimal 10 mikrodetik (tergantung impedansi masukan) sebelum dilakukan pembacaan. Kanal berisikan angka 0, 1, 2 dan seterusnya sesuai dengan kanal ADC yang akan dibaca selanjutnya.
  • variabel = read_adc()
    • Jelas ini digunakan untuk membaca ADC itu sendiri.

Categories
DSP

Kelebihan Pemrosesan Sinyal Digital

Ada beberapa alasan mengapa digunakan pemrosesan sinyal digital pada suatu sinyal analog. Pertama, suatu sistem digital terprogram memiliki fleksibilitas dalam merancang-ulang operasi-operasi pemrosesan sinyal digital hanya dengan melakukan perubahan pada program yang bersangkutan, sedangkan proses merancang-ulang pada sistem analog biasanya melibatkan rancang-ulang perangkat keras, uji coba dan verifikasi agar dapat bekerja seperti yang diharapkan.

Masalah ketelitian atau akurasi juga memainkan peranan yang penting dalam menentukan bentuk dari pengolah sinyal. Pemrosesan sinyal digital menawarkan pengendalian akurasi yang lebih baik. Faktor toleransi yang terdapat pada komponen-komponen rangkaian analog menimbulkan kesulitan bagi perancang dalam melakukan pengendalian akurasi pada sistem pemrosesan sinyal analog. Di lain pihak, sistem digital menawarkan pengendalian akurasi yang lebih baik. Beberapa persyaratan yang dibutuhkan, antara lain penentuan akurasi pada konverter A/D (analog ke digital) serta pengolah sinyal digital, dalam bentuk panjang word (word length), floating-point versus fixed-point arithmetic dan faktor-faktor lain.

Sinyal-sinyal digital dapat disimpan pada media magnetik (berupa tape atau disk) tanpa mengalami pelemahan atau distorsi data sinyal yang bersangkutan. Dengan demikian sinyal tersebut dapat dipindah pindahkan serta diproses secara offline di laboratorium. Metode-metode pemrosesan sinyal digital juga membolehkan implementasi algoritma-algoritma pemrosesan sinyal yang lebih canggih. Umumnya sinyal dalam bentuk analog sulit untuk diproses secara matematik dengan akurasi yang tinggi.

Implementasi digital sistem pemrosesan sinyal lebih murah dibandingkan secara analog. Hal ini disebabkan karena perangkat keras digital lebih murah, atau mungkin karena implementasi digital memiliki fleksibilitas untuk dimodifikasi.

Kelebihan-kelebihan pemrosesan sinyal digital yang telah disebutkan sebelumnya menyebabkan pemrosesan sinyal digital lebih banyak digunakan dalam berbagai aplikasi. Misalnya, aplikasi pengolahan suara pada kanal telepon, pemrosesan citra serta transmisinya, dalam bidang seismologi dan geofisika, eksplorasi minyak, deteksi ledakan nuklir, pemrosesan sinyal yang diterima dari luar angkasa, dan lain sebagainya.

Namun implementasi digital tersebut memiliki keterbatasan, dalam hal kecepatan konversi A/D dan pengolah sinyal digital yang bersangkutan. (Proakis dan Manolakis, 1992)

Daftar Pustaka

Proakis, John G. dan Dimitris G. Manolakis, 1992, “Digital Signal Processing: Principles, Algorithms, and Applications“, Macmillan Publishing Company, New York, USA.