SISTEM MIKROPROSSESOR
ANALOG TO DIGITAL CONVERTER (ADC)
Disusun Oleh
Nurul Khairiyah A 04161054
Rizky Wulandari 04161067
Toga Clinton Sihotang 04161073
PROGRAM STUDI
TEKNIK ELEKTRO
INSTITUT TEKNOLOGI KALIMANTAN
2018
1
BAB I
LANDASAN TEORI
1.1 Arduino
Arduino adalah pengendali mikro single-board yang bersifat open-source,
diturunkan dari wiring platform, dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR
dan softwarenya memiliki bahasa pemrograman sendiri [1].
Arduino juga merupakan platform hardware terbuka yang ditujukan kepada
siapa saja yang ingin membuat purwarupa peralatan elektronik interaktif
berdasarkan hardware dan software yang fleksibel dan mudah digunakan.
Mikrokontroler diprogram menggunakan bahasa pemrograman arduino yang
memiliki kemiripan syntax dengan bahasa pemrograman C. Karena sifatnya yang
terbuka maka siapa saja dapat mengunduh skema hardware arduino dan
membangunnya[2].
Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel
sebagai basis, namun ada individu/perusahaan yang membuat clone arduino dengan
menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level
hardware. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada
opsi untuk mem-bypass bootloader dan menggunakan downloader untuk
memprogram mikrokontroler secara langsung melalui port ISP [2].
Seperti Mikrokontroler yang banyak jenisnya, Arduino lahir dan berkembang,
kemudian muncul dengan berbagai jenis. Diantaranya yang paling sering dipakai
antara lain:
a. Arduino Uno
Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula
sangat disarankan untuk menggunakan Arduino Uno. Banyak sekali referensi yang
membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3),
menggunakan ATMEGA328 sebagai Mikrokontrolernya, memiliki 14 pin I/O digital
dan 6 pin input analog. Untuk pemprograman cukup menggunakan koneksi USB type
A to type B. Sama seperti yang digunakan pada USB printer [3].
Arduino dapat diberi daya melalui koneksi USB (Universal Serial Bus) atau
melalui power supply eksternal. Jika arduino dihubungkan kedua sumber daya
2
tersebut secara bersamaan, maka arduino uno akan memilih salah satu sumber
daya secara otomatis untuk digunakan. Power supply external dapat berasal dari
adaptor AC ke DC atau baterai. Adaptor dapat dihubungkan ke soket power pada
arduino uno[1].
Arduino uno dapat beroperasi pada tegangan 6 sampai 20 volt. Jika arduino
diberi tegangan dibawah 7 volt, maka pin 5V akan menyediakan tegangan
dibawah 5 volt dan arduino uno mungkin bekerja tidak stabil. Jika diberikan
tegangan melebihi 12 volt, penstabilan tegangan kemungkinan akan menjadi
terlalu panas dan merusak arduino uno. Tegangan rekomendasi yang diberikan ke
arduino uno berkisar antara 7 sampai 12 volt [3].
b. Arduino Mega
Arduino Mega 2560 adalah papan pengembangan mikrokontroller yang berbasis
Arduino dengan menggunakan chip ATmega2560. Board ini memiliki pin I/O
yang cukup banyak, sejumlah 54 buah digital I/O pin (15 pin diantaranya adalah
PWM), 16 pin analog input, 4 pin UART (serial port hardware). Arduino Mega
2560 dilengkapi dengan sebuah oscillator 16 Mhz, sebuah port USB, power jack
DC, ICSP header, dan tombol reset. Board ini sudah sangat lengkap, sudah
memiliki segala sesuatu yang dibutuhkan untuk sebuah mikrokontroller.
Arduino Mega dapat diaktifkan melalui koneksi USB atau dengan Catu daya
Eksternal. Sumber listrik dipilih secara otomatis. Eksternal (nonUSB) daya dapat
dating baik dari AC-DC adaptor atau baterai. Adaptor ini dapat dihubungkan
dengan cara menghubungkannya plug pusat-positif 2.1 mm ke dalam board
penghubung listrik. Lead dari beterai dapat dimasukkan ke dalam header pin GND
dan Vin dari konektor Power.
3
Bord dapat beroperasi pada pasokan daya dari 6-20 volt. Jika diberikan
dengan kurang dari 7V, bagaimanapun pin 5V dapat menyuplai kurang dari 5 Volt
dan board mungkin tidak stabil. Jika menggunakan lebih dari 12 Volt, regulator
tegangan bias panas dan merusak board. Rentang yang dianjurkan adalah 7-12
Volt [3].
4
sensor proximity yang dapat membedakan antara garis hitam dengan lantai putih.
Sensor proximity ini dapat dikalibrasi untuk menyesuaikan pembacaan sensor
dikalibrasi untuk menyesuaikan pembacaan sensor terhadap kondisi pencahayaan
ruangan, sehingga pembacaan sensor lebih akurat [6].
Robot Line Follower terbagi menjadi dua jenis, yaitu robot line Follower
analog dan digital. Pada Line Follower analog tidak diperlukan adanya
pemrograman robot secara software sedangkan robot Line Follower digital
membutuhkan program pada bagian mikrokontrollernya sebagai prosessor atau
otak dari robot Line Follower itu sendiri [6].
Komponen pada robot Line Follower diantaranya adalah pertama
Mikrokontroller untuk mengontrol operasi dari mesin. Kedua, Photodiode adalah
dioda yang bekerja berdasarkan intensitas cahaya, jika phodiode terkena cahaya
maka photodiode bekerja seperti dioda pada umumnya, tetapi jika tidak mendapat
cahaya maka photodiode akan berperan seperti resistor dengan nilai tahanan yang
besar sehingga arus listrik tidak dapat mengalir. Ketiga, Motor DC memerlukan
suplai tegangan yang searah pada kumparan medan untuk diubah l berputar) dan
kumparan jangkar disebut rotor (bagian yang berputar). Jika terjadi putaran pada
kumparan jangkar dalam pada medan magnet, maka akan timbul tegangan (GGL)
yang berubah-ubah arah pada setiap setengah putaran, sehingga merupakan
tegangan bolak-balik. Keempat, LCD (Liquid Crystal Display) adalah suatu jenis
media tampil yang menggunakan kristal cair sebagai penampil utama. Kelima,
Downloader berfungsi untuk memasukkan bahasa pemrograman yang telah dibuat
kedalam mikrokontroler [6].
5
BAB II
PEMBAHASAN
2.1 Hardware
CARA KERJA ADC
Analog To Digital Converter (ADC) adalah pengubah input analog
menjadi kode – kode digital. ADC banyak digunakan sebagai Pengatur proses
industri, komunikasi digital dan rangkaian pengukuran/ pengujian. Umumnya
ADC digunakan sebagai perantara antara sensor yang kebanyakan analog dengan
sistim komputer seperti sensor suhu, cahaya, tekanan/ berat, aliran dan sebagainya
kemudian diukur dengan menggunakan sistim digital (komputer).
Pada Arduino, ADC dapat diakses melalui pin Analog A0 – A5 (pada
Arduino UNO) dan A0-A11 (pada Arduino Mega). Perbedaan pin analog dan pin
digital pada Arduino adalah pada pin digital, hanya dapat membaca sinyal 0 Volt
sebagai LOW dan sinyal 5V sebagai HIGH. Sedangkan pada pin analog, dapat
mengenali sinyal pada rentang nilai voltase tersebut. Pada Arduino, ADC
memiliki resolusi 10 bit, artinya nilai hasil konversi berkisar dari 0 hingga 1023.
Pin analog ini akan terhubung dengan microchip ATmega32, dimana didalam
microchip ini terdapat ADC 10 bit dengan skema yang ditunjukkan gambar 2.2.
ADC 10 bit ATmega32 memiliki spesifikasi sebagai berikut sebagai berikut.
Tabel 1. Spesifikasi ADC ATmega32
Resolusi 10 bit
Akurasi ± 2LSB
Waktu konversi 13 – 260 µs
Memiliki 8 kanal ADC
Rentang tegangan input = 0 volt – Vc
Tegangan referensi internal = 2,56 volt
Terdapat 2 mode kerja, yaitu:
a) Konversi tunggal (single conversion)
b) Konversi terus-menerus (free running
Nilai minimum ADC = 0 volt (GND)
6
Nilai maksimum ADC = tegangan pada pin AREF (minus 1 LSB).
Hasil konversi ADC disimpan pada pasangan register ADCH dan
ADCL.
Konversi ADC dimulai ketika mendapat auto trigger dari sumber
interupsi
Lengkapnya proses konversi ADC dapat menjadi pemicu interupsi.
7
b. Menentukan format data hasil konversi ADC bit ADLAR. Lihat
formatnya pada register ADCH & ADCL.
c. Memilih tegangan referensi ADCbit REFS0 dan REFS1 (lihat tabel 2).
Register ADCH dan ADCL berfungsi untuk menyimpan data hasil konversi
ADC dengan format yang bergantung pada nilai bit ADLAR (0 atau 1) pada
register ADMUX (bit ke-5).
8
Register ADCSRA adalah register 8 bit untuk melakukan manajemen sinyal
kontrol dan status ADC. Register ini berfungsi untuk :
a. Menentukan faktor pembagi (prescaler) frekuensi CPU yang digunakan
sebagai clock ADC pada bit ADPS0, ADPS1, dan ADPS2 (Lihat tabel 5)
b. Memilih mode operasi ADC
bit ADATE = 1 - Mode single conversion/auto trigger
bit ADATE = 0 - Mode free running conversion
c. Mengaktifkan auto trigger ADC (bit ADATE = 1), sehingga proses
pengonversian sinyal analog dimulai. Sumber trigger diatur
menggunakan bit ADTS0, ADTS1, dan ADTS2 pada register SFIOR.
Sumber trigger tergantung pada pengaturan bit ADATE pada register
ADCSRA.
d. Mengaktifkan ADC (bit ADEN = 1)
e. Memulai proses konversi (start conversion) ADC (bit ADSC = 1)
Jika mode single conversion: set ADSC tiap kali akan mengonversi.
Jika mode free running: set ADSC untuk memulai awal konversi.
9
ADSP2 ADSP1 ADSP0 Faktor
Pembagi
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
ADC ini beroperasi atau bekerja dalam berbagai mode. Mode ini tergantung
pada konversi yang diinginkan. Mode tersebut adalah sebagai berikut :
1. Single Conversion
Konversi dilakukan untuk sekali pembacaan sampel sinyal input.
10
Jika ingin membaca lagi harus melakukan sampel sinyal input lagi,
sehingga kita dapat mengonversi sinyal tegangan input ketika
dibutuhkan saja.
Konversi tunggal akan dimulai ketika bit-ADSC pada register
ADCSRA di-set. Bit tersebut akan tetap set sampai satu kali konversi
selesai (complete). Setelah konversi selesai, maka secara otomatis bit-
ADSC akan clear.
11
Proses konversi baru tidak akan terjadi jika sinyal trigger masih set
ketika proses konversi ADC selesai (complete).
Jika terjadi transisi (edge) sinyal positif lain saat proses konversi
berlangsung, maka edge sinyal tersebut akan diabaikan
3. Free Running
Penggunaan flag interupsi ADC sebagai sumber trigger membuat
proses konversi ADC baru dimulai segera setelah proses konversi
yang sedang berjalan selesai (complete).
Pada kondisi tersebut, ADC bekerja pada mode free running
conversion.
Pada mode free running, konversi dilakukan secara terus-menerus
(ADC membaca sample tegangan input kemudian dikonversi dan
hasilnya disimpan ke dalam register ADCH-ADCL secara terus-
menerus).
Proses konversi ADC harus dimulai dengan men-set bit ADSC pada
register ADCSRA.
Pada mode free running, ADC bekerja secara independen (tidak
bergantung) dari flag interupsi ADC. Apakah ADIF set atau clear,
maka tidak akan mempengaruhi operasi ADC
12
Gambar 2. 9 Timing Diagram ADC Free Running Conversion Mode
13
Gambar 2. 10 Cara Kerja Sensor garis
Ratas
Vout
Vin
Rbawah
14
Vin
R1 R2
Vout
ke mikrokontroler /
komparator
LED Photodiode/LDR
Gnd
2.2 Software
Software yang digunakan pada proses perancangan Line Follower adalah
Proteus dan Arduino IDE. Untuk proses ADC arduino digunakan software
Arduino IDE. Berdasarkan Implementasi pada Line Follower, untuk menjalankan
robot Line Follower tersebut diperlukan perubahan data dari data analog ke data
digital agar data dapat diolah oleh mikrokontroler.
15
Gambar 3. Software Arduino IDE
Kode Program Arduino biasa disebut sketch dan dibuat menggunakan bahasa
pemrograman C. Program atau sketch yang sudah selesai ditulis di Arduino IDE
bisa langsung dicompile dan diupload ke Arduino Board. Secara sederhana, sketch
dalam Arduino dikelompokkan menjadi 3 blok (lihat gambar di atas) yaitu
Header, Setup dan Loop.
Header merupakan bagian yang biasanya ditulis definisi-definisi penting yang
akan digunakan selanjutnya dalam program, misalnya penggunaan library dan
pendefinisian variable. Setup merupakan awal program Arduino berjalan, yaitu di saat
awal, atau ketika power on Arduino board. Biasanya di blok ini diisi penentuan
apakah suatu pin digunakan sebagai input atau output, menggunakan perintah
pinMode. Selain itu, initialisasi variable juga bisa dilakukan di blok ini. Loop
merupakan blok yang akan dieksekusi secara terus menerus. Apabila program sudah
sampai akhir blok, maka akan dilanjutkan dengan mengulang eksekusi dari awal blok.
Program akan berhenti apabila tombol power Arduino di matikan.
2.2.1 Inisialisasi
Inisialisasi yang dilakukan untuk ADC adalah pada pemrograman untuk
menjalankan robot Line Follower. Perubahan data analog ke data digital ini terjadi
16
ketika robot sensor photodiode pada Line Follower telah membaca tegangan
referensi. Selanjutnya data yang telah diterima tersebut dikonversikan kedalam
bentuk digital oleh mikrokontroller yakni ADC pada Arduino. Data yang telah
diproses dan dikonversi kembali menjadi data analog oleh DAC yang selanjutnya
sinyal dikirim ke motor driver hingga dapat menggerakkan Line Follower sesuai
perintah. Di bawah ini adalah program sensor pada robot Line Follower.
17
DAFTAR PUSTAKA
18