Anda di halaman 1dari 22

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

Anda mungkin juga menyukai