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
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);
digitalWrite(13, LOW);
// matikan pin 13
delay(1000);
}
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;
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);
4. digitalRead()
Membaca nilai dari pin yang kita kehendaki dengan hasil HIGH
atau LOW.
Value = digitalRead(pin);
dengan pin
5. delay()
Menghentikan program untuk sesaat sesuai dengan yang di
kehendaki, satuanya dalam millisecond.
Delay(1000);
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
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
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
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
berfungsi
pinMode(led1,OUTPUT);
berfungsi untuk
loop()
adalah untuk
digitalRead(b1);
button
pertama.
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);
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