ADC (Analog to Digital Converter) Mikrokontroler

Gambar 1 - Analog Sinyal (www.maxembedded.com)

Gambar 1 – Analog Sinyal (www.maxembedded.com)

Sebagaian besar data yang ada di dunia ini merupakan data analog, misalnya: temperatur, tekanan, tegangan listrik dll. Sebagai contoh temperatur di dalam boiler sebesar 800 C: saat boiler dinyalakan, temperatur tersebut tidak akan langsung menunjukkan angka 800, tetapi akan naik secara bertahap dari temperatur normal, 400 C, 500 C hingga mencapai 800 C. Gambar di atas merupakan contoh dari sinyal analog.

Data analog yang ada akan diproses menggunakan sebuah sinyal prosessing, sebagai input sinyal analog, akan tetapi pemrosesan sinyal analog, kurang efiisien dikarenakan akurasi nya relatif kecil, error yang cukup besar dan kecepatan pemrosesan sendiri yang relatif lambat. Sehingga data analog yang hendak diproses perlu diubah ke data bentuk digital menggunakan Analog to Digital Converter (ADC).

Gambar 2 - Proses pengakuisisian sinyal (www.maxembedded.com)

Gambar 2 – Proses pengakuisisian sinyal (www.maxembedded.com)

Proses akuisisi sinyal terdiri dari tiga tahap, pada tahap pertama adalah tahap pengindraan/sensing, oleh sensor terhadap besaran fisis yang akan di ukur atau diproses secara lanjut, dimana sensor sendiri adalah sebuah komponen yang mengubah besaran fisis menjadi besaran elektrik yang dapat berupa tegangan, arus atau hambatan. Sehingga besaran fisis yang di-sensing akan diubah menjadi besaran elektrik yang masih merupakan sinyal analog. Tahap kedua adalah tahap konversi sinyal analog menjadi sinyal digital dengan menggunakan Analog to Digital Converter(ADC), sehingga dihasilkan sinyal digital, pada tahap ketiga sinyal digital tersebut kemudian menjadi input pada komponen pemrosesan sinyal, dimana komponen yang sering digunakan sebagai pemrosesan sinyal adalah mikrokontroler (MCU).

Pada mikrokontroler keluarga AVR seri ATMEGA 8/16/32/8535, fitur ADC sudah build in di dalam chip. Fitur internal ADC inilah yang menjadi salah satu kelebihan mikrokontroler ini jika dibandingan dengan beberapa jenis mikrokontroler lainnya, sehingga tidak perlu menggunakan rangkaian ADC eksternal tambahan. Atmega memiliki resolusi ADC 10 bit yang berarti nilai ADC memiliki rentang nilai 2 pangkat 10 (2^10) = 1024. Hal tersebut artinya ADC akan memiliki rentang nilai antara 0 hingga 1024. Selain itu, resolusi ADC juga dapat menggunakan ADC 8 bit dan Jika ADC 8 bit, maka nilai ADC nya adalah 2^8.

Dengan 8 channel (PA0 – PA7), rangkaian internal ADC memiliki catu daya tersendiri yaitu pin AVCC. Dimana fitur lebih lengkapnya dapat dilihat pada gambar berikut :

  • 10 – bit Resolution
  • 5 LSB Integral Non-Liniearity
  • ±2 LSB Absolute Accuracy
  • 13 – 260 µs Conversion Time
  • Up to 15 kSPS at maximum Resolution
  • 8 Multiplexed Single Ended Input Channels
  • 7 Differential Input Channels with Optional Gain of 10x and 200x
  • Optional left adjustment for ADC result Readout
  • 0 – Vcc ADC input Voltage Range
  • Selectable 2.56V ADC reference Voltage
  • Free running or Single Conversion Mode
  • ADC Start Conversion by Auto triggering on Interrupt Sources
  • Interrupt on ADC Conversion Complete
  • Sleep Mode Noise Canceler

Rumus konversi nilai sinyal analog menjadi besarnya tegangan dengan nilai ADC adalah sebagai berikut :

Rumus ADC

Rumus ADC

Pada rumus di atas, System voltage merupakan besarnya tegangan input ADC atau AVCC. Sebagai contoh, jika sistem kita menggunakan  tagangan 5V , menggunakan resolusi ADC 10 bit dan tegangan analog sebesar 2.12V, maka berapakah nilai ADC?

Perhitungan ADC

Berikut ini adalah salah satu contoh aplikasi dari fitur ADC yang paling sederhana, yaitu mengubah pembacaan nilai tegangan analog input menjadi nilai data digital atau nilai ADC dimana tegangan analognya berasal dari potensiometer yang dirangkai sebagai pembagi tegangan. Jika potensiometer diputar maka nilai tegangan akan berubah, dalam artian semakin kecil atau semakin besar itu tergantung dari rangkaian pembagi tegangan yang dibuat, sehingga nilai ADC yang terbaca dan ditampilkan ke LCD juga akan berubah. Mikrokontroler yang digunakan adalah ATMEGA16 dengan rangkaian sebagai berikut:

Gambar 3 - Rangkaian ADC pada Proteus

Gambar 3 – Rangkaian ADC pada Proteus

Pada aplikasi ADC ini digunakan compiler Codevision AVR, dimana untuk mengaktifkan fitur ADC menggunakan codevison AVR ini adalah dengan memberi tAnda centang pada ADC enabled seperti pada gambar di bawah ini:

Gambar 4 - Opsi ADC pada CVAVR

Gambar 4 – Opsi ADC pada CVAVR

Adapun coding-an  program yang digunakan adalah sebagai berikut:

Jika artikel ini bermanfaat buat Anda, mohon untuk di Share because “Sharing is Caring”

Download:

source code CVAVR , Simulasi Proteus

Referensi:

  1. maxembedded.com,
  2. learn.sparkfun.com

COMMENTS

Loading Facebook Comments ...