MIKROKONTROLER
DIGITAL I/O
NAMA : MUHAMMAD LUTHFI FAUZAN
NIM : 18050514040
KELAS : PEND. TEKNIK ELEKTRO (TTL) 2018A
II
KATA PENGANTAR
Penyusun
i
DAFTAR ISI
KATA PENGANTAR ............................................................................................ i
DAFTAR ISI .......................................................................................................... ii
A. JUDUL.............................................................................................................. 1
B. TUJUAN............................................................................................................ 1
E. LANGKAH PERCOBAAN.............................................................................. 4
F. HASIL PRAKTIKUM....................................................................................... 5
PRAKTIKUM 1.......................................................................................... 5
PRAKTIKUM 2.......................................................................................... 7
PRAKTIKUM 3........................................................................................ 10
PRAKTIKUM 4........................................................................................ 13
G. KESIMPULAN.............................................................................................. .17
DAFTAR PUSTAKA............................................................................................18
ii
A. JUDUL : Digital I/O
B. TUJUAN :
1. Mengetahui tentang pin digital yang digunakan sebagai input.
2. Melakukan analisis pada rangkaian resistor pull-up yang dikonfigurasikan
sebagai INPUT.
3. Mengetahui tentang pin digital yang dikonfigurasikan sebagai
INPUT_PULLUP.
Mengetahui kondisi pin digital yang difungsikan sebagai output.
C. DASAR TEORI
1. Pengertian Transformator
Arduino adalah sebuah kit elektronik open source yang dirancang
khusus untuk memudahkan bagi para seniman, desainer, dan siapapun
yang tertarik dalam menciptakan objek atau mengembangkan perangkat
elektronik yang dapat berinteraksi dengan bermacam-macam sensor dan
pengendali.
Arduino UNO merupakan sebuah board mikrokontroler yang
dikontrol penuh oleh ATmega328. Seperti yang ditunjukan pada gambar 1
dibawah, 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.
1
Gambar Konfigurasi pin ATMega 328 Arduino uno R3
2. Skematik Arduino
Skematik arduino board yang telah disederhanakan seperti pada
gambar 2 Shield merupakan sebuah papan yang dapat dipasang diatas
arduino board untuk menambah kemampuan dari arduino board. Bahasa
pemograman yang dipakai dalam Arduino bukan bahasa assembler yang
relatif sulit, melainkan bahasa pemograman mirip dengan bahasa
pemrograman C++ yang disederhanakan dengan bantuan pustaka-pustaka
(libraries) Arduino.
Adapun spesifikasi data teknis yang terdapat pada board Arduino UNO R3
adalah sebagai berikut:
Mikrokontroler: ATmega328
Tegangan Operasi: 5V
Tegangan Input (recommended): 7 - 12 V
2
Tegangan Input (limit): 6-20 V
Pin digital I/O: 14 (6 diantaranya pin PWM)
Pin Analog input: 6 input pin 21
Arus DC per pin I/O: 40 mA
Arus DC untuk pin 3.3 V: 150 mA
Flash Memory: 32 KB dengan 0.5 KB digunakan
sebagai bootloader
SRAM: 2 KB
EEPROM: 1 KB
Clock Speed: 16 Mhz
3
ini, sehingga tidak akan kesulitan untuk memperoleh informasi, tutorial
dan berbagai eksperimen yang menarik yang tersedia banyak di internet.
Dengan Arduino, dunia hardware bisa bekerja sama dengan dunia
software. Anda bisa mengontrol hardware dari software, dan hardware
bisa memberikan data kepada software. Semuanya bisa dilakukan dengan
relatif mudah, murah, dan menyenangkan.
E. LANGKAH PERCOBAAN
1. Buka dan login tinkercad pada browser.
2. Rangkai komponen sesuai dengan skema pada parktikum.
3. Menghubungkan kabel jumper dengan komponen.
4. Masukkan program yang hendak dijalankan.
5. Tekan “start simulation”.
6. Lakukan pengujian dengan menekan dan melepas push button.
7. Perhatikan level logika yang terjadi.
4
F. HASIL PRAKTIKUM
TUGAS PRAKTIKUM 1
Program :
//Input pada pin no 2
int PinInput= 2;
Menyimpan kode
PinInput=2
5
void setup(){
//Mengeset mode dari pin no 2
pinMode(PinInput, INPUT); Menetapkan pin no 2
menjadi INPUT
Soal :
Apakah yang terjadi pada pin no 2?
Jawab :
Pin no 2 akan menjadi fungsi input pada praktikum kali ini. Dimana
pin nomer 2 akan dihubungkan pada push button dengan
menggunakan kabel jumper.
6
TUGAS PRAKTIKUM 2
Program :
//Input pada pin no 2
int PinInput= 2;
Menyimpan kode
PinInput=2
7
void setup(){
//Mengeset mode dari pin no 2 dan pin no 13
Menetapkan pin no 2
pinMode(PinInput, INPUT); menjadi INPUT
pinMode(13, OUTPUT);
Menetapkan pin no 13
menjadi OUTPUT
//Memulai komunikasi serial
Serial.begin(9600); Menetapkan kecepatan
} transmisi data
Soal :
Bagaimanakan kondisi LED?
Jawab :
Kondisi LED pada board Arduino Uno dalam keadaan menyala.
8
Lihatlah nyala LED. Bagaimanakah kondisi LED ketika push button
ditekan dan sebaliknya?
Uraikan dan lakukan analisis!
Jawab :
Ketika push button ditekan maupun tidak ditekan kondisi LED
pada board Arduino Uno dalam keadaan menyala. Hal ini disebabkan
kondisi logika “tidak terdefinisi” yang menunjukkan bahwa pin input
tidak terhubung dengan apapun, sehingga sinyal yang dibaca adalah
random, bisa saja “high” atau “low”. Kondisi “tidak terdefinisi”
disebut dengan Floating. Kondisi seperti ini harus dihindari pada suatu
rangkaian elektronika.
9
TUGAS PRAKTIKUM 3
Program :
//Input pada pin no 2
int PinInput= 2;
Menyimpan kode
PinInput=2
10
void setup(){
//Mengeset mode dari pin no 2 dan no 13
Menetapkan pin no 2
pinMode(PinInput, INPUT); menjadi INPUT
pinMode(13, OUTPUT);
Menetapkan pin no 13
menjadi OUTPUT
//Memulai komunikasi serial
Serial.begin(9600); Menetapkan kecepatan
} transmisi data
Soal :
Apakah fungsi dari resistor tersebut?
Jawab :
Fungsi resistor pada rangkaian tersebut adalah untuk mengatasi
kondisi floating agar terdefinisi high dan menghindari kondisi short
circuit yang dapat merusak komponen.
11
Dengan program yang sama, tambahkan resistor 10KOhm sehingga
menjadi seperti rangkaian di samping.
Lihatlah level logika pada serial monitor dan kondisi LED ketika push
button ditekan dan sebaliknya.
Bandingkan dengan hasil Tugas Praktikum 2!
Uraikan dan lakukan analisis!
Jawab :
Pada serial monitor, level logika yang terjadi adalah apabila push
button dalam keadaan dilepas, maka rangkaian menjadi open circuit,
sehingga tidak ada arus yang muncul pada pin nomor 2, maka input
digital menganggap logika Low (state= 0). Namun pada program
diperintahkan bahwa jika logika pin nomor 2 adalah low maka kondisi
level logika pada pin 13 adalah high (state=1) sehingga pada serial
motitor menunjukkan state= 1.
Begitu pula sebaliknya, apabila push button ditekan, maka
rangkaian akan menjadi close circuit yang mengakibatkan tegangan
5V timbul pada input pin nomor 2, sehingga Arduino akan mendeteksi
logika High (state = 1) pada pin nomor 2. Namun pada program
diperintahkan bahwa jika logika pin nomor 2 adalah selain low maka
kondisi level logika pada pin 13 adalah low (state=0) sehingga pada
serial motitor menunjukkan state= 0.
Pada kondisi LED dapat dilihat bahwa ketika push button tidak
ditekan kondisi dalam keadaan mati sedangkan ketika push button
ditekan LED dalam keadaan menyala. Hal ini disebabkan karena
ketika push button ditekan akan mengubah rangkaian menjadi close
circuit yang mengakibatkan tegangan 5V timbul sehingga LED dapat
menyala. Namun ketika push button tidak ditekan rangkaian akan
menjadi open circuit dan tidak terjadi timbul tegangan sehingga tidak
dapat menyalakan LED.
12
TUGAS PRAKTIKUM 4
Program :
//deklarasi pin yang digunakan
const int PinButton= 11;
Menyimpan kode
const int PinLED=12; konstanta
13
//untuk menyimpan/mengingat status lokal tombol dan LED saat ini
bool LEDon= false;
bool ButtonReady= true; Menyimpan data true/
false sebagai status lokal
button dan LED
void setup(){
pinMode(PinLED, OUTPUT); Menetapkan PinLED
sebagai fungsi OUTPUT
pinMode(PinButton, INPUT_PULLUP);
} Menetapkan PinButton
sebagai fungsi
void loop(){
INPUT_PULLUP
//blok status ketika push button ditekan
if(digitalRead(PinButton)==LOW&&ButtonReady){ Jika kondisi
if(LEDon){ PinButton= low dan
Jika status lokal LEDon, maka status lokal
digitalWrite(PinLED, LOW);
Logika PinLED menjadi low ButtonReady, maka
LEDon=false;
Status LEDon
}else{ menjadi false
Jika status lokal selain LEDon, maka
digitalWrite(PinLED, HIGH);
Logika PinLED menjadi high
LEDon=true;
Status LEDon
} menjadi true
ButtonReady=false;
Kemudian ButtonReady Jika kondisi
berubah menjadi false PinButton=
}else if(digitalRead(PinButton)==HIGH&&!ButtonReady){ high dan tidak
ButtonReady=true; status lokal
ButtonReady menjadi true ButtonReady,
} maka
seperti status lokal
delay(10);
Waktu menampilkan
} keluaran 10mS
Soal :
Lihatlah hasil nyala LED ketika push button ditekan dan sebaliknya.
Lakukan analisis pada program, tambahkan komentar pada masing-
masing barisnya dan gambarkan flowchartnya!
Jawab :
14
Hasil nyala LED pada kondisi awal adalah mati karena level logika
PinLED adalah low. Kemudian jika push button ditekan LED akan
menyala, begitu pula jika push button dilepas LED tetap akan menyala
karena level logika keduanya sama yaitu high. Namun jika push
button ditekan kembali level logika pada PinLED akan menjadi low
sehingga LED akan mati, begitu pula jika push button dilepas level
logika akan tetap pada keadaan low. Hal ini berlaku bertulang.
15
Flowchart :
Mulai
Kode pin
Status lokal
deklarasi
PinMode
Input pushbutton
ditekan
digitalRead(PinButton)
digitalRead(PinB
==HIGH&&!
utton)==LOW&
ButtonReady
&ButtonReady
ButtonReady=
true
LEDon
PinLED HIGH
PinLED LOW
LEDon=true
LEDon=false
ButtonReady=
false
delay
Selesai
16
G. KESIMPULAN
Pada rangkaian digital dikenal kondisi “high” dan “low” atau “1” dan “0”.
Pada rangkaian digital terdapat istilah floating atau tidak terdefinisi yang
berarti dimana kondisi pin input tidak terhubung dengan apapun, sehingga
sinyal yang terbaca adalah random, bisa saja “high” atau “low”. Namun
kondisi ini dapat di atasi dengan penambahan tegangan dan juga resistor.
Resistor pada rangkaian ini disebut dengan rangkaian pull up, diman resistor
ini berfungsi untuk mengatasi suatu kondisi floating suatu rangkaian agar
menjadi terdefinisi high.
17
DAFTAR PUSTAKA
[3] M. Rizal, F., "Rancangan dan Analisis Data Logger Multichannel untuk
Menentukan Performansi Panel Surya," Tesis, Unsyiah, Banda
Aceh, Indonesia, 2015.
18