i
PRAKTIKUM ELEKTRONIKA DIGITAL
DAN MIKROKONTROLER
ANALOG DIGITAL CONVERTER (ADC)
Penyusun:
Sarwo Pranoto, ST., M.Eng.
PROGRAM STUDI TEKNIK LISTRIK
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI UJUNG PANDANG
ii
LEMBAR IDENTITAS DAN PENGESAHAN
Mata Kuliah : Praktikum Elektronika Digital dan Mikrokontroler Kode Mata Kuliah : TL421313
Nama Job : Analog Digital Converter (ADC)
Penyusun : Sarwo Pranoto, ST., M.Eng. (198006202005011005) Jobsheet ini telah diperiksa dan disetujui untuk digunakan sebagai
Bahan kuliah bagi mahasiswa Politeknik Negeri Ujung Pandang
Menyetujui :
Kepala Unit P3AI, Ketua Jurusan Teknik Elektro
Ir. Hastami Murdiningsih, M.T. Ibrahim Abduh, S.ST., M.T.
NIP 19600606 198803 2 002 NIP 19680514 199303 1 001 Mengetahui/Menyetujui :
Pembantu Direktur I,
Ir. Muas, M.T.
iii
KATA PENGANTAR
Jobsheet ini merupakan jobsheet mata kuliah Praktikum Elektronika Digital dan Mikrokontroler pada Program Studi Teknik Listrik Jurusan Teknik Elektro yang membahas tentang fitur Analog Digital Converter (ADC) yang terdapat pada mikrokontroler keluarga megaAVR.
Jobsheet ini memuat tentang dasar teori ADC, prosedur yang digunakan untuk melakukan praktikum, skematik rangkaian dan program yangn digunakan dalam praktikum ini.
Akhirnya, penyusun manyadari masih terdapat kekurangan pada jobsheet ini. Untuk itu penyusun terbuka terhadap kritik dan saran untuk perbaikan jobsheet di masa yang akan datang.
iv
DAFTAR ISI
LEMBAR IDENTITAS DAN PENGESAHAN ...ii
KATA PENGANTAR... iii
DAFTAR ISI ... iv
DAFTAR GAMBAR ...v
DAFTAR LAMPIRAN ... vi
GARIS BESAR RANCANGAN PEMBELAJARAN (GBRP)... vii
ANALOG DIGITAL CONVERTER (ADC) ... 1
1. Tujuan Percobaan: ... 1
2. Dasar Teori... 1
3. Daftar Alat / Bahan ... 2
4. Gambar Rangkaian ... 3
5. Langkah Kerja ... 4
5.1 Sebelum Kegiatan Praktikum ... 4
5.2. Selama Kegiatan Praktikum ... 4
6. Keselamatan Kerja... 13
7. Data Percobaan ... 14
8. Soal dan Pertanyaan... 16
9. Daftar Pustaka: ... 16
v
DAFTAR GAMBAR
Gambar 1. Rangkaian skematik masukan ADC... 3
Gambar 2. Jendela Welcome to AVR Studio ... 4
Gambar 3. Project type ... 5
Gambar 4. Project name dan Initial file... 5
Gambar 5. Lokasi default penyimpanan project ... 5
Gambar 6. Jendela pilihan lokasi penyimpanan file ... 6
Gambar 7. Jendela Select debug platform and devices ... 6
Gambar 8. Code editor ... 7
Gambar 9. Jendela Project Options ... 7
Gambar 10. Kode di editor ... 8
Gambar 11. Konfirmasi program sukses di build ... 8
Gambar 12. Sinaprog ... 9
Gambar 14. Jendela Membuat project baru ... 10
Gambar 15. CodeWizardAVR ... 10
Gambar 16. Tab pada CodeWizardAVR ... 10
Gambar 17. Generate dan save hasil setting. ... 11
Gambar 18. Code Editor ... 11
Gambar 19. Compile program dan memastikan tidak ada error ... 12
Gambar 20. Mengaktifkan download program ke chip ... 12
vi
DAFTAR LAMPIRAN
vii
GARIS BESAR RANCANGAN PEMBELAJARAN (GBRP)
Nama Mata Kuliah : Praktikum Laboratorium Digital dan Mikrokontroler Nomor Kode/S K S : TL341323/3
Deskripsi singkat mata kuliah : Membahas tentang dasar gerbang logika, penjumlahan dan penyederhanaan fungsi logika, flip-flop dan counter serta pemrograman mikrokontroler untuk aplikasi input/output digital seperti menampilkan data melalui LED dan Seven Segments, Liquid Cristal Displays berdasarkan hasil pembacaan data hasil konversi besaran Analog to Digital, membangkitkan gelombang Pulse Witdh Modulation untuk berbagai aplikasi kontrol salah satunya kontrol kecepatan motor DC.
Kompetensi Utama : Setelah mengikuti mata kuliah ini, mahasiswa diharapkan dapat membuat rangkaian digital sederhana dan dapat membuat aplikasi pengontrolan berbasis mikrokontroler.
No. Tujuan Intruksional Khusus Pokok Bahasan Sub Pokok Bahasan Waktu Referensi
1. Menjelaskan cara menggunakan fitur Analog Digital Converter pada mikrokontroler Atmega 16
Analog Digital Converter
- Mikrokontroler ATMega16 - Analog Digital Converter - Sensor analog suhu, LDR dan
potensiometer.
viii
Referensi :
1. Winoto, Ardi, Mikrokontroler AVR ATmega8/32/16/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR, Penerbit Informatika, Bandung, 2010
2. Pavel Haiduc, HP InfoTech S.R.L, CodeVisionAVR Version 2.03.2 User Manual, HP InfoTech S.R.L , Romania, 2008
1
ANALOG DIGITAL CONVERTER (ADC)
1. Tujuan Percobaan:
Setelah menyelesaikan praktikum ini, mahasiswa mampu: a. Mengakses ADC dengan resolusi 8 bit.
b. Memprogram ADC dengan masukan sensor berupa potensiometer, LDR, LM35.
c. Mengaplikasikan fungsi ADC dengan masukan sensor pada mikrokontroler AVR
2. Dasar Teori
Pada praktikum ini, praktikan akan mencoba memanfaatkan fasilitas masukan analog pada mikrokontroler AVR ATmega16. ATmega16 mempunyai ADC (Analog to Digital Converter) internal 10-bit sebanyak 8 kanal (multiplexed), yaitu ADC0 – ADC7. Ini berarti, tegangan input antara 0 – 5 volt akan dikonversi menjadi bilangan antara 0 – 1023. Resolusi yang dihasilkan adalah 5 volt/1024 unit atau 4.9 mV/unit.
Berikut adalah fitur lengkap dari ADC internal tersebut: a. 10 – bit resolution
b. 65 – 260 µs conversion time.
c. Up to 15 kSPS at maximum resolution
d. 8 Multiplexed Single Ended Input Channels
e. Optional Left Adjusment for ADC result Readout
f. 0 – 5 VCC ADC Input Voltage range
g. Selectable 2.56V ADC Reference VoltageFree Running or Single Conversion Mode
h. ADC Start Conversion by triggering on Interrupt Sources
2
j. Sleep Mode Noise Canceler
Konversi dengan resolusi 10-bit dapat merujuk pada formula sebagai berikut: ADC = (Vin/Vref)*1024
Sementara, untuk resolusi 8-bit, formula yang digunakan menjadi: ADC = (Vin/Vref)*256
ADC memiliki dua mode operasi: Single Conversion Mode dan Free Running. Dalam mode Single Conversion, setiap konversi harus di-inisiasi. Ketika proses konversi selesai, hasil disimpan dalam ADC Data Register, dan proses konversi selesai. Dalam mode Free Running, kita start konversi satu kali, dan selanjutnya, ADC secara otomatis memulai konversi berikutnya, setelah proses konversi sebelumnya selesai.
Konversi analog ke digital memerlukan waktu. Kecepatan konversi sangat bergantung pada sinyal clock yang digunakan ADC (ADC Clock). Waktu konversi proporsional dengan frekuensi sinyal ADC Clock, yang besarannya sekitar 50 kHz – 200 kHz. Namun, untuk resolusi yang lebih rendah, dapat digunakan frekuensi yang lebih tinggi dari rentang tersebut.
3. Daftar Alat / Bahan
a. 1 set PC lengkap dengan program aplikasi CodeVisionAVR atau AVR Studio dan terminal.
b. 1 unit Modul MikroAVR16 c. 1 unit Modul Potensiometer 10 K
3
g. 1 unit kabel konektor USB
h. Kabel jumper secukupnya dan obeng terminal
4. Gambar Rangkaian
Skematik hardware dari masukan sensor yang dihubungkan dengan MikroAVR16:
a. Potensiometer b. LDR (Light Dependent Resistor)
4
5. Langkah Kerja
5.1 Sebelum Kegiatan Praktikum
a. Absensi oleh pembimbing/instrukstur b. Pengarahan oleh pembimbing
c. Baca dan pahami jobsheet yang diberikan dalam kegiatan praktikum. d. Pinjam/Bon peralatan dan bahan praktikum.
e. Pastikan bahan dan peralatan sesuai dengan kegiatan praktikum yang akan dilaksanakan.
5.2. Selama Kegiatan Praktikum
Selama kegiatan praktikum terdapat dua prosedur yang harus di patuhi oleh praktikan yaitu:
5.2.1 Prosedur Umum
a. Siapkan bahan dan peralatan yang akan digunakan.
b. Rangkai modul yang akan digunakan sesuai gambar rangkaian. c. Jalankan program aplikasi AVR Studio atau CodeVisionAVR I. Jika menggunakan AVR Studio:
1) Buka program AVR Studio 4 , sehingga tampil seperti gambar 2 Pilih New Project.
5
2) Buat project baru dengan menggunakan tipe Atmel AVR Assembler jika ingin membuat project dalam bahasa Assembler atau AVR GCC jika ingin membuat dalam program bahasa C. Pilih AVR GCC karena praktikum ini menggunakan program bahasa C.
Gambar 3. Project type
3) Tulis nama project pada bagian bawah Project name, centang Create initial file dan Create Folder. Secara otomatis Initial file akan memiliki nama yang sama dengan nama projectnya dengan tambahan ekstensi .c dan semua file dalam project tersebut tersimpan dalam folder yang sama yang telah dibuat.
Gambar 4. Project name dan Initial file
4) Pilih lokasi yang digunakan untuk menyimpan project. Browse jika ingin mengubah lokasi yang ada dan pilih Select pada lokasi yang diinginkan.
6
Gambar 6. Jendela pilihan lokasi penyimpanan file
5) Klik Next >> sehingga muncul tampilan seperti gambar 7. Pilih AVR Simulator pada bagian Debug Platform dan Pilih ATmega16 pada bagian Device. Dan Klik Finish untuk memunculkan editor seperti pada gambar 8.
7
Gambar 8. Code editor
6) Pengaturan frekuensi CPU yang digunakan oleh mikrokontroler dilakukan dengan mengklik Project >> Configuration Options >> sehingga muncul jendela seperti gambar 9 Kemudian isi frekuensi yang digunakan sesuai dengan yang ada di modul mikrokontroler. Klik OK jika sudah selesai.
8
7) Tulis program di editor.
Gambar 10. Kode di editor
8) Build Program atau tekan F7 sampai tidak ada yang error.
Gambar 11. Konfirmasi program sukses di build
9) Selanjutnya download file hex hasil compile menggunakan software SinaProg. Setting pada software SinaProg sebagai berikut:
a. Hex File:Berisi file .hex yang akan didownload ke mikrokontroler. b. Device : ATmega16;
c. Fuses : Int. 1 MHz
9
Gambar 12. Sinaprog
II. Jika menggunakan CodeVisionAVR:
1) Jalankan program CodeVisionAVR C Compiler. 2) Pilih Project untuk membuat project baru.
10
Gambar 14. Jendela Membuat project baru 4) Pada CodeWizardAVR pilih Atmega pada AVR Chip Type
Gambar 15. CodeWizardAVR
5) Pada CodeWizardAVR pilih menu Chip dan pilih menu pilihan ATmega16 serta pilih frekuensi Clock sebesar 11,059200 MHz.
11
6) Masih pada CodeWizardAVR, setting mikrokontroler sesuai dengan kebutuhan praktikum. Setting tersebut dapat dilakukan dengan mengklik tab-tab yang ada dalam CodeWizardAVR.
7) Simpan hasil setting. Program Generate, Save and Exit
Gambar 17. Generate dan save hasil setting.
8) Simpan nama source file,nama project file, nama codewizard file dengan nama yang Anda tentukan.
9) Tuliskan program pada editor.
12
10) Kompilasi program dengan mengklik Program → Compile dan memastikan tidak ada error.
Gambar 19. Compile program dan memastikan tidak ada error 11) Jika sukses configure hasil compilasi untuk di download ke
mikrokontroler . ProgramConfigure dan klik After Build dan centang Program the Chip dan klik OK.
13
12) Build program, Program Build
13) Download hasil kompilasi ke mikrokontroler
5.2.2 Prosedur Khusus:
Untuk menggunakan ADC, perlu dilakukan sejumlah langkah inisialisai: a. Tentukan prescaler untuk menentukan ADC Clock. Terdapat pilihan
prescaler: 2, 4, 8, 16, 32, 64 dan 128. Pengaturan prescaler dilakukan
melalui bit ADSP0, ADSP1 dan ADSP2 dalam register ADCSRA.
b. Tentukan tegangan referensi yang digunakan (AVCC, AREF atau Internal), dengan mengaturnya melalui bit REFS0 dan REFS1 dalam register ADMUX.
c. Enable ADC dengan memberikan logika 1 pada bit ADEN dalam register
ADCSRA.
Gambar 21. Regist er ADC
6. Keselamatan Kerja
Petunjuk keselamatan kerja:
a. Setiap mahasiswa harus menggunakan pakaian dan perlengkapan praktikum dan mematuhi peraturan yang berlaku pada laboratorium di Program Studi Teknik Listrik Politeknik Negeri Ujung Pandang
14
7. Data Percobaan
Modul I/O yang digunakan pada praktikum ini mempunyai 3 masukan sensor yang terhubung pada masukan analog ATMega16. Masukan Sensor tersebut adalah sebagai berikut :
1. Potensiometer
2. LDR (Light Dependent Resistor) 3. LM35 (Analog Temperature Sensor) Percobaan ke :
1) ADC 8-bit dengan Potensiometer.
Pada percobaan ini, kita akan membuat program membaca masukan analog dari potensiometer dan mengeluarkan data hasil konversi analog ke digital port serial ke terminal. Programnya adalah sebagai berikut:
#include <avr/io.h>
#include <avr/interrupt.h> #include <util/delay.h> #include <stdio.h>
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &=~_BV(bit)) #define sbi(sfr, bit) (_SFR_BYTE(sfr) |=_BV(bit))
#define BAUDRATE 9600 //Calculate UBRR Value
#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1)
#define cbi(sfr,bit) (_SFR_BYTE(sfr) &=~_BV(bit)) #define sbi(sfr,bit) (_SFR_BYTE(sfr) |=_BV(bit)) void delay_ms (unsigned int ms)
{
UBRRH = (UBRRVAL >> 8); //high byte
//set data frame format:asynchronous mode, no parity, // 1 stop, 8 bit data
15
unsigned int adc_read(unsigned char adc_input) {
ADMUX = (ADMUX & 0xF0) | adc_input; _delay_us(10);
void USART_putchar(unsigned char temp) {
//wait for empty transmit buffer while (!(UCSRA & (1<<UDRE))) {}; UDR = temp;
}
void USART_puts(char ustr[]) {
for (short i=0; ustr[i] !=0x00;i++) USART_putchar(ustr[i]);
sprintf(mystr,"Nilai ADC : %d\n\r", adc); USART_puts(mystr);
delay_ms(200); }
16
8. Soal dan Pertanyaan
Membuat laporan resmi berdasarkan hasil kegiatan
a. Memodifikasi percobaan dengan merubah pembacaan ADC pada sensor secara bergantian sesuai dengan urutan berikut dengan mengubah nilai masukan x ADC pada fungsi read_adc(x);
1) Potensiometer -> ADC6
Konversi rumus dengan resolusi ADC-8 bit menjadi 0-5 volt dc 2) LDR -> ADC1
Perhatikan nilai output ADC ketika permukaan LDR ditutup dan dibuka berdasarkan rangkaian.
3) LM35 -> ADC0
Perhatikan nilai output ADC ketika permukaan LM35 lebih panas atau lebih dingin.
9. Daftar Pustaka:
Winoto, Ardi, Mikrokontroler AVR ATmega8/32/16/8535 dan Pemrogramannya dengan Bahasa C pada WinAVR, Penerbit Informatika, Bandung, 2010
Pavel Haiduc, HP InfoTech S.R.L, CodeVisionAVR Version 2.03.2 User Manual, HP InfoTech S.R.L , Romania, 2008
17 DAFTAR LAMPIRAN
Lampiran 1
FORM PENILAIAN
Tabel 1. Form Penilaian
NAMA MAHASISWA / STB ANGKA HURUF JENIS PENILAIAN :
PRAKTIKUM : Keaktifan (10 %) Absensi (5 %) Kerapihan (5 %) Kesuksesan (40 %)
EVALUASI (UJI TULIS) + Demo Kerja Alat (15 %) LAPORAN (20 % ) + ASISTENSI (5 %)