Anda di halaman 1dari 7

BAB 3.

ADC

3.1 Tujuan
1. Mahasiswa dapat memahami cara kerja ADC.
2. Mahasiswa dapat membuat rangkaian ADC dan memprogramnya.

3.2 Landasan Teori


1. analogRead()
Membaca nilai pin analog yang memiliki resolusi 10-bit. Fungsi ini hanya dapat
bekerja pada analog pin (0-5). Hasil dari pembacaan berupa nilai integer dengan range 0
sampai 1023.
Value = analogRead(pin); // mengatur value sama dengan nilai
analog pin

2. analogWrite()
mengirimkan nilai analog pada pin analog.
analogWrite(pin, value); // menulis ke pin analog

3.3 Daftar Alat dan Bahan


1. PC
2. Proteus
3. Software Arduino
3.4 Prosedur Praktikum
1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut
POT
LM016L

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
ARDUINO

1
2
3

4
5
6

7
8
9
10
11
12
13
14
AREF
13
PB5/SCK
12
PB4/MISO
RESET 11
~PB3/MOSI/OC2A
10
~ PB2/SS/OC1B
9
~ PB1/OC1A
RV1 PB0/ICP1/CLKO
8

ATMEGA328P-PU
1121

DIGITAL (~PWM)
7
ANALOG IN
PD7/AIN1
6
A0 ~ PD6/AIN0
0%

PC0/ADC0 5
A1
PC1/ADC1
~ PD5/T1
4
D1
A2
PC2/ADC2
PD4/T0/XCK R1
3
A3 ~ PD3/INT1
PC3/ADC3 2
1k A4 PD2/INT0 470R
PC4/ADC4/SDA 1 LED-BLUE
A5 TX PD1/TXD
PC5/ADC5/SCL 0
RX PD0/RXD

ARDUINO UNO R3

Gambar 3.1 Rangkaian ADC


2. Ketiklah program sesuai dengan program berikut.
#include <LiquidCrystal.h>
LiquidCrystallcd(13,12,11,10,9,8);
int SensorPin1 = 0;
int ValueADC0 = 0;
int LED = 3;
void setup() {
lcd.begin(16, 2);
}
void loop() {
ValueADC0 = analogRead(SensorPin1);
analogWrite(LED,ValueADC0/4);
lcd.setCursor(0,0);
lcd.print("Nilai ADC0");
if(ValueADC0 >= 1000){
lcd.setCursor(0,1);
lcd.print(ValueADC0);
}
if(ValueADC0 <= 999 ){
lcd.setCursor(0,1);
lcd.print(ValueADC0);
lcd.setCursor(3,1);
lcd.print(" "); //1 spasi
}
if(ValueADC0 <= 99){
lcd.setCursor(0,1);
lcd.print(ValueADC0);
lcd.setCursor(2,1);
lcd.print(" ");//2 spasi
}
if(ValueADC0 <= 9){
lcd.setCursor(0,1);
lcd.print(ValueADC0);
lcd.setCursor(1,1);
lcd.print(" ");//3 spasi
}
}
3. Simulasikan dan berilah analisisnya.
3.5 Pembahasan
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). ADC (Analog to Digital
Converter) memiliki 2 karakter prinsip, yaitu kecepatan sampling dan resolusi.
Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam bentuk
besaran yang merupakan rasio perbandingan sinyal input dan tegangan referensi.
Sebagai contoh, bila tegangan referensi 5 volt, tegangan input 3 volt, rasio input
terhadap referensi adalah 60%. Jadi, jika menggunakan ADC 8 bit dengan skala
maksimum 255, akan didapatkan sinyal digital sebesar 60% x 255 = 153 (bentuk
decimal) atau 10011001 (bentuk biner). Percobaan yang ketiga ini bertujuan agar
mahasiswa dapat memahami cara kerja ADC serta dapat membuat rangkaian ADC
dan memprogramnya.
Bentuk komunikasi yang paling mendasar antara wujud digital dan analog
adalah piranti (biasanya berupa IC) disebut komparator. Piranti ini, yang
diperlihatkan secara skematik pada gambar dibawah, secara sederhana
membandingkan dua tegangan pada kedua terminal inputnya. Bergantung pada
tegangan mana yang lebih besar, outputnya akan berupa sinyal digital 1 (high) atau 0
(low). Komparator ini digunakan secara luas untuk sinyal alarm ke komputer atau
sistem pemroses digital. Elemen ini juga merupakan satu bagian dengan konverter
analog ke digital dan digital ke analog yang akan didiskusikan nanti.
Langkah kerja yang dilakukan yaitu memilih komponen yang akan digunakan
pada menu component mode aplikasi proteus. Lalu menyambungkan komponen-
komponen seperti pada gambar rangkaian pada modul. Setelah itu membuat program
pada aplikasi arduino seperti yang tertulis pada modul. Kemudian memberi program
pada komponen arduino di proteus. Setelah itu menjalankan simulasi dari rangkaian
dengan menekan tombol play pada apilkasi Proteus.
Sintak analogRead()berfungsi untuk membaca nilai pin analog yang
memiliki resolusi 10-bit. Fungsi ini hanya dapat bekerja pada analog pin (0-5). Hasil
dari pembacaan berupa nilai integer dengan range 0 sampai 1023. Contoh sintak
program adalah sebagai berikut:Value = analogRead(pin);. Sedangkan
sintak analogWrite()berfungsi untuk mengirimkan nilai analog pada pin analog.
Contoh sintak program adalah sebagai berikut :analogWrite(pin, value);.
Untuk nilai ADC sendiri yang ditampilkan pada LCD menggunakan sintak
program ValueADC0 = analogRead(SensorPin1); yang berfungsi untuk
membaca nilai pin analog dari hasil dari pembacaan berupa nilai integer dengan range
0 sampai 1023 yang ditampilkan pada output berupa LCD dengan letaknya
menggunakan sintak lcd.setCursor(0,0);. Pada LCD pada baris peratama
akan menampilkan karakter Nilai ADC0 dengan sintak lcd.print("Nilai
ADC0");. Untuk sintak program analogWrite(LED,ValueADC0/4);,
difungsikan untuk mengirimkan nilai analog pada pin analog pada hasil nilai integer.
Hasil nilai integer ini dapat ditentukan dari input berupa potensimoter. Nilai dari
ADC maksimal adalah 1023 yang ketika dibagi dengan 4 akan bernilai 255. Nilai ini
merupakan nilai analog untuk membuat pin digital on atau dalam kondisi high
sehingga dapat menyalakan LED. Pengaruh pada LCD adalah untuk menampilkan
nilai analog dari potensiometer sebagai masukan yang dikeluarkan nilainya pada
output LCD. Proses ADC ditentukan pada sintak sebagai berikut
:if(ValueADC0<=999){difungsikan untuk perhitungan nilai integer pada ADC
jika nilainya kurang atau sama dengan 999 yang ditentukan pada input potensiometer.
Sedangkan untuk if(ValueADC0<=99){ adalah jika nilai integer kurang dari
atau sama dengan 99.
Setelah kita tulis program tersebut pada arduino kemudian kita compile dan
masukkan program tersebut pada arduino uno dalam proteus. Kemudian play
simulasi. Terlihat ada angka ADC yang tampil pada LCD. Kemudian saat kita rubah
nilai dari potensiometer nilai ADC tersebut juga ikut berubah. Ini adalah pengaruh
dari program Value ADC0 = analog Read(SensorPin1); jadi saat kita rubah
potensiometer maka nilai ADC yang terbaca pada pin analog akan terbaca nilainya
dan ditampilkan melalui LCD.
Pada percobaan dengan menampilkan nilai resistansi potensiometer dapat kita
ketahui bahwa setting untuk menampilkan tulisan nilai resistansi VR seperti pada
gambar 3.x menggunakan setting yang sama untuk menampilkan tulisan Nilai
ADC0, hanya saja posisi x,y nya yang berbeda. Sedangkan untuk nilai dari VR
sendiri menggunakan fungsi map ()untuk mengatur rentang nilai VR yang akan
ditampilkan. Dan untuk menampilkannya menggunakan sintak yang sama untuk
menampilkan nilai ValueADC0 yaitu seperti yang terdapat pada gambar 3.x
3.6 Kesimpulan
Berdasarkan percobaan yang telah dilakukan dapat disimpulkan bahwa :
1. Saat nilai ADC maksimal, lampu LED menyala.
2. Pin LCD nomor 4 (RS) merupakan Register Selector yang berfungsi untuk
memilih Register Kontrol atau Register Data.
3. Saat potensiometer dinaikkan maka, nilai ADC semakin besar.
4. Potensiometer menpengaruhi naik dan turunnya besar ADC pada LCD karena
saat diturunan nilai ADC semakin kecil dan semakin mendekati nol.
5. Hasil dari pembacaan berupa nilai integer dengan range 0 sampai 1023.
6. Nilai ADC berasal dari potensiometer yang merupakan nominal analog.
7. Ketika nilai ADC maksimal LED akan menyala karena nilainya memenuhi 255.

Anda mungkin juga menyukai