Anda di halaman 1dari 12

BAB IV

ANALOG TO DIGITAL CONVERTER (ADC)

Capaian Pembelajaran:
Setelah membaca dan mengkaji bab ini, pembaca akan mampu:
 Menyusun algoritma, flowcart dan program dengan memanfaatkan unit Analog
to Digital Convert dan unit input-output ATMega16.
 Mengaplikasikan Unit ADC ATMega16 untuk tampilan 7 Segmen dan
masukan LDR(Light Dependent Resistors) dan sensor suhu LM35

4.1. ADC Dalam ATMega 16


ATMega memiliki ADC jenis successive approximation dengan data
output sebanyak 10 bit. Ada 8 kanal input ADC yang dimultiplekser dengan pin
Port A dengan acuan 0 Volt atau Ground. ADC juga dilengkapi dengan rangkaian
sample and hold yang menjamin tegangan masukan ADC berada dalam keadaan
konstan saat proses konversi dan Gambar 4.1 menunjukkan blok diagram dari
Skema ADC di mikrokontroler ATMega 16.

Gambar 4.1. Blok Diagram ADC ATMega 16 (ATMega16,2010;205)

56
Dalam operasinya ADC mengubah tegangan masukan analog ke dalam 10
bit nilai digital dengan successive approximation. Gnd sebagai nilai minimal dan
nilai maksimal mewakili tegangan di pin AREF – 1 LSB, Biasanya AVCC atau
tegangan reverensi internal 2.56 Volt atau mungkin terhubung ke pin AREF
dengan mengatur bit REFSn di register ADMUX.
ADC diaktifkan dengan mengatur bit ADC Enable, ADEN di register
ADCSRA. Tegangan referensi dan saluran masukan ADC yang dipilih tidak akan
berlaku sampai ADEN di set ‘1’.
ADC menghasilkan nilai 10-bit yang disajikan dalam dua register data
ADC yaitu ADCH dan ADCL. Secara default, hasilnya disajikan right adjusted (2
bit di ADCH dan 8 bit di ADCL), tetapi secara opsional dapat disajikan left
adjusted (8 bit di ADCH dan 2 bit di ADCL) dengan mengatur bit ADLAR di
ADMUX. Jika yang dipilih left adjusted maka ADC digunakan dalam 8 bit saja
dengan cukup mengambil data di ADCH. Untuk right adjusted, ADCL dibaca
dahulu setelah itu ADCH agar data yang didapatkan tidak hilang atau rusak.
Sebuah konversi tunggal dimulai dengan menulis logika satu ke bit Start
Convertion ADC atau ADSC di register ADCSRA. Bit ini akan tetap tinggi
selama konversi sedang berlangsung dan akan dihapus oleh hardware bila
konversi selesai. Dan Jika selesai maka bit ADIF akan bernilai satu yang
memberikan tanda bahwa konversi sudah selesai sehingga data hasil konversi
dapat dibaca di ADCH dan ADCL.
Konversi dapat juga dipicu secara otomatis oleh berbagai sumber. Auto
Trigger diaktifkan dengan memberikan logika satu pada bit ADC Auto Trigger
atau ADATE di register ADCSRA. Sumber pemicu dapat dipilih dengan
mengatur bit ADC Trigger Select atau ADTs di register SFIOR.
Modul ADC berisi prescaler, yang menghasilkan frekuensi clock ADC
diterima dari frekuensi CPU. Prescaling diatur oleh bit ADPS di register
ADCSRA. Prescaler mulai bekerja mulai ADC diaktifkan dengan memberi logika
satu di bit ADEN di ADCSRA. Dan akan berhenti jika ADEN diberi logika nol
atau rendah.

57
Ada beberapa register yang digunakan untuk ADC yaitu:
1. Register ADMUX atau register ADC Multiplexer, dinamakan demikian
karena di dalam register tersebut ada bit-bit yang digunakan untuk memilih
saluran dari input ADC, untuk bit-bit dari ADMUX ditunjukkan dalam
Gambar 4.2.

Gambar 4.2. Bit-bit dalam Register ADMUX(ATMega16,2010;217)


Keterangan dari fungsi bit-bit ADMUX Gambar 3.2 adalah sebagai berikut:
- REF0 dan REF1 (Reference) adalah bit-bit yang digunakan untuk memilih
tegangan referensi dari ADC dan table 4.1 menunjukkan beberapa
tegangan referensi yang dapat digunakan.
Tabel 4.1. Pilihan Tegangan Referensi ADC (ATMega16,2010;217)
REFS1 REFS0 Pilihan tegangan referensi
0 0 AREF (pin 32)
0 1 AVCC (pin 30)
1 0 Tidak digunakan
1 1 Vref internal 2,56V

- ADLAR (ADC Left Adjust Result) adalah bit yang digunakan untuk
menentukan format data hasil konversi ADC. Bila ADLAR = 0 maka hasil
konversi 10 bit disimpan dalam format: 2 bit disimpan di ADCH dan 8 bit
di ADCL seperti ditunjukkan dalam Gambar 4.3, sedangkan bila ADLAR
= 1 maka hasil konversi 10 bit disimpan dalam format: 8 bit disimpan di
ADCH dan 2 bit di ADCL seperti ditunjukkan dalam Gambar 4.4.

Gambar 4.3. Format Hasil Konversi Bila DLAR sama dengan 0


(ATMega16,2010;220)

58
Gambar 4.4. Format Hasil Konversi Bila DLAR sama dengan
1(ATMega16,2010;220)
- MUX4, MUX3, MUX2, MUX1 dan MUX0, adalah bit-bit yang digunakan
untuk memilih input analog yang akan dikonversi oleh ADC. Kombinasi
MUX4 sampai MUX0 untuk jenis input ADC dengan acuan Ground
(single Ended Input) ditunjukan dalam table 4.2.
Tabel 4.2. Kanal Input ADC untuk jenis Single Ended Input
Pilihan Input
MUX4 MUX3 MUX2 MUX1 MUX0 Nilai
ADC
0 0 0 0 0 0 ADC0
0 0 0 0 1 1 ADC1
0 0 0 1 0 2 ADC2
0 0 0 1 1 3 ADC3
0 0 1 0 0 4 ADC4
0 0 1 0 1 5 ADC5
0 0 1 1 0 6 ADC6
0 0 1 1 1 7 ADC7

2. Register ADCSRA atau ADC Control Status Register A, dinamakan demikian


karena register ini tempat untuk mengendalikan (Control) dan dan
mengetahui keadaan (Status) dari ADC, dan untuk bit-bitnya ditunjukkan
dalam Gambar 4.5.

Gambar 4.5. Bit-bit dalam register ADCSRA(ATMega16,2010;219)

59
Keterangan dari fungsi bit-bit ADCSRA adalah sebagai berikut:
- ADEN atau ADC Enable, merupakan bit untuk mengaktifkan ADC, bila
ADEN = 1 maka ADC aktif dan Port A tidak aktif, bila ADEN = 0 maka
ADC tidak aktif dan Port A aktif.
- ADSC atau ADC Start Convertion, merupakan bit yang digunakan untuk
memberikan perintah mulai konversi, bila ADSC = 1, maka ADC mulai
bekerja untuk mengkonversi input analog dan akan berlogika 0 bila selesai
konversi.
- ADATE atau ADC Auto Trigger Enable, merupakan bit yang digunakan
untuk mengendalikan aktivasi picu otomatis. Jika ADATE = 1 maka
konversi ADC akan dimulai pada saat tepi positif pada sinyal trigger yang
digunakan.
- ADIF atau ADC Interrupt Flag, merupakan bit penanda akhir konversi
ADC. Jika ADIF = 1 maka konversi ADC pada suatu saluran telah selesai
dan siap diakses.
- ADIE atau ADC Interrupt Enabe, merupakan bit pengatur aktivasi
interupsi. Jika ADIE = 1 maka interupsi telah diaktifkan untuk melayani
proses konversi ADC.
- ADPS2, ADPS1 dan ADPS0 atau ADC Prescaler Select, merupakan bit-
bit yang digunakan untuk mengatur frukeunsi clock ADC dan Tabel 4.3
merupakan pemilihan frekuensi clok ADC dengan frekuansi osilator (fosc)
dari mikrokontroler ATMega 16 digunakan sebagai sumber clock dan nilai
ADPSn digunakan untuk memilih pembagi frekuansi.
Tabel 4.3. Frekuensi clock ADC(ATMega16,2010;220)
ADPS2 ADPS1 ADPS0 Clock ADC
0 0 0 fosc /2
0 0 1 fosc /2
0 1 0 fosc /4
0 1 1 fosc /8
1 0 0 fosc /16
1 0 1 fosc /32
1 1 0 fosc /64
1 1 1 fosc 128

60
4.2. LM35
LM35 merupakan IC sensor suhu yang presisi, dengan tegangan output
yang linear sebanding dengan suhu dalam Celcius. LM35 memiliki keuntungan
lebih linear dari sensor suhu yang dikalibrasi dalam o Kelvin sehingga LM35 tidak
memerlukan kalibrasi eksternal. LM35 memiliki impedansi keluaran rendah,
output yang linier, dan kalibrasi yang melekat membuat pembacaan antarmuka
dengan sirkuit kontrol sangat mudah. LM35 dapat digunakan dengan catu daya
tunggal, atau catu daya dengan plus dan minus. Salah satu rangkaian yang sering
digunakan dalam aplikasi ditunjukkan dalam Gambar 4.6. Sedangkan untuk salah
satu bentuk fisik tipe To-92 ditunjukkan dalam Gambar 4.7.

Gambar 4.6. Rangkaian Sensor Suhu dalam Celcius (LM35,1994;1)

Gambar 4.7. Salah Satu Bentuk Fisik LM35 (LM35,1994;1)

Untuk fitur-fitur yang dimiliki oleh LM35 adalah sebagai berikut:


 Dikalibrasi langsung dalam oCelcius (celcius)
 sensivitasnya atau faktor skala yang Linear = 10,0 mV / oC
 Akurasi 0,5 oC (pada 25 oC)
 rentang suhu dari - 55 sampai +150 oC
 Cocok untuk aplikasi remote
 Murah

61
 Beroperasi dari 4 sampai 30 Volt
 Arus Drain kurang dari 60 mA
 Impedansi Output rendah, 0,1 Ohm untuk 1 beban mA

4.3. LDR
LDR atau Light Dependent Resistor merupakan resistor yang nilai
resistansinya berubah-ubah tergantung dengan besarnya intensitas cahaya yang
diserap. LDR dibuat dari cadium Sulfied (CDS), yang dihasilkan dari serbuk
keramik dan disebut juga peralatan photo conductive, selama konduktivitas atau
resistansi dari CDS bervariasi terhadap intensitas cahaya. Jika intensitas cahaya
yang diterima bertambah tinggi maka nilai resistansi LDR akan berkurang
demikian juga sebaliknya. Tetapi CDS tidak mempunyai sensitivitas yang sama
pada tiap panjang gelombang dari ultraviolet sampai dengan infra merah. Gambar
4.8 menunjukkan karakteristik dan simbol LDR. Sedangkan Gambar 4.9
menunjukkan LDR yang sesungguhnya.

a. Karakteristik LDR b. Simbol LDR


Gambar 4.8. Karakteristik dan Simbol LDR

62
Gambar 4.9. LDR
4.4. Tata Cara Inisialisasi ADC dengan CodeWizard
Untuk menginisialisasi ADC dengan Code Wizard dilakukan tata cara sebagai
berikut:
1. Gerakkan mouse ke tulisan ADC Analog to Digital Converter (nomor 1)
setelah itu centang ADC Enabled (nomor 2) seperti yang ditunjukkan dalam
Gambar 4.10.

Gambar 4.10. ADC dengan CodeWizard


2. Setelah itu centang use 8 bit (nomor 3), rubah AREF menjadi AVCC (nomor
4), rubah clock menjadi 500,000 KHz (nomor [5]), Seperti yang ditunjukkna
dalam Gambar 4.11. Setelah semuanya sudah maka inisialisasi ADC sudah
selesai.

63
3

Gambar 4.11. Lanjutan Inisialisasi ADC dengan CodeWizard


Dan oleh CodeVision AVR akan dibuatkan sebuah fungsi yang bernama
read_adc(adc_input) seperti yang ditunjukkan dalam Gambar 4.12.

Gambar 4.12. Fungsi adc_read(adc_input)


Sedangkan cara menggunakan fungsi adalah dengan langsung memanggilnya,
sebagai berikut:
Tegangan Input analog dihubungkan dengan ADC0 atau PA0 maka cara
untuk memdapatkan data hasil konversinya cukup dengan menuliskan dalam
variable data_adc = read_adc(0) // 0 = ADC0 seperti yang ditunjukkan dalam
Gambar 4.13

64
Gambar 4.13. Cara Menggunakan fungsi read_adc()
4.5. Percobaan I ADC
Langkah-langkah percobaan ADC ATMega16 sebagai berikut:
1. Buat Rangkaian untuk program Proteus dan Hardwarenya seperti yang
ditunjukan dalam Gambar 3.14.

Gambar 3.14. Rangkain ATMega16 untuk percobaan ADC


2. Buat flowcart dan program untuk menampilkan konversi tegangan input
menjadi data digital tampilan 7 segmen secara bergantian untuk ratusan,
puluhan dan satuan dengan tanda PD0 untuk Ratusan, PD1 untuk Puluhan
dan Pd2 untuk Satuan. Dan Aplikasikan ke Hardwarenya.
3. Amati dan buat laporannya

65
4.6. Percobaan II ADC
1. Kembangkan program percobaan I, dengan memberikan tampilan yang
berbeda untuk yang sesuai dengan besar tegangan input. Untuk tegangan
input antara 0 sampai 1 volt maka ATMega16 akan menampilkan di 7
segmen NIM 1, untuk tegangan input antara 1 sampai 2 volt maka
ATMega16 akan menampilkan di 7 segmen NIM 2, untuk tegangan input
antara 2 sampai 3 maka ATMega16 menampilkan LED Geser kiri, untuk
tegangan input antara 3 sampai 4 maka ATMega16 akan menampilkan LED
geser kanan, untuk tegangan input antara 4 sampai 5 volt maka ATMega16
akan menampilkan Biar Pet. Buat flowcart, Program dan aplikasikan ke
hardwarenya
2. Amati dan buat laporannya.

4.7. Percobaan III ADC


1. Ganti Potensiometer dengan Rangkaian LDR seperti yang ditunjukkan dalam
Gambar 4.15.

Gambar 4.15. Percobaan Menggunakan LDR


2. Beri Cahaya pada LDR dengan Jarak yang tertentu sehingga semua menu
pada langkah 4 dapat tampil semuanya.
3. Catat jarak antara sumber cahaya dan LDR
4. Ulangi dengan menggantikan R1 = 5K Ohm, 15K Ohm dan 22 K Ohm

66
5. Catat setiap perubahan jarak antara sumber cahaya dengan LDR untuk
masing-masing perubahan R1.
6. Buat laporan dan kesimpulan
4.8. Percobaan IV ADC
1. Modifikasi Rangkaian Gambar 4.15 menjadi sensor suhu dengan mengganti
rangkaian LDR dengan IC LM35. Dengan catatan saat inisialisasi ubah Volt.
Ref = Int. Cap. on AREF seperti ditunjukkan dalam Gambar 4.16.

Gambar 4.16. Setting Volt Referensi sebesar 2,56 Volt

67

Anda mungkin juga menyukai