Unit 4 ADC
Unit 4 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
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.
- 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.
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
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.
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.
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.
63
3
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.
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.
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.
67