LAPORAN TUGAS PRAKTIKUM
MIKROKONTROLER
DIGITAL I/O
NAMA : MUHAMMAD LUTHFI FAUZAN
NIM : 18050514040
KELAS : PEND. TEKNIK ELEKTRO (TTL) 2018A
UNIVERSITAS NEGERI SURABAYA
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
S1 PENDIDIKAN TEKNIK ELEKTRO
2020
II
KATA PENGANTAR
Puji syukur alhamdulillah kami panjatkan ke hadirat Tuhan Yang Maha
Esa, karena telah melimpahkan rahmat-Nya berupa kesempatan dan pengetahuan
sehingga laporan praktikum ini bisa selesai pada waktunya.
Kami berharap semoga laporan ini bisa menambah pengetahuan para
pembaca. Namun terlepas dari itu, kami memahami bahwa laporan praktikum ini
masih jauh dari kata sempurna, sehingga kami sangat mengharapkan kritik serta
saran yang bersifat membangun demi terciptanya laporan praktikum selanjutnya
yang lebih baik lagi.
Surabaya, 30 Maret 2020
Penyusun
i
DAFTAR ISI
KATA PENGANTAR ............................................................................................ i
DAFTAR ISI .......................................................................................................... ii
A. JUDUL.............................................................................................................. 1
B. TUJUAN............................................................................................................ 1
C. DASAR TEORI................................................................................................. 1
D. ALAT DAN BAHAN.................................................................................... ...4
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.
Gambar Diagram skematik Arduino uno
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. Mikrokontroler Atmega 328P
Arduino Uno R3 menggunakan mikrokontroler yang dikontrol
secara penuh oleh mikroprosesor ATmega328P. Mikroprosesor yang
digunakan ini sudah dilengkapi dengan konverter sinyal analog ke digital
(ADC) sehingga tidak diperlukan penambahan ADC eksternal. Pada
Gambar 3 dibawah ini merupakan penjelasan melalui gambar mengenai
konfigurasi pin-pin yang merupakan bagian dari mikrokontoller
ATMega328 yang digunakan didalam modul board arduino, sebagai
berikut ini:
Gambar Konfigurasi pin ATMega 328P
4. Kegunaan atau Fungsi Arduino
Arduino yang dikontrol penuh oleh mikrokontroler ATmega328,
banyak hal yang bisa dilakukan itu semua tergantung kreatifitas anda.
Arduino dapat disambungkan dan mengontrol led, beberapa led, bahkan
banyak led, motor DC, relay, servo, modul dan sensor-sensor, serta banyak
lagi komponen lainnya. Platform Arduino sudah sangat populer sekarang
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.
D. ALAT DAN BAHAN
NO Nama Alat Jumlah
1 Arduino Uno 1
2 Push Button 1
3 Resistor 10KOhm 1
4 LED 1
5 Kabel Jumper 5
6 Breadboard 1
Dalam praktikum kali ini, saya menggunakan simulasi dengan tinkercad.com.
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
Gambar Hasil Tangkapan Layar Ketika Push Button Tidak Ditekan
Gambar Hasil Tangkapan Layar Ketika Push Button Ditekan
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
//Memulai komunikasi serial
Serial.begin(9600); Menetapkan kecepatan
transmisi data
}
void loop(){ Menyimpan kode
//Membaca tegangan pada pin no 2 Sensor_Value=
digitalRead(PinInput)
int Sensor_Value= digitalRead(PinInput); untuk mendapat nilai
pin
//display kondisi level logika Sensor_Value pada serial monitor
Serial.println(Sensor_Value);
Mengirim data kepada
} Sensor_Value pada serial
monitor
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.
Lihatlah hasil level logika pada Serial monitor.
Bagaimanakah kondisi pin input ketika push button ditekan dan
sebaliknya? Uraikan dan lakukan analisis!
Jawab :
Pada serial monitor dapat dilihat bahwa ketika push button ditekan
maupun tidak ditekan menunjukkan state= 0 atau tidak ada perubahan.
Arduino Uno tidak dapat membaca kondisi yang terjadi pada
rangkaian tersebut.
6
TUGAS PRAKTIKUM 2
Gambar Hasil Tangkapan Layar Ketika Push Button Tidak Ditekan
Gambar Hasil Tangkapan Layar Ketika Push Button Ditekan
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
void loop(){ Menyimpan kode
//Membaca tegangan pada pin no 2 Sensor_Value=
digitalRead(PinInput)
int Sensor_Value= digitalRead(PinInput); untuk mendapat nilai
pin
//display kondisi level logika Sensor_Value pada serial monitor
Serial.println(Sensor_Value);
Mengirim data kepada
Sensor_Value pada serial monitor
//apabila push button ditekan, LED akan menyala
if(Sensor_Value==LOW){
Jika logika pin2=low, maka
digitalWrite(13, HIGH);
Pin 13 akan bersifat high
}
else{
Jika tidak, maka
digitalWrite(13, LOW);
Pin 13 akan bersifat low
}
}
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
Gambar Hasil Tangkapan Layar Ketika Push Button Tidak Ditekan
Gambar Hasil Tangkapan Layar Ketika Push Button Ditekan
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
void loop(){ Menyimpan kode
//Membaca tegangan pada pin no 2 Sensor_Value=
digitalRead(PinInput)
int Sensor_Value= digitalRead(PinInput); untuk mendapat nilai
pin
//display kondisi level logika Sensor_Value pada serial monitor
Serial.println(Sensor_Value);
Mengirim data kepada
Sensor_Value pada serial monitor
//apabila push button ditekan, LED akan menyala
if(Sensor_Value==LOW){
Jika logika pin2=low, maka
digitalWrite(13, HIGH);
Pin 13 akan bersifat high
}
else{
Jika tidak, maka
digitalWrite(13, LOW);
Pin 13 akan bersifat low
}
}
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
Gambar Hasil Tangkapan Layar Sebelum Push Button Ditekan
Gambar Hasil Tangkapan Layar Setelah Push Button Ditekan
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
Pin merupakan terminal pada board Arduino yang dapat dikonfigurasikan
sebagai input atau output. Arduino Uno memiliki Pin digital dan Pin Analog.
Pin digital pada Arduino telah terseting otomatis sebagai input, sehingga
apabila pin tersebut difungsikan sebagai input, pada program tidak perlu
dituliskan pinMode().
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.
Pada Arduino Uno juga terdapat komponen-komponen “on board” atau
yang sudah tersedia di papan. Kita dapat menggunakan resistor dan juga LED
yang sudah tersedia dengan menggunakan perintah tertentu pada program
Arduino IDE.
17
DAFTAR PUSTAKA
[1] Arduino, November 2014, “Arduino Board Uno, [Online]: Arduino
website
[2] Datasheet Atmega 328P, November 2014, [Online]: Download
[3] M. Rizal, F., "Rancangan dan Analisis Data Logger Multichannel untuk
Menentukan Performansi Panel Surya," Tesis, Unsyiah, Banda
Aceh, Indonesia, 2015.
18