Anda di halaman 1dari 37

BAB 1.

INPUT OUTPUT
1.1 Tujuan
1. Mahasiswa dapat memahami fungsi input output.
2. Mahasiswa dapat membuat rangkaian dan memprogram
arduino dengan fungsi input output.
1.2 Landasan Teori
1. Inisialisasi variabel
Struktur dasar dari bahasa pemrograman arduino itu
sederhana hanya terdiri dari dua bagian.
void setup( )
{
// Statement;
}
void loop( )
{
// Statement;
}
Dimana setup() bagian untuk inisialisasi yang hanya dijalankan
sekali diawal program, sedangkan loop() untuk mengeksekusi
bagian program yang akan dijalankan berulang-ulang untuk
selamanya.
Fungsi setup() hanya di panggil satu kali ketika program
pertama kali di jalankan. Ini digunakan untuk pendefinisian mode
pin atau memulai komunikasi serial. Fungsi setup() harus di ikut
sertakan dalam program walaupun tidak ada statement yang di
jalankan

void setup()
{

pinMode(13,OUTPUT); // mengeset pin 13


sebagai output
}
Setelah melakukan fungsi setup() maka secara langsung
akan melakukan fungsi loop() secara berurutan dan melakukan
instruksi-instruksi yang ada dalam fungsi loop().
void loop()
{
digitalWrite(13, HIGH);
delay(1000);

// nyalakan pin 13
// pause selama 1

detik
digitalWrite(13, LOW);
delay(1000);

// matikan pin 13
/// pause selama 1

detik
}
Variable adalah sebuah penyimpan nilai yang dapat di
gunakan dalam program. Variable dapat di rubah sesuai dengan
instruksi yang kita buat. Ketika mendeklarisikan variable harus di
ikut sertakan type variable serta nilai awal variable.
Type variableName = 0;
Contoh :
Int inputVariable = 0;

// mendefinisikan sebuah

variable bernama inputVariable dengan nilai awal 0


inputVariable = analogRead(2); // menyimpan nilai
yang ada di analog pin 2 ke inputVariable
Sebuah variable dapat di deklarasikan pada awal program
sebelum void setup(), secara lokal di dalam sebuah function,
dan terkadang di dalam sebuah block statement pengulangan.
Sebuah variable global hanya satu dan dapat di gunakan pada
semua block function dan statement di dalam program. Variable
global di deklarasikan pada awal program sebelum fungstion

setup(). Sebuah variable lokal di deklarasikan di setiap block


function atau di setiap block statement pengulangan dan hanya
dapat di gunakan pada blok yang bersangkutan saja.
Function

(fungsi)

adalah

blok

pemrograman

yang

mempunyai nama dan mempunyai statement yang akan di


eksekusi ketika function di panggil. Fungsi void setup() dan
void loop() telah di bahas di atas dan pembuatan fungsi yang
lain akan di bahas selanjutnya. Cara pendeklarasian function
dijelaskan sebagai berikut :
type functionName(parameters)
{
// Statement;
}
Contoh:
int delayVal()
{
int v; // membuat variable v bertipe
integer
v

analogRead(pot);

//

baca

harga

potentiometer
v /= 4; // konversi 0-1023 ke 0-255
return v; // return nilai v
}

Pada contoh di atas fungsi tersebut memiliki nilai balik int


(integer), karena kalau tidak menghendaki adanya nilai balik
maka type function harus void.
a) { } curly braces
Curly brace mendefinisikan awal dan akhir dari sebuah blok
fungsi.

Apabila

ketika

memprogram

dan

progremer

lupa

memberi curly brace tutup maka ketika di compile akan terdapat


laporan error.
b) ; semicolon

Semicolon harus di berikan pada setiap statement program


yang kita buat ini merupakan pembatas setiap statement
program yang di buat./**/ blok comment. Semua statement
yang di tulis dalam block comments tidak akan di eksekusi dan
tidak akan di compile sehingga tidak mempengaruhi besar
program yang di buat untuk di masukan dalam board Arduino.
c) // line comment
Sama halnya dengan block comments, line coments pun
sama hanya saja yang di jadikan komen adalah perbaris.
2. pinMode()
Digunakan dalam void setup() untuk mengkonfigurasi pin
apakah sebagai Input atau Output. Arduino digital pin secara
default di konfigurasi sebagai input sehingga untuk merubahnya
harus menggunakan operator pinMode(pin, mode).
pinMode (pin, OUTPUT);

//

output
digitalWrite(pin, HIGH); //

mengset
pin

pin

sebagai

sebagai
source

voltagedigitalRead()
3. digitalWrite()
Digunakan untuk mengset pin digital. Pin digital Arduino
mempunyai 14 ( 0 13 ).
digitalWrite (pin, HIGH);

// set pin to HIGH

4. digitalRead()
Membaca nilai dari pin yang kita kehendaki dengan hasil
High atau Low.
Value = digitalRead(pin);

//

mengset

value

sama dengan pin


5. delay()
4

Menghentikan program untuk sesaat sesuai dengan yang


di kehendaki, satuanya dalam millisecond.
Delay(1000);

// menunggu selama satu detik

6. if(
If Operator if mengetes sebuah kondisi seperti nilai analog
sudah berada di bawah nilai yang kita kehendaki atau belum,
apabila terpenuhi maka akan mengeksekusi baris program yang
ada

dalam

brackets

kalau

tidak

terpenuhi

maka

akan

mengabaikan baris program yang ada dalam brackets.


If ( someVariable ?? value )
{
//DoSomething;
}
1.3 Daftar Alat dan Bahan
1. PC
2. Proteus
3. Software Arduino

1.4 Prosedur Praktikum


1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut.
ARDUINO
D2
LED-BLUE

D1

AREF

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

ARDUINO UNO R3

DIGITAL (~PWM)

ANALOG IN

A0
A1
A2
A3
A4
A5

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

LED-BLUE

R2
470R

R1
470R

R4
470R

R5
470R

Gambar 1.1 Rangkaian Simulasi Input Output pada Arduino


2. Ketiklah

program

pada

softwre

arduino

sesuai

dengan

program berikut,
int led1 = 8;
int led2 = 9;
int b1 = 2;
int b2 = 3;
int valueb1;
int valueb2;
void setup()
{
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(b1,INPUT);
pinMode(b2,INPUT);
}
void loop()
{
valueb1 = digitalRead(b1);
digitalWrite(led1,valueb1);
valueb2 = digitalRead(b2);
digitalWrite(led2,valueb2);
}
3. Simulasikan dan berilah analisis beserta kesimpulannya.

1.5

Pembahasan
Arduino adalah sebuah board mikrokontroler yang didasarkan pada IC

Atmega328 (datasheet ATmega328). Salah satu contoh yang akan dibahas kali ini
yaitu Arduino Uno. Arduino UNO mempunyai 14 pin digital input/output (6 di
antaranya dapat digunakan sebagai output PWM), 6 input analog, sebuah osilator
Kristal 16 MHz, sebuah koneksi USB, sebuah power jack, sebuah ICSP header,
dan sebuat tombol reset. Arduino UNO memuat semua yang dibutuhkan untuk
menunjang mikrokontroler, mudah menghubungkannya ke sebuah computer
dengan sebuah kabel USB atau mensuplainya dengan sebuah adaptor AC ke DC
atau menggunakan baterai untuk memulainya.
Arduino Uno adalah board mikrokontroler berbasis ATmega328. Uno
memiliki 14 pin digital input / output (dimana 6 dapat digunakan sebagai output
PWM), 6 input analog, resonator keramik 16 MHz, koneksi USB, jack listrik,
header ICSP, dan tombol reset. Uno dibangun berdasarkan apa yang diperlukan
untuk mendukung mikrokontroler, sumber daya bisa menggunakan power USB
(jika terhubung ke komputer dengan kabel USB) dan juga dengan adaptor atau
baterai. Arduino Uno berbeda dari semua papan sebelumnya dalam hal tidak
menggunakan FTDI chip driver USB-to-serial. Sebaliknya, fitur Atmega16U2
(Atmega8U2 sampai versi R2) diprogram sebagai konverter USB-to-serial. Revisi

2 dari Uno memiliki resistor pulling 8U2 HWB yang terhubung ke tanah,
sehingga lebih mudah untuk menggunakan mode DFU.
Pada praktikum pertama, percobaan yang dilakukan adalah analisis tentang
rangkaian input output pada arduino. Tujuan dari praktikum ini adalah agar
mahasiswa

dapat

memahami

fungsi

input

output

serta

mahasiswa dapat membuat rangkaian dan memprogram arduino


dengan fungsi input output.
Alat dan bahan yang digunakan antara lain adalah
software Proteus, software Arduino, dan laptop. Komponen yang
dipakai dalam simulasi rangkaian antara lain adalah papan
rangkaian Arduino, dua buah LED, 4 buah resistor, dan dua buah
push button. Langkah yang harus dikerjakan adalah membuat
rangkaian di software Proteus sesuai gambar pada modul
praktikum. Setelah membuat rangkaian, membuat program di
software Arduino sesuai dengan sintak program pada modul
praktikum. Lalu, simulasikan rangkaian menggunakan program
yang telah di buat.
Setelah melakukan pemasangan rangkaian pada simulasi
Proteus, selanjutnya adalah menganalisa sintak-sintak program
yang digunakan untuk menjalankan rangkaian pada simulasi.
Sintak int led1 = 8; adalah mendeklarasikan bahwa LED 1 terletak pada
pin Arduino nomor 8. Untuk int led2 = 9; adalah pendeklarasian bahwa
LED 2 terletak pada pin 9 pada Arduino. Sintak int b1 = 2; int b2 =
3; int valueb1; int valueb2; adalah bahwa push button 1 terletak
pada pin Aduino nomor 2 dan push button 2 terletak pada pin Arduino nomor 3.
Pada

void

setup()

digunakan untuk inisialisasi yang hanya

dijalankan sekali di awal program. pinMode(led1,OUTPUT); adalah


untuk

mengkonfigurasi LED pertama sebagai output.

Fungsi sintak

pinMode(led1,OUTPUT);pinMode(led2,OUTPUT);pinMode(b1,IN
PUT); pinMode(b2,INPUT); adalah difungsikan sebagai keluaran pada
LED 1 dan LED 2. Sedangkan untuk masukannya difungsikan pada b1 dan b2
pada push button.
8

Sintak void loop(){ difungsikan untuk proses pengulangan program


pada

sebuah

masukan

dan

keluaran.

valueb1

digitalRead(b1);digitalWrite(led1,valueb1);valueb2

digitalRead(b2); digitalWrite(led2,valueb2);
Hasil analisa pada saat simulasi dijalankan dengan keadaan kedua push
button tidak ditekan, LED yang terhubung dengan pin 8 akan menyala atau dalam
kondisi high. Sedangkan LED yang terhubung dengan pin 9 akan padam atau
dalam kondisi low. Saat push button yang terhubung dengan pin 2 ditekan, maka
kedua LED akan padam atau dalam kondisi low. Saat push button yang terhubung
dengan pin 3 ditekan, maka kedua LED akan menyala atau dalam kondisi high.
Saat kedua push button ditekan, maka LED yang terhubung dengan pin 9 akan
menyala atau dalam kondisi high. Sedangkan LED yang terhubung dengan pin 8
akan padam atau dalam kondisi low.

1.6

Kesimpulan
Dari praktikum ketiga, dapat diketahui bahwa kesimpulan

dari percobaan ini adalah sebgaia berikut :


1. Arduino memiliki pin yang dapat digunakan sebagai input dan output untuk
proses pendeklarasian. Pada praktikum ini, input yang digunakan adalah
berupa dua push button dam dua buah LED.
2. LED pertama tidak langsung mendapatkan masukan dari pin 2 karena VCC
terhambat oleh push button pertama kemudian tegangan dari VCC tidak dapat
masuk ke pin Arduino sehingga nilai dari pin 2 adalah low atau 0 dan LED
tidak menyala.
3. Pada keadaan kedua push button tidak ditekan, LED yang terhubung dengan
pin 8 akan menyala dan LED yang terhubung dengan pin 9 akan padam.
4. Saat kedua push button ditekan, maka LED yang terhubung dengan pin 9
akan menyala dan LED yang terhubung dengan pin 8 akan padam.
5. Saat push button yang terhubung dengan pin 2 ditekan, maka kedua LED
akan padam.
6. Saat push button yang terhubung dengan pin 3 ditekan, maka kedua LED
akan menyala.

Lampiran

10

Gambar 1.2 Sintak Program

11

Gambar 1.3. Saat Push Button tidak di tekan

Gambar 1.4. Saat Push Button 1 di tekan

Gambar 1.5 Saat Push Button 2 di tekan


BAB 2. LCD

12

2.1 Tujuan
1. Mahasiswa dapat memahami cara kerja LCD.
2. Mahasiswa
dapat
membuat
rangkaian

LCD

dan

memprogramnya.
2.2 Landasan Teori
1. Inisialisasi LCD
Merupakan inisialisasi LCD.
2. LiquidCrystal lcd()
Menciptakan variabel jenis LiquidCrystal. Layar dapat dikontrol
dengan menggunakan 4 atau 8 jalur data.
Sintaksis:
LiquidCrystal (rs, mengaktifkan, d4, d5, d6, d7)
LiquidCrystal (rs, rw, mengaktifkan, d4, d5, d6,
d7)
LiquidCrystal (rs, mengaktifkan, d0, d1, d2, d3,
d4, d5, d6, d7)
LiquidCrystal (rs, rw, mengaktifkan, d0, d1, d2,
d3, d4, d5, d6, d7)
3. lcd.begin()
Berfungsi menginisialisasi antarmuka ke layar LCD, dan menentukan
dimensi (lebar dan tinggi) dari layar. begin() bisa disebut awal perintah yang
diberikan pada LCD.
Sintaksis :
lcd.begin (cols, baris)
Parameter :
LCD: variabel jenis LiquidCrystal
cols: menunjukkan jumlah kolom layar LCD
baris: jumlah baris pada LCD
4. lcd.setCursor()
Artinya, lokasi di mana ditulis dengan teks LCD akan
ditampilkan.
Sintaksis:
lcd.setCursor (col, row)
Parameter :
LCD: variabel jenis LiquidCrystal

13

col:

kolom

di

mana

posisi

Menjadi kolom pertama)


baris: baris di mana

posisi

kursor
kursor

(dengan

(dengan

Menjadi baris pertama)


5. lcd.print()
Berfungsi mencetak teks ke LCD.
Sintaksis :
lcd.print (data)
lcd.print (data, BASE)
Parameter :
LCD: variabel jenis LiquidCrystal
Data: data untuk mencetak (char,

byte,

int,

panjang, atau string)


BASIS (opsional): dasar di mana untuk mencetak
nomor: BIN untuk biner (basis 2), Desember untuk
desimal (basis 10), Oktober untuk oktal (basis
8), HEX untuk heksadesimal (basis 16).
2.3 Daftar Alat dan Bahan
1. PC
2. Proteus
3. Software Arduino

2.4 Prosedur Praktikum


1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut.
POT

RS
RW
E

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

1
2
3

ARDUINO

4
5
6

VSS
VDD
VEE

LM016L

AREF

DIGITAL (~PWM)

ANALOG IN

A0
A1
A2
A3
A4
A5

1121
ATMEGA328P-PU

RESET

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

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

Gambar 2.1 Rangkaian Simulasi LCD pada Arduino


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

PD7/AIN1

~ PD6/AIN0
PD5/T1
~

PD4/T0/XCK
~ PD3/INT1
PD2/INT0
TX PD1/TXD
RX PD0/RXD

2. Ketiklah program sesuai dengan program berikut.


ARDUINO UNO R3

14

#include <LiquidCrystal.h>
LiquidCrystal lcd(13,12,11,10,9,8);
void setup() {
lcd.begin(16, 2);
lcd.print("hello, world!");
delay(1000);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Elektro UNEJ");
lcd.setCursor(0, 1);
lcd.print(millis()/1000);
}
3. Simulasikan dan berilah analisisnya.
2.5 Pembahasan
LCD adalah lapisan dari campuran organik antara lapisan kaca bening
dengan elektroda transparan indium oksida dalam bentuk tampilan seven-segment
dan lapisan elektroda pada kaca belakang. Lapisan sandwich memiliki polarizer
cahaya vertikal depan dan polarizer cahaya horisontal belakang yang diikuti
dengan lapisan reflektor. Cahaya yang dipantulkan tidak dapat melewati molekulmolekul yang telah menyesuaikan diri dan segmen yang diaktifkan terlihat
menjadi gelap dan membentuk karakter data yang ingin ditampilkan.
Pin LCD nomor 4 (RS) merupakan Register Selector yang berfungsi untuk
memilih Register Control atau Register Data. Register Control digunakan untuk
mengkonfigurasi LCD. Register Data digunakan untuk menulis data karakter ke
memori display LCD. Pin LCD nomor 5 (R/W) digunakan untuk memilih aliran
data apakah READ ataukah WRITE. Karena kebanyakan fungsi hanya untuk
membaca data dari LCD dan hanya perlu menulis data saja ke LCD, maka kaki ini
dihubungkan ke GND (WRITE). Pin LCD nomor 6 (ENABLE) digunakan untuk
mengaktifkan LCD pada proses penulisan data ke Register Control dan Register
Data LCD.
Pada praktikum kedua yang membahas mengenai LCD ini menggunakan
aplikasi Proteus sebagai pembuatan rangkaian dan simulator. Sedangkan aplikasi
Arduino digunakan sebagai pengolah program yang akan dimasukkan dalam
Arduino pada Proteus. Jenis Arduino yang digunakan pada Proteus ialah Arduino

15

Uno. Kompnen lain yang akan dirangkai pada Proteus yaitu sebuah LCD 2x16
yang mempunyai 14 pin. Dalam rangkaian terdapat sebuah terminal ground.
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.
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
LCD dihubungkan dengan ground.
Selanjutnya adalah pembahasan tentang masing-masing
listing program yang digunakan dalam analisis rangkaian LCD
pada Arduino. Listing LiquidCrystal lcd(13,12,11,10,9,8);
merupakan pin yang digunakan pada kaki Arduino pada pin 13, 12, 11, 10, 9, dan
8 yang disambungkan pada kaki pin LCD yaitu 4, 6, 11, 12, 13, dan 14. Untuk
listing lcd.begin(16,2); adalah fungsi dari LCD yang terdiri dari 2 baris
dan 16 kolom. Lalu program ditampilkan pertama pada LCD adalah dengan
sebuah karakter dengan sintak program lcd.print("hello, world!");.
Tulisan tersebut hanya tampil dalam waktu satu detik dengan sintak program
delay(1000);.
Setelah program tersebut menampilkan karakter pertama, selanjutnya LCD
akan tampil dengan karakter baru dengan listing program void loop(){ yang
digunakan sebagi fungsi perputaran program pada proses pencacahan angka.
Fungsi lcd.setCursor(0,0); adalah menentukan koordinat 0,0 sebagai
awal tempat penulisan karakter pertama LCD. Pada LCD baris pertama, LCD
akan muncul tulisan "Elektro UNEJ", dan karakter tersebut tidak berubah.
Karakter

tersebut

ditampilkan

menggunakan

sintak

program

16

lcd.print("Elektro UNEJ");. Menentukan koordinat 0,1 sebagai awal


tempat penulisan karakter kedua yang terletak pada baris kedua LCD dengan
sintak

lcd.setCursor(0,1); yang akan melakukan sebuah perputaran

bilangan cacah dari yang terkecil menuju yang terbesar

dengan sintak

lcd.print(millis()/1000);. Dalam waktu satu detik setiap angkanya


yang muncul dengan angka yang berurutan.
Untuk menghilangkan tanda ! pada tulisan Elektro UNEJ !, sintak
program

yang

delay(1000);

digunakan

adalah

lcd.clear

();

setelah

sintak

sesuai dengan lampiran praktikum kedua. Jika tidak

menggunakan sintak tersebut, maka tulisan Elektro UNEJ ! akan menampilkan


tanda !
2.6 Kesimpulan
Dari

praktikum

kedua,

dapat

diketahui

bahwa

kesimpulan dari percobaan ini adalah sebgaia berikut :


1. LCD berfungsi untuk menampilkan karakter sesuai proses
yang dikehendaki pada program.
2. LCD akan menampilkan sebuah perputaran angka dari
yang terkecil sampai yang terbesar jika sintak program
yang dikehendaki dilakukan proses looping dari program
tersebut.
3. Set cursor

pada

sintak

program

berfungsi

untuk

menentukan titik koordinat yang akan ditampilkan pada


LCD.
4. Karakter pada LCD akan tetap dan tidak berubah-ubah
jika tidak dilakukan proses looping.
5. LCD yang digunakan akan tampil

dengan

karakter

maksimal sebanyak 32 buah karakter. Hal ini dapat dilihat


pada fungsi LCD yang digunakan adalah LCD dengan jenis
2 x 16 dengan ari dua baris dikali 16 kolom.
6. Untuk menghilangkan tanda ! agar pada tuliasan Elektro UNEJ tidak
ada, maka sintak yang digunakan adalah lcd.clear();.

17

Lampiran

Gambar 2.2. Program Awal

18

Gambar 2.3. Saat Tampilan Awal (hello, world)

Gambar 2.4. Saat Tampilan Berubah (ELEKTRO UNEJ!) dengan timer 9

Gambar 2.5. Saat Program Ditambah Perintah lcd.clear();

19

Gambar 2.6. Tampilan Program Setelah Ditambah Perintah lcd.clear();


Menjadi (Elektro UNEJ) dengan timer 1

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

mengset

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

20

3.4 Prosedur Praktikum


1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut.
POT

D0
D1
D2
D3
D4
D5
D6
D7

RS
RW
E

7
8
9
10
11
12
13
14

1
2
3

ARDUINO

4
5
6

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 Simulasi ADC pada Arduino


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

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 analog input
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).
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); //
mengset value sama dengan nilai analog pin
Sedangkan sintak analogWrite()berfungsi untuk mengirimkan nilai
analog pada pin analog. Contoh sintak program adalah sebagai berikut :
analogWrite(pin, value); // menulis ke pin analog

22

Pada praktikum ketiga, percobaan yang dilakukan adalah analisis tentang


rangkaian ADC pada Arduino. Tujuan dari praktikum ini adalah mahasiswa
dapat memahami cara kerja ADC, serta mahasiswa dapat
membuat rangkaian ADC dan memprogramnya. Alat dan bahan
yang digunakan antara lain adalah software Proteus, software
Arduino, dan laptop. Langkah yang harus dikerjakan adalah
membuat rangkaian di software Proteus sesuai gambar pada
modul

praktikum.

Setelah

membuat

rangkaian,

membuat

program di software Arduino sesuai dengan sintak program pada


modul praktikum. Lalu, simulasikan rangkaian menggunakan
program yang telah di buat.
Dari praktikum ini, dapat diketahui bahwa pada rangkaian
ADC ini input yang digunakan adalah sebuah potensiometer
untuk menampilkan besar kecilnya nilai ADC yang ditampilkan
melalui output berupa LCD. Hal ini dilihat pada fungsi sintak int
ValueADC0 = 0; yang berfungsi sebagai input potensiometer yang diletakan
pada

pin

Arduino

lcd(13,12,11,10,9,8);

A0.

Pada

sintak

LiquidCrystal

difungsikan sebagai pin output LCD yang

terletak pada pin Arduino 13, 12, 11, 10, 9, dan 8 yang disambungkan pada pin
LCD 4, 6, 11, 12, 13, dan 14. Untuk LED indikator pada Arduino diletakan di pin
3 yang dijalankan pada sintak int LED = 3;. Pada LCD ini, menggukan
karakter tampilan yaitu 2 x 16. Program untuk menampilkan karakter LCD 2 x 16
menggunkan sintak lcd.begin(16,2);, yaitu 16 sebagai kolom dan 2
sebagai baris.
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

23

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.

Pengaruh

pada

LCD

adalah

untuk

menampilkan nilai analog dari potensiometer sebagai masukan


yang dikeluarkan nilainya pada output LCD. Hasil nilai integer ini
dapat ditentukan dari input

berupa potensimoter. 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.
Pada nilai fungsi intreger, akan diproses pada nilai integer
akan

ditampilkan

pada

LCD

menggunakan

sintak

lcd.setCursor(0,1); yang difungsikan bahwa letak nilai output pada


LCD

ditampilkan

pada

baris

kedua.

Sintak

program

lcd.print(ValueADC0); difungsikan menmpilkan nilai ADC pada pin


arduino A0. Program lcd.setCursor(3,1); berfungsi sebagai tampilan
tata letak pada LCD.
Dapat diketahui bahwa fungsi analogRead() adalah untuk memperoleh
nilai digital sesuai dengan besar nilai integer analog yang terdeteksi . Besar nilai
analog ini akan berbanding terbalik dengan tahanan di potensiometer. Besar
tahanan potensiometer sendiri dapat berubah sesuai dengan posisinya. Dalam
implementasinya, terdapat dua pilihan "penggunaan" potensiometer berdasarkan
arah putaran. Pilihan pertama adalah tahanan membesar, sedang pilihan kedua
adalah tahanan mengecil sesuai dengan arah jarum jam.

24

25

3.6 Kesimpulan
Dari praktikum ketiga, dapat diketahui bahwa kesimpulan
dari percobaan ini adalah sebgaia berikut :
1. Besar nilai ADC yang ditampilkan pada LCD ditentukan oleh
input pada potensiometer.
2. Jika potensiometer tahanannya semakin besar, maka nilai
ADC yang ditampilkan pada LCD akan semakin kecil.
3. Jika potensiometer tahanannya semakin kecil, maka nilai ADC
yang ditampilkn pada LCD akan semakin besar.
4. Nilai ADC paling kecil yang digunakan pada praktikum ini
adalah sebesar 0, sedangkan nilai yang terbesar adalah
sebesar 1023.
5. Fungsi ADC pada praktikum ini

adalah untuk menampilkan

data analog menjadi data digital. Hal ini dapat dilihat pada
saat kita menggunakan potensiometer sebagai input untuk
data analog yang dikonversikan menjadi data digital yang
ditampilkan pada output LCD.
6. Besar nilai
analog ini akan berbanding terbalik dengan tahanan
di potensiometer. Besar tahanan potensiometer sendiri dapat berubah sesuai
dengan posisinya.

26

BAB 4. AKTUATOR
4.1 Tujuan
1. Mahasiswa dapat memahami cara kerja aktuator.
2. Mahasiswa dapat membuat rangkaian aktuator

dan

memprogramnya.
4.2 Landasan Teori
1. inisialisasi servo
Untuk menginisialisasi servo yang digunakan.
2. Servo myservo
Merupakan bentuk inisialisasi servo pada arduino.
3. myservo.attach()
Berfungsi memasang variabel Servo ke pin yang dipakai.
Sintak :
servo.attach (pin)
servo.attach (pin, min, max)
Parameter :
Servo: variabel jenis Servo
pin: jumlah pin servo yang dipakai
min
(opsional):
lebar
pulsa,
mikrodetik,

sesuai

dengan

minimum

sudut pada servo (standarnya 544)


max
(opsional):
lebar
pulsa,

dalam
(0
dalam

satuan
derajat)
satuan

mikrodetik, sesuai dengan maksimum (180 derajat)


sudut pada servo (default 2400)
4. map()
Artinya, nilai akan dipetakan pada kisaran nilai tertentu. Fungsi Map()
berupa bilangan bulat sehingga tidak akan menghasilkan pecahan,
Sintak :
y = peta (x, 1, 50, 50, -100);
Parameter :

27

Nilai: nomor untuk memetakan


fromLow: batas bawah dari kisaran nilai
fromHigh: batas atas kisaran nilai
toLow: batas bawah dari kisaran target nilai
toHigh: batas atas kisaran target nilai
5. myservo.write()
Berfungsi mengirim nilai ke servo, mengendalikan poros yang sesuai pada
input yang diberikan. Pada servo standar, ini akan mengatur sudut poros (dalam
derajat).
Sintaksis :
servo.write (angle)
Parameter :
Servo: variabel jenis servo
sudut: nilai untuk menggerakkan servo, 0-180
4.3 Daftar Alat dan Bahan
1. PC
2. Proteus
3. Software Arduino
4.4 Prosedur Praktikum
1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut.
POT

RS
RW
E

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

4
5
6

1
2
3

VSS
VDD
VEE

LM016L

ARDUINO

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

100%

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

+88.8

ARDUINO UNO R3

Gambar 4.1 Rangkaian Simulasi Aktuator pada Arduino


2. Ketiklah program sesuai dengan program berikut.
#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
Servo myservo;
int AnalogIn = 0;
int value;
28

void setup()
{
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("Posisi");
myservo.attach(3);
}
void loop()
{
value = analogRead(AnalogIn);
value = map(value, 0, 1023, 0, 179);
myservo.write(value);
if(value > 100){
lcd.setCursor(0,1);
lcd.print(value);
}
if(value < 100){
lcd.setCursor(0,1);
lcd.print(value);
lcd.setCursor(2,1);
lcd.print(" ");
}
if(value < 10){
lcd.setCursor(0,1);
lcd.print(value);
lcd.setCursor(1,1);
lcd.print(" ");
}
delay(15);
}
3. Simulasikan dan berilah analisisnya.

4.5 Pembahasan

29

Perkembangan dunia elektronika semakin berkembang


pesat. Begitupula perkembangan mikrokontroler. Masih ingat
dengan Z80? mikroposesor yang berkembang generasi tahun
60an yang menjadi otak papan ketik tunggal, dan bagi yang
pernah menggunakan chip ini tentu pernah merasakan rumitnya
membuat program dengan bahasa asembly, bahasa yang terdiri
dari angka 0 dan 1. Akan tetapi melihat perkembangan kontrol
sekarang ini telah jauh lebih maju dengan board yang semakin
kecil dan penulisan program yang jauh lebih sederhana. Contoh
mikrokontroler ada banyak, tp disini saya tidak akan membahas
mikon2 yang banyak itu, tp cukup memperkenalkan alasan
memilih Arduino.
Aktuator adalah sebuah peralatan mekanis untuk menggerakkan atau
mengontrol sebuah mekanisme atau sistem. Aktuator diaktifkan dengan
menggunakan lengan mekanis yang biasanya digerakkan oleh motor listrik, yang
dikendalikan

oleh

media

pengontrol

otomatis

yang

terprogram

di

antaranya mikrokontroler. Aktuator adalah elemen yang mengkonversikan besaran


listrik analog menjadi besaran lainnya misalnya kecepatan putaran dan merupakan
perangkat elektromagnetik yang menghasilkan daya gerakan sehingga dapat
menghasilkan gerakan pada robot. Untuk meningkatkan tenaga mekanik aktuator
ini dapat dipasang sistem gearbox. Aktuator dapat melakukan hal tertentu setelah
mendapat perintah dari kontroller. Misalnya pada suatu robot pencari cahaya, jika
terdapat cahaya, maka sensor akan memberikan informasi pada kontroller yang
kemudian akan memerintah pada aktuator untuk bergerak mendekati arah sumber
cahaya.
Pada praktikum keempat, percobaan yang dilakukan adalah analisis
rangkaian aktuator menggunakan motor servo. Tujuan dari praktikum ini adalah
agar mahasiswa dapat memahami cara kerja aktuator serta
mahasiswa

dapat

membuat

rangkaian

aktuator

dan

memprogramnya.
Langkah percobaan yang dilakukan awal adalah menyiapkan aplikasi
Proteus dan Arduino. Lalu membuat rangkaian pada aplikasi Proteus sesuai

30

rangkaian pada praktikum analisis aktuaotr pada modul praktikum. Selanjutnya


siapkan setiap komponen dengan cara memilih komponen pada pada aplikasi
Proteus. Yang dibutuhkan pada rangkaian ini adalah sebuah LCD LM016L, lalu
sebuah motor PWM-SERVO, sebuah potensiometer HG dan jangan lupa sebuah
Arduino Uno.
Selanjutnya adalah pembahasan mengenai listing pada program Arduino
Dapat dilihat setiap program mempunya maksud tersendiri yaitu #include
<LiquidCrystal.h> sebuah header awal yang digunakan untuk
awalan

program

untuk

bertindak

selanjutnya,

#include

<Servo.h> digunakan untuk pendeklarasian pada servo yang


digunakan sebagai output, LiquidCrystal lcd (13, 12, 11,
10,

9,

8) adalah pin yang digunakan pada Arduino yang

dengan pin 13,12, 11, 10, 9, dan 8 pada Arduino yang


disambungkan pada pin pada LCD, Servo

myservo adalah

pengenalan variable myservo yang digunakan, int AnalogIn =


0; untuk mengetahui nilai dari analog in dipasang pada pin A0,
int value adalah untuk mengetahui bahwa value mempunyai
input angka, void setup() adalah header untuk menggunakan
setup atau setup tidak bernilai biasanya hanya sekali. Sedangkan
program

lcd.begin(16,

2),

lcd.setCursor(0,0),

lcd.print("Posisi"), myservo.attach(3) adalah pemasukan


variable servo kepada LCD yang menggunakan 16 kolom dan 2
baris yang dimulai dari titik kolom 0 dan baris 0, menghitung
kolom dari kiri void loop() hampir sama dengan program void
setup(),
map(value,

value

0, 1023,

analogRead(AnalogIn);

value

0, 179); untuk memetakan output,

myservo.write(value);

if(value

lcd.print(value);}

lcd.setCursor(0,1);

menentukan nilai, jika nilainya lebih

>

100)
untuk

dari 100 maka variable

myservo akan ditulis pada kolom 0 dan baris 1, if(value < 100)
{

lcd.setCursor(0,1);

lcd.print(value);

31

lcd.setCursor(2,1); lcd.print(" ");} digunakan jika nilai


output kurang dari 100 maka keluaran pada LCD yaitu pada
kolom 2 baris 1, if(value

<

10){

lcd.setCursor(0,1);

lcd.print(value); lcd.setCursor(1,1); lcd.print("

");}

delay(15);} digunakan jika input nilai kurang dari 10 maka


tampilan pada LCD pada kolom 0 dan baris 1 dan output atau
keluaran pada tampilan adalah nilainya, pada kolom 1 baris 1
akan keluar nilai dari simulasi Proteus.
4.6 Kesimpulan
Dari

praktikum

keempat,

dapat

diketahui

bahwa

kesimpulan dari percobaan ini adalah sebgaia berikut :


1

Motor

PWM_SERVO

menggunakan
2

nilai

pada
-90,

saat
dan

potensiometer
saat

pada

pada

kondisi

kondisi

low
high

menggunakan nilai +90.


Penampil atau LCD mengeluarkan output tidak 180 karena
memang pemetaan dilakukan hanya 0-179 maka dari itu

tidak 180.
Fungsi potensiometer

mengkalibrasi gerakan motor dan output pada LCD.


Motor PWM-SERVO dihubungkan dengan pin 3 atau INT karena

output dari motor PWM-SERVO adalah angka.


Servo adalah perangkat sejenis motor yang dapat diputar dalam besaran sudut

tertentu yang diinginkan.


Dapat diketahui bahw Servo biasa digunakan untuk steering/kemudi pada

pada

simulasi

ini

adalah

untuk

pesawat atau mobil RC, untuk lengan robot, untuk pengarah sensor dan untuk
keperluan lain yang membutuhkan gerakan.

32

BAB 5. SERIAL MONITOR


5.1 Tujuan
1. Mahasiswa dapat memahami cara serial monitor.
2. Mahasiswa dapat membuat rangkaian serial monitor dan
memprogramnya.
5.2 Landasan Teori
1. Serial.begin()
Statement ini di gunakan untuk mengaktifkan komunikasi
serial dan meng-set baudrate.
void setup()
{
Serial.begin(9600);

//open serial port and set baudrate 9600 bps

}
2. Serial.print
Mencetak data ke port serial sebagai teks ASCII yang dapat
dipahami dengan mudah oleh manusia. Perintah ini dapat
mengambil

banyak

bentuk.

Nomor

dicetak

menggunakan

karakter ASCII untuk setiap digit. Byte yang dikirim sebagai satu
karakter.
3. Serial.println

33

Mengirimkan data ke serial port.


Serial.println(100);

// mengirimkan 100

5.3 Daftar Alat dan Bahan


1. PC
2. Proteus
3. Software Arduino
4. Software VSPE (Virtual Serial Port Emulator)
5.4 Prosedur Praktikum
1. Buatlah rangkaian sesuai dengan gambar rangkaian berikut.
ARDUINO

AREF

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

DIGITAL (~PWM)

RV2

1k

A0
A1
A2
A3
A4
A5

ANALOG IN

61%

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

51%

ARDUINO UNO R3

P1
1
6
2
7
3
8
4
9

DCD
DSR
RXD
RTS
TXD
CTS
DTR
RI

1k
ERROR
COMPIM

Gambar 5.1 Rangkaian Simulasi Serial Monitor pada


Arduino
2. Ketiklah program sesuai dengan program berikut.
int SensorPin1 = 0;
int ValueADC0 = 0;
int SensorPin2 = 1;
int ValueADC1 = 0;
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
}
void loop() {
ValueADC0 = analogRead(SensorPin1);
ValueADC1 = analogRead(SensorPin2);
Serial.print("ADC0 = " );
Serial.print(ValueADC0);
Serial.print("\t ADC1 = ");
Serial.println(ValueADC1);
}
3. Simulasikan dan berilah analisisnya.

34

5.5 Pembahasan
Semua board Arduino

memiliki

sedikitnya

satu

buah

kontroller komunikasi serial. Beberapa board malah memiliki lebih dari satu,
seperti Mega dan Due.

Hal

ini

menyebabkan

komunikasi

serial

dengan board Arduino mudah untuk dilakukan. Akibatnya, menghubungkan


Arduino dengan sistem "pintar" lain dapat dilakukan dengan sangat mudah dan
akurat, karena komunikasi serial adalah salah satu protokol komunikasi yang
paling banyak diadopsi dan juga terdokumentasi dengan baik.
Tetapi ada harga yang harus dibayar. Setiap port komunikasi serial akan
menggunakan sepasang pin digital. Satu pin untu menerima, dan satu lagi untuk
mengirim. Sebagai contoh, di Arduino Uno yang memiliki satu port komunikasi
serial, pin 0 akan digunakan untuk menerima (RX), dan pin 1 untuk mengirim
(TX). Karena itu, dalam proyek-proyek di mana anda akan menggunakan
komunikasi serial, anda terpaksa harus menghindari penggunaan pin-pin ini untuk
keperluan lain atau paling tidak anda terpaksa menambah rangkaian untuk
membagi penggunaan pin-pin ini antara keperluan komunikasi serial dan
keperluan lain. Suatu tugas yang tidak mudah, walaupun juga tidak teramat sulit.
Pada praktikum kelima percobaan yang dilakukan adalah analisis
rangkaian serial monitor pada Arduino. Tujuan dari praktikum ini adalah agar
mahasiswa dapat memahami cara serial monitor serta mahasiswa dapat membuat
rangkaian serial monitor dan memprogramnya. Alat dan bahan yang digunakan
antara lain software Proteus, software Arduino, software VSPE, dan laptop
Langkah kerja yang harus dilakukan adalah gambar rangkaian pada
software Proteus sesuai pada skema gambar rangkaian praktikum kelima. Setelah
itu tulis program pada software Arduino. Siapkan software VSPE. Lalu masukan
program pada software Arduino ke dalam simulasi gambar rangkaian proteus yang
telah dibuat. Lalu uji rangkaian tersebut dengan menjalankan software VSPE.
Selanjutnya adalah pembahasan mengenai program. Pada sintak int
SensorPin1= 0; ini digunakan untuk masukan pada sensor pin 1 itu berada
di Arduino pada pin 0, int SensorPin2 = 1; untuk masukan pada Arduino
pin 1. Serial.begin(9600); pada program ini dimaksudkan untuk untuk
35

mengaktifkan komunikasi serial dan meng-set baud rate pada 9600 bps. Pada
program ValueADC0 = analogRead(SensorPin1); ini dimaksudkan
bahwa nilai dari ADC0 tergantung dari masukan sensor pin 1 atau dari nilai RV1
yang diberikan, sedangkan ValueADC1 = analogRead(SensorPin2);
nilai ADC1 tergantung dari masukan sensor pin 2 atau nilai dari RV2 yang
diberikan.

Serial.print("ADC0

");

dan

Serial.print(ValueADC0); digunakan untuk mencetak data ke port


serial sebagai teks ASCII yang dapat dipahami dengan mudah oleh manusia
dengan nilai ADC0 yang akan ditampilkan dipengaruhi oleh masukan nilai RV1.
Dan

untuk

program

Serial.print("\t

ADC1

");

dan

Serial.println(ValueADC1); untuk mencetak nilai ADC1 dengan


keluaran sesuai dengan masukan RV2 yang diberikan.
Lalu pembahasan berikutnya adalah tahap pengujian pada software VSPE.
Langkah yang dilakukan adalah buka software VSPE dan rangkaian yang telah
dibuat pada Proteus. Pada VSPE, klik Create New Device, lalu untuk pengujian
klik pada device type dengan memilih Conector. Selanjutnya klik Next, pilih com
sesuai pada serial monitor software Arduino. Disini yang digunakan adalah com2.
Pilih com2, lalu centang Emulate baud rade, klik finish. Jika status sudah ready,
jalankan simulasi rangkaian yang dibuat pada Proteus. Setelah itu jalankan juga
pada VSPE. Jika pada software VSPE ada tulisan intialization OK, berarti
rangkaian sudah tersabung pada port serial.

36

5.6 Kesimpulan
Dari praktikum kelima, dapat diketahui bahwa kesimpulan dari percobaan
ini adalah sebgaia berikut :
1. Pemrograman sketch arduino menggunakan gaya bahasa C tapi pada
pembuatan library-nya menggunakan C++ yang menerapkan pemrograman
Objek (Class).
2. Pada potensiometer kita beri VCC pada salah satu kaki dan ground pada kaki
lainnya. Begitu juga pada potensiometer yang kedua kita sambungkan pada
VCC di salah satu kakinya dan ground pada kaki lainnya
3. Kita dapat memilih port yang akan digunakan dalam simulasi misalkan com 1
dan com2. Jadi untuk port serial pada simulasi kita rubah port-nya dengan
klik dua kali menjadi com.
4. Pada Saat kita rubah nilai dari potensiometer 1 terlihat nilai dari ADC 0
berubah seperti perubahan dari potensiometer, saat potensiometer tersebut
dirubah pada titik maksimal, terlihat nilai ADC yang terbaca pada serial
monitor adalah sebesar 1023 dan saat dirubah pada titik terbawah nilai dari
ADC terbaca sebesar 0.
5. Jadi kita dapat mengerti dan mengetahui bahwa nilai ADC yang terbaca saat
maksimal pada masukan analog adalah 1023 dan pada saat minimal nilai
analog yang terbaca pada serial monitor adalah 0. Nilai-nilai ini adalah
sebuah ketetapan dari bit. 1023 yang terbaca maka dapat kita ketahui bahwa
Arduino tersebut merupakan 10 bit
6. Port serial monitor hanya bias dipasang pada Arduino pin 0 dan pin 1. Karena
fungsi pin 0 adalah RXD yaitu sebagai penerima data dan pin 1 adalah TXD
sebagai penyalur data.

37

Anda mungkin juga menyukai