Anda di halaman 1dari 10

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);

3.3
1.
2.
3.

// menulis ke pin analog

Daftar Alat dan Bahan


PC
Proteus
Software Arduino

3.4 Prosedur Praktikum


1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut.

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

25

POT

D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14

4
5
6

1
2
3

ARDUINO

RS
RW
E

VSS
VDD
VEE

LM016L

AREF

PC0/ADC0
PC1/ADC1
PC2/ADC2
PC3/ADC3
PC4/ADC4/SDA
PC5/ADC5/SCL

DIGITAL (~PWM)

1k

A0
A1
A2
A3
A4
A5

ANALOG IN

0%

RV1

1121
ATMEGA328P-PU

RESET

PB5/SCK
PB4/MISO
~PB3/MOSI/OC2A
~ PB2/SS/OC1B
~ PB1/OC1A
PB0/ICP1/CLKO
PD7/AIN1

~ PD6/AIN0
PD5/T1
~
PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD

13
12
11
10
9
8
7
6
5
4
3
2
1
0

D1
LED-BLUE

R1
470R

ARDUINO UNO R3

Gambar 3.1 Rangkaian Arduino UNO dengan ADC


2. Ketiklah program sesuai dengan program berikut.
#include <LiquidCrystal.h>
LiquidCrystal lcd(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){
Praktikum Mikrokontroler
Laboratorium Sistem Kendali

26

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 sinyal 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 seperti
sensor suhu, cahaya, tekanan/berat, aliran dan sebagainya dengan system
komputer atau kontroler yang memproses data digital.
ADC adalah sebuah sarana pada mikrokontroler yang berfungsi mengubah
tegangan analog menjadi data digital. Sebenarnya mikrokontroler hanya
mengubah nilai tegangan analog yang masuk menjadi suatu nilai digital yang
mempunyai range tertentu. Praktikum ini bertujuan agar mahasiswa dapat
memahami cara kerja ADC dan mahasiswa dapat membuat rangkaian ADC dan
memprogramnya.
Pada listing program, #include<LiquidCrystal.h> berfungsi
menginisialisasi

LCD

yang

terhubung

pada

rangkaian.

LiquidCrystallcd(13,12,11,10,9,8); untuk menginisialisasi pin

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

27

Arduino Uno yang terhubung dengan LCD. int ValueADC0 = 0; berfungsi


menyatakan input potensiometer dihubungkan dengan pin A0 Arduino Uno. int
LED = 3;berfungsi menyatakan bahwa LED dihubungkan dengan pin 3
Arduino Uno. lcd.begin(16, 2); berfungsi menyatakan bahwa LCD yang
digunakan yaitu mempunyai karakter tampilan 16 kolom dan 2 baris.
ValueADC0 = analogRead(SensorPin1);berfungsi membaca nilai pin
analog dari hasil dari pembacaan nilai ADC berupa nilai integer dengan range 0
sampai

1023

yang

ditampilkan

pada

output

berupa

LCD

sedangkan

lcd.setCursor(0,0);untuk mengatur letaknya. lcd.print("Nilai


ADC0");untuk menampilkan karakter nilai ADC0 pada baris pertama LCD.
analogWrite(LED,ValueADC0/4); untuk mengirimkan nilai analog pada
pin analog pada hasil nilai integer. ValueADC0/4 menjelaskan nilai duty cycle
yang diinginkan mulai dari 0 hingga 255 dengan keluaran maksimum tegangan 5
volt. Hasil nilai integer ini dapat ditentukan dari input berupa potensimoter.
Proses

ADC

ditentukan

pada

sintak

sebagai

berikut:

if(ValueADC0<=999)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. lcd.setCursor(0,1);untuk menampilkan nilai
integer pada LCD yang difungsikan bahwa letak nilai output pada LCD
ditampilkan
menampilkan

pada
nilai

baris
ADC

kedua.
pada

lcd.print(ValueADC0);
pin

Arduino

Uno

A0.

untuk
Program

lcd.setCursor(3,1); berfungsi mengatur tampilan tata letak pada LCD.


analogRead() adalah untuk memperoleh nilai digital sesuai dengan besar nilai
integer analog yang terdeteksi .
Untuk rangkaiannya, pin 4 pada LCD dihubungkan dengan pin 13 pada
Arduino. Pin 6 pada LCD dihubungkan dengan pin 12 pada Arduino. Pin 11 pada
LCD dihubungkan dengan pin 11 pada Arduino. Pin 12 pada LCD dihubungkan
dengan pin 10 pada Arduino. Pin 13 pada LCD dihubungkan dengan pin 9 pada
Arduino. Pin 14 pada LCD dihubungkan dengan pin 8 pada Arduino. Pin 5 pada

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

28

LCD dihubungkan dengan ground. Hubungkan LED dengan resistor kemudian


dengan ground ke pin 3. Kemudian hubungkan potensiometer dengan Vcc dan
ground ke pin A0.
Nilai yang ditampilan pada LDC adalah bentuk digital yaitu antara 0-1023
yang merupakan pemetaan dari tegangan input antara 0-5 volt. Ketika potensio
diubah maka tegangan akan berubah, tegangan ini akan masuk dan diproses oleh
mikrokontroler dan menghasilkan nilai antara 0 sampai dengan 1023. Nilai
tersebut dapat digunakan untuk pengambilan keputusan seprti yang dilakukan
pada program yang dimasukan dalam Arduino pada praktikum ini. Contoh pada
kode program if(ValueADC0<=99).

Pada contoh ini nilai variable

ValueADC dibandingkan dengan nilai 99 untuk mengambil sebuah keputusan


dengan fungsi if. Tanpa adanya ADC, hal tersebut tidak mungkin untuk dilakukan.
Pada dasarnya sebuah prosesor ataupun kontroler akan memproses nilai
digital. Sensor yang digunakan untuk berkomunikasi dengan kondisi lingkungan
menghasilkan sinyal analog. Hal inilah yang membuat ADC sangat berperan
dalam proses pengontrolan berbasis elektronik. ADC menjembatani antara sensor
dan prosesor.

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

29

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

30

3.6 Kesimpulan
Berdasarkan percobaan yang telah dilakukan, dapat diambil kesimpulan
sebagai berikut:
1. Nilai output dari ADC adalah data digital antara 0 sampai dengan 1023
2. ADC memetakan tegangan input 0 sampai 5 volt menjadi nilai digital
3.

antara 0-1023.
Data digital dapat digunakan untuk pengambilan keputusan melalui

4.

perbandingan.
Semakin besan nilai tegangan maka nilai data digital juga semakin

5.

besar.
Semakin besar hambatan pada potensio maka tegangan yang masuk

6.

semakin besar.
Potensio difungsikan seperti sensor yang hambatannya berubah
sehingga tegangan yang masuk berubah untuk mengetahui nilai digital
dari sebuah sinyal tegangan analog.

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

31

Lampiran
Gambar 3.2. Rangkaian percobaan

Gambar 3.3. Rangkaian ketika ADC bernilai 0

Gambar 3.4. Rangkaian ketika ADC bernilai 512 LED on

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

25

Gambar 3.5. Rangkaian ketika ADC bernilai 512 LED off

Gambar 3.6. Rangkaian ketika ADC bernilai 1023.

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

26

Gambar 3.7. Source code Arduino (1)

Gambar 3.8. Source code Arduino (2)

Praktikum Mikrokontroler
Laboratorium Sistem Kendali

27

Anda mungkin juga menyukai