Anda di halaman 1dari 11

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 instruksiinstruksi yang ada dalam fungsi loop().
void loop()
{
digitalWrite(13, HIGH);

// nyalakan pin 13

delay(1000);

// pause selama 1 detik

digitalWrite(13, LOW);

// matikan pin 13

delay(1000);

/// pause selama 1 detik

}
Variable adalah sebuah penyimpan nilai yang dapat di gunakan
dalam program. Variable dapat dirubah 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 dideklarasikan pada awal program sebelum
void setup(), secara local 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 function setup().Sebuah variable local di deklarasikan di
setiap block function atau di setiap block statement pengulangan dan hanya
dapat di gunakan pada block yang bersangkutan saja.
Function (fungsi) adalah blok pemrograman yang mempunyai
nama dan mempunyai statement yang akan dieksekusi ketika function
dipanggil. 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 programmer lupa memberi curly
brace tutup maka ketika di compile akan terdapat laporan error.

b) ; semicolon
Semicolon harus diberikan pada setiap statement program yang kita
buat ini merupakan pembatas setiap statement program yang
dibuat./**/ 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
dimasukkan dalam board arduino.
c) // line comment
Sama halnya dengan block comments, line comments 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 pins secara default di
konfigurasi sebagai input sehingga untuk merubahnya harus menggunakan
operator pinMode(pin, mode).
pinMode (pin, OUTPUT);

// mengeset pin sebagai output

digitalWrite(pin, HIGH); // pin sebagai source


voltagedigitalRead()
3. digitalWrite()
Digunakan untuk mengeset 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);
dengan pin

// mengeset value sama

5. delay()
Menghentikan program untuk sesaat sesuai dengan yang di
kehendaki, satuanya dalam millisecond.
Delay(1000);

// menunggu selama satu detik

6. 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

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

ARDUINO UNO R3

LED-BLUE

R2
470R

R1
470R

R4
470R

R5
470R

2. Ketiklah program pada software 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 pengendali mikro single board yang bersifat open-source,
dirancang untuk memudahkan penggunaan dalam berbagai bidang elektronik.
Perangkat kerasnya memiliki prosesor Atmel AVR dan perangkat lunaknya
memiliki bahasa pemrograman sendiri. Bahasa yang dipakai dalam Arduino
bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan
dengan

bantuan

pustaka-pustaka

(libraries)

Arduino.

Arduino

juga

menyederhanakan proses bekerja dengan mikrokontroler.


Dalam

sebuah

proses

pengendalian

(controlling)

menggunakan

mikrokontroler tidak lepas dari input dan output. Input digunakan sebagai
suatu nilai yang akan diproses oleh mikrokontroler untuk menghasilakan suatu
output. Pada praktikum ini dilakukan percobaan untuk mengetahui
karakteristik input dan output. Praktikum ini bertujuan agar mahasiswa dapat
memahami fungsi input output. Selain itu, mahasiswa juga dapat membuat
rangkaian dan memprogram arduino agar fungsi input dan output dapat
bekerja dengan baik.
Adapun alat dan bahan yang kami gunakan pada praktikum ini ialah PC
atau laptop, software Proteus untuk membuat rangkaian simulasi dan software
Arduino IDE untuk melakukan pemrograman. Pada perangkat lunak Proteus,
komponen yang digunakan adalah Arduino Uno, resistor 470, push button
dan LED.
Pada listing program, int led1 = 8; berfungsi menginisialisasi LED
biru pertama (D1) yang dihubungkan dengan pin 8 board Arduino. Kemudian
int led2 = 9;berfungsi menginisialisasi LED biru kedua (D2) yang
dihubungkan dengan pin 9 board Arduino. Kemudian, pernyataan int b1 =
2; berfungsi menginisialisasi saklar/push button pertama yang dihubungkan
pada pin 2 board Arduino. Pernyataan int

b2

3;

berfungsi

menginisialisasi saklar/push button kedua yang dihubungkan dengan pin 3


board Arduino. Pernyataan int valueb1; berfungsi menginisialisasi nilai
dari saklar/push button pertama sedangkan int valueb2;

berfungsi

menginisialisasi nilai dari saklar/push button yang kedua. Fungsi void


setup() adalah fungsi yang hanya di panggil satu kali ketika program reset.

pinMode(led1,OUTPUT);

berfungsi untuk mengkonfigurasi LED

pertama sebagai output. pinMode(led2,OUTPUT);

berfungsi untuk

mengkonfigurasi LED kedua sebagai output. pinMode(b1,INPUT);


berfungsi untuk mengkonfigurasi saklar/push button pertama sebagai input.
pinMode(b2,INPUT);
kedua sebagai input.

berfungsi mengkonfigurasi saklar/push button

Kemudian fungsi void

loop()

adalah untuk

mengeksekusi bagian program yang akan dijalankan berulang-ulang.


valueb1
saklar/push

digitalRead(b1);
button

pertama.

berfungsi membaca nilai dari

digitalWrite(led1,valueb1);

berfungsi mengeset pin digital LED pertama dan nilai saklar/push button
pertama. valueb2 = digitalRead(b2); berfungsi membaca nilai dari
saklar/push button kedua. digitalWrite(led1,valueb1); berfungsi
mengeset pin digital LED kedua dan saklar/push button kedua.
Dari percobaan yang telah dilakukan, hasil simulasinya adalah pada
kondisi awal rangkaian saat kedua push button tidak aktif, LED biru pertama
menyala atau berlogika 1 dan LED biru kedua masih padam. Hal ini karena
meskipun push button 1 (pin 2) tidak ditekan (aktif), tegangan yang masuk ke
pin 2 adalah 5v yang itu berarti variabel valueb1 bernilai 1 atau berlogika
high. Pada kode program,

valueb1

digitalRead(b1);

digitalWrite(led1,valueb1); berarti pin led1 atau pin 8 menjadi


output dan nilainya adalah 1 sesuai dengan nilai variabel valueb1. Dengan
demikian maka pin 8 akan memberi tegangan 5 volt sehingga led pertama
menyala.
Kondisi kedua adalah saat push button yang pertama ditekan atau dalam
kondisi aktif, maka LED biru pertama padam, lalu saat push button pertama
dilepas kembali maka LED biru pertama akan kembali menyala. Hal ini
dikarenakan ketika push button 1 (pin 2) ditekan, tegangan akan menuju
ground sehingga tegangan yang ke pin 2 akan menjadi 0 volt. Dengan
demikian maka nilai valueb1 akan bernilai 0 atau low. Nilai ini akan
menjadikan kode program digitalWrite(led1,valueb1); bernilai
low yang akan mematikan LED pertama.

Kondisi selanjutnya adalah saat push button kedua diaktifkan, maka LED
biru kedua akan menyala. Pada rangkaian, push button kedua terhubung
dengan tegangan 5 volt (VCC). Pada kondisi push button tidak aktif maka
nilai input pada pin 3 bernilai 0, inilah mengapa ketika push button kedua
tidak aktif maka LED kedua tidak menyala. Ketika push button diaktifkan
maka tegangan akan masuk ke pin 3 dan nilai variabel valueb2 akan bernilai 1
atau high. Dengan kondisi ini maka LED kedua akan menyala karena variabel
valueb2

bernilai

1.

Tinjau

kode

program

digitalWrite

(led2,valueb2)
Dari percobaan tersebut dapat disimpulkan bahwa input akan bernilai 1
atau berlogika high ketika pin pada Arduino mendapat tegangan dan akan
bernilai 0 ketika tidak mendapat tegangan. Nilai input tersebut akan diproses
oleh mikrokontroler untuk menghasilkan output sesui dengan yang
diprogramkan.

1.6 Kesimpulan
Berdasarkan percobaan yang telah dilakukan, dapat disimpulkan bahwa:
1. Input akan bernilai 1 atau berlogika high apabila pin pada Arduino
mendapatkan tegangan.
2. Ketika pin pada Arduino tidak mendapat tegangan maka nilai input pada pin
tersebut akan bernilai 0 atau berlogika low
3. Untuk membuat suatu pin pada Arduino menjadi pin input harus dilakukan
inisialisasi yaitu dengan kode program pinMode(pin, INPUT).
4. Untuk membuat suatu pin pada Arduino menjadi pin output harus dilakukan
inisialisasi yaitu dengan kode program pinMode(pin,OUTPUT).
5. Ketika output bernilai high maka pin output akan mengeluarkan tegangan
sehingga LED menyala.
6. Ketika output bernilai low maka tegangan pada pin output sebesar 0 volt
sehingga LED padam.

Lampiran

Gambar 1. Program pada Arduino

Gambar 2. Hasil Simulasi

Anda mungkin juga menyukai