Anda di halaman 1dari 25

LAPORAN PRAKTIKUM

MIKROPROSESOR
MODUL I : DIGITAL INPUT & DIGITAL OUTPUT

Disusun Oleh :
Muhammad Novianto Aditya Putra
(17101150)

Partner Praktikum :
M Syahrul Ikhsan (17101151)

Praktikum Tanggal : 19 Maret 2019

Asisten Praktikum :
Elsa Nur Oktaviana (17101175)

LABORATORIUM TEKNIK ELEKTRONIKA DAN TEKNIK DIGITAL


FAKULTAS TEKNIK TELEKOMUNIKASI DAN ELEKTRO (FTTE)
INSTITUT TEKNOLOGI TELKOM
JL. D.I. PANJAITAN 128 PURWOKERTO
2019
MODUL I
DIGITAL INPUT & DIGITAL OUTPUT

I. TUJUAN PRAKTIKUM
1. Mahasiswa mampu memahami pembagian port dan pin pada Board
Arduino Uno R3.
2. Mahasiswa mampu memahami fungsi pin I/O pada Board Arduino Uno
R3 sebagai input dan output.
3. Mahasiswa mampu mengkonfigurasi pin I/O Arduino Uno R3 sebagai
input dan output.
4. Mahasiswa mampu membuat program yang mengggunakan pin I/O
Arduino Uno R3.
5. Mahasiswa mampu menggunakan Arduino IDE untuk memprogram dan
mengupload program ke Board Arduino Uno R3.

II. ALAT DAN BAHAN PRAKTIKUM


1. Board Arduino Uno R3 : 1 (satu) buah
2. Kabel USB tipe A ke B : 1 (satu) buah
3. Breadboard : 1 (satu) buah
4. LED merah : 5 (lima) buah
5. LED hijau : 1 (satu) buah
6. Resistor 220 Ω : 6 (enam) buah
7. Resistor 10 KΩ : 2 (dua) buah
8. Tombol Saklar : 2 (dua) buah
9. Buzzer 5V : 1 (satu) buah
10. Kabel jumper male-to-male sesuai kebutuhan

III.DASAR TEORI
1. Pengenalan Arduino
Arduino merupakan pengendali mikro single-board atau perangkat khusus
berupa modul elektronik yang bentuk dan komponennya sudah jadi dan siap
pakai. Arduino bersifat open-source atau bebas dikembangkan oleh siapa saja
dan dibuat oleh siapa saja, namun tetap ada standar dari pembuatnya. Arduino
terdiri dari tiga komponen yaitu bahasa pemrograman, software IDE
(integrated development environtment), dan sebuah perangkat
mikrokontroler. Arduino dirancang untuk memudahkan penggunaan
elektronik dalam berbagai bidang.[1] Arduino banyak digunakan karena
arduino tidak memerlukan perangkat chip programmer karena didalamnya
sudah terdapat bootloader, selain itu arduino juga sudah memiliki sarana
komunikasi USB. Bahasa pemrograman arduino mirip dengan bahasa C, serta
software arduino telah dilengkapi dengan library yang cukup lengkap.
Arduino memiliki modul siap pakai yang bisa
langsung ditancapkan atau diaplikasikan pada board arduino.[2]
2. Arduino Uno R3
Jenis arduino yang paling banyak digunakan salah satunya adalah Arduino
Uno. Versi terbaru dari Arduino Uno adalah R3 (Revision 3). Board pada
Arduino Uno R3 menggunakan mikrokontroler ATMega328P sebagai pemroses
utama dan ATMega16U sebagai komunikasi serial. Arduino Uno R3 memiliki
14 digital input/output pin dengan 6 pin bisa digunakan untuk output PWM, 6
pin masukan analog, sebuah koneksi USB, dan tombol reset. “UNO” berarti
“Satu” dalam bahasa Italia dan dipilih sebagai tanda dari awal rilisnya IDE
1.0.[3]
3. Spesifikasi Arduino Uno R3
Tabel 1.3.1 Spesifikasi Arduino Uno R3
Mikrokontroller Atmega328P
Operasi Tegangan 5V
Input Tegangan 7-12V
(direkomendasikan)
Input Tegangan (batas) 6-20V
Digital I/O pin 14
PMW Digital I/O pin 6
Analog Input pin 6
Arus DC tiap I/O port 20mA
Arus DC untuk 3,3V pin 50mA
Flash memory 32KB (Atmega328P)
SRAM 2KB (Atmega328P)
EEPROM 1KB (Atmega328P)
Clock Speed 16MHz
Led_builtin 13
Panjang 68,6mm
Lebar 53,4mm
Berat 25g

Gambar 1.3.1 Bagian – Bagian Arduino Uno R3


4. Arduino IDE
Arduino IDE adalah software yang digunakan untuk memprogram papan
board Arduino agar dapat melakukan fungsi – fungsi yang diinginkan. IDE
merupakan singkatan dari Integrated Development Environment yang
digunakan untuk melakukan pengembangan. Arduino menggunakan bahasa
pemrograman yang menyerupai bahasa C. Arduino IDE dibuat dari bahasa
pemrograman JAVA. Pada Arduino IDE juga dilengkapi dengan library C dan
C++ yang memudahkan pengguna untuk membuat operasi input dan output.[4]
IV. HASIL DATA
A. Digital Output
1. LED menyala kedip (blink)

Gambar 1.4.1 Rangkaian LED menyala kedip (blink)


Source Code Program :
//Program Blink
int led = 8;
void setup()
{
pinMode(led, OUTPUT);
}
void loop()
{
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Hasil :

Gambar 1.4.2 Simulasi LED menyala kedip (blink)


2. LED menyala bergantian (flip-flop)

Gambar 1.4.3 Rangkaian LED menyala bergantian (flip-flop)


Source Code Program :
//Program Flip-flop
int merah = 7;
int hijau = 8;
int waktu = 1000;
void setup()
{
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
}
void loop()
{
digitalWrite(merah, HIGH);
digitalWrite(hijau, LOW);
delay(waktu);
digitalWrite(merah, LOW);
digitalWrite(hijau, HIGH);
delay(waktu);
}
Hasil :

Gambar 1.4.4 Simulasi LED menyala bergantian (flip-flop)


Gambar 1.4.5 Simulasi LED menyala bergantian (flip-flop)

3. LED Berjalan (Running LED)

Gambar 1.4.6 Rangkaian LED Berjalan (Running LED)


Source Code Program :
//Program LED berjalan (Running LED)
int led;
int waktu = 200;
void setup()
{
for(led = 2; led <= 7; led++)
{
pinMode(led, OUTPUT);
digitalWrite(led, LOW); //Mematikan semua
LED
}
}
void loop()
{
for(led = 2; led <= 7; led++)
{
digitalWrite(led, HIGH);
delay(waktu);
digitalWrite(led, LOW);
}
}
Hasil :

Gambar 1.4.7 Simulasi LED Berjalan (Running LED)


B. Digital Input
1. LED Menyala dengan Tombol Saklar (pushbutton switch)

Gambar 1.4.8 Rangkaian LED Menyala dengan Tombol Saklar


Source Code Program :
int masukan;
int led = 9;
int tombol = 8;
void setup()
{
pinMode(led, OUTPUT);
pinMode(tombol, INPUT);
}
void loop()
{
masukan = digitalRead(tombol);
if(masukan == HIGH)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
}
Hasil :

Gambar 1.4.9 Simulasi LED Menyala dengan Tombol Saklar

2. Dua Tombol Menyalakan LED dan Membunyikan Buzzer

Gambar 1.4.10 Rangkaian Dua Tombol Menyalakan LED dan


Membunyikan Buzzer
Source Code Program :
int led = 5;
int tombol_led = 6;
int buzzer = 7;
int tombol_buzzer = 8;
boolean status = false;
void setup()
{
pinMode(led, OUTPUT);
pinMode(tombol_led, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(tombol_buzzer, INPUT);
}
void loop()
{
if(digitalRead(tombol_buzzer) == HIGH)
{
digitalWrite(buzzer, HIGH);
}
else
{
digitalWrite(buzzer, LOW);
}
if(digitalRead(tombol_led) == HIGH)
{
status = !status;
delay(200);
}
if(status == true)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
}
Hasil :
Gambar 1.4.11 Simulasi Dua Tombol Menyalakan LED dan
Membunyikan Buzzer

Gambar 1.4.12 Simulasi Dua Tombol Menyalakan LED dan


Membunyikan Buzzer
V. ANALISA DAN PEMBAHASAN
Pada praktikum modul 1 mikroprosesor membahas tentang Digital Input
dan Digital Output pada arduino. Pada praktikum ini, jenis arduino yang
digunakan adalah Arduino Uno R3 sebagai media praktikum dan software
Arduino IDE sebagai software interface untuk membuat program yang
kemudian diupload ke papan board Arduino agar dapat melakukan fungsi –
fungsi yang diinginkan.
Percobaan pertama yang dilakukan adalah Digital Output berupa Lampu
LED yang menyala secara berkedip (blink). Pada percobaan pertama alat dan
bahan yang digunakan antara lain Arduino Board, Laptop yang telah diinstall
software Arduino Ide, kabel USB tipe A ke Tipe B, 1 buah resistor, 1 buah
LED, dan kabel male-to-male. Langkah pertama praktikan merangkai semua
komponen yang tersedia sesuai dengan gambar rangkaian yang ada pada
modul praktikum. Setelah merangkai, papan board Arduino dihubungkan pada
laptop. Lalu dengan menggunakan software Arduino IDE, praktikan
mendeklarasikan variabel led sebagai keluaran yang dihubungkan pada pin 8,
selanjutnya yaitu membuat led hidup menggunakan perintah digitalWrite(led,
HIGH) dengan delay selama 1 sekon, kemudian setelah itu membuat led mati
menggunakan perintah digitalWrite(led, LOW) selama 1 sekon, dan program
akan terus berulang hingga Arduino di-reset atau mati. Setelah itu program di
compile dan di upload ke papan board arduino. Setelah selesai di upload,
lampu LED akan menyala secara berkedip dnegan jeda selama 1 detik. LED
yang menyala secara berkedip menandakan bahwa terjadi keluaran berupa
sinyal digital 1 atau 0.
Percobaan kedua yang dilakukan adalah Digital Output berupa 2 Lampu
LED yang menyala secara bergantian (flip-flop). Pada percobaan kedua alat
dan bahan yang digunakan antara lain Arduino Board, Laptop yang telah
diinstall software Arduino Ide, kabel USB tipe A ke Tipe B, 2 buah resistor, 2
buah LED, dan kabel male-to-male. Langkah pertama praktikan merangkai
semua komponen sesuai dengan gambar rangkaian yang ada pada modul
praktikum. Setelah merangkai, papa board Arduino dihubungkan pada laptop.
Lalu dengan menggunakan software Arduino IDE, praktikan mendeklarasikan
LED merah dan hijau sebagai keluaran yang dihubungkan masing-masing
pada pin 8 dan 9.
Selanjutnya LED merah dan hijau dihidupkan dan bergantian secara
bergantian dengan delay setiap perubahannya selama 1 detik menggunakan
perintah digitalWrite. Setelah itu program di compile dan di upload ke papan
board arduino. Setelah selesai di upload, lampu LED akan menyala secara
bergantian dnegan jeda selama 1 detik.
Percobaan ketiga yang dilakukan yaitu Digital Output Running LED
dengan menggunakan 6 LED sebagai keluaram. Pada percobaan ini LED akan
menyala dan mati secara bergantian dan berurutan dari LED yang terhubung
pada pin 2 hingga pin 7. Pada percobaan ini alat dan bahan yang digunakan
antara lain Arduino Board, Laptop yang telah diinstall software Arduino Ide,
kabel USB tipe A ke Tipe B, 6 buah resistor, 6 buah LED, dan kabel male-to-
male. Langkah pertama praktikan merangkai semua komponen yang tersedia
sesuai dengan gambar rangkaian yang ada pada modul praktikum. Setelah
merangkai, papan board Arduino dihubungkan pada laptop. Lalu dengan
menggunakan software Arduino IDE, praktikan menginisialisasi led yang
terhubung pada pin 2 hingga pin 7 sebagai keluaran dengan fungsi for.
Kemudian dengan menggunakan fungsi void loop, praktikan memprogram
agar lampu led hidup dan mati secara bergantian dengan perintah for dimulai
dari led yang terhubung pada pin 2 hingga pin 7 dengan instruksi digitalWrite.
Setelah itu program di compile dan di upload ke papan board arduino. Setelah
selesai di upload, ke enam lampu LED akan menyala secara bergantian dan
berurutan.
Percobaan keempat yang dilakukan yaitu Digital Input dengan
menggunakan tombol saklar untuk menghidupkan led, sehingga saat skalar
ditekan maka led akan menyala dan saat skalar tidak ditekan, maka led akan
mati. Pada percobaan ini alat dan bahan yang digunakan antara lain Arduino
Board, Laptop yang telah diinstall software Arduino Ide, kabel USB tipe A ke
Tipe B, 2 buah resistor, 1 buah LED, saklar dan kabel male-to-male. Langkah
pertama praktikan merangkai semua komponen yang tersedia sesuai dengan
gambar rangkaian yang ada pada modul praktikum. Setelah merangkai, papan
board Arduino dihubungkan pada laptop. Lalu dengan menggunakan software
Arduino IDE, praktikan menginisialisasi led sebagai keluaran yang terhubung
pada pin 7, dan tombol sebagai masukan yang terhubung pada pin 8.
Kemudian
praktikan menggunakan perintah if-else pada fungsi void loop untuk
memberikan opsi pilihan ketika tombol ditekan dan tidak ditekan. Instruksi
masukan==HIGH berarti saat tombol ditekan, maka led akan menyala dengan
instruksi digitalWrite(led, HIGH). Selanjutnya saat perintah else, berarti saat
tombol tidak ditekan, maka led akan mati dengan instruksi digitalWrite(led,
LOW). Setelah itu program di compile dan di upload ke papan board arduino.
Setelah selesai di upload, ketika saklar ditekan maka lampu akan menyala dan
ketika saklar tidak ditekan maka lampu akan mati.
Percobaan kelima yang dilakukan yaitu Digital Input dengan
menggunakan 2 saklar masing-masing untuk menghidupkan LED dan
membunyikan buzzer. Pada percobaan ini alat dan bahan yang digunakan
antara lain Arduino Board, Laptop yang telah diinstall software Arduino Ide,
kabel USB tipe A ke Tipe B, 3 buah resistor, 1 buah LED, 2 buah saklar,
buzzer dan kabel male-to-male. Langkah pertama praktikan merangkai semua
komponen yang tersedia sesuai dengan gambar rangkaian yang ada pada
modul praktikum. Setelah merangkai, papan board Arduino dihubungkan pada
laptop. Lalu dengan menggunakan software Arduino IDE, praktikan
menginisialisasi led dan buzzer sebagai output, dan tombol_led dan
tombol_buzzer sebagai input. Kemudian pada fungsi void loop praktikan
membuat 2 perintah if-else untuk led dan buzzer. Perintah if-else pertama
yaitu untuk buzzer dengan algoritma saat tombol_buzzer HIGH, maka buzzer
akan berbunyi dan saat tombol tidak ditekan, maka buzzer akan mati. Perintah
if-else kedua untuk led dengan algoritma yaitu saat tombol_led HIGH maka
maka status menjadi tidak sama dengan nilai status yang bersifat false saat
dideklarasikan, kemudian perintah if lagi untuk pengecekaan apakah status
tersebut benar atau tidak, jika benar maka led akan menyala dan jika salah
maka led akan mati. Setelah itu program di compile dan di upload ke papan
board arduino. Setelah selesai di upload, ketika saklar lampu ditekan maka
lampu akan menyala dan ketika saklar tidak ditekan maka lampu akan mati.
Pada saklar buzzer ketika saklar buzzer ditekan maka buzzer akan berbunyi
dan ketika saklar tidak ditekan maka buzzer akan mati.
Berikut merupakan gambar flowchart dari kelima percobaan yang telah
dilakukan.
1. Flowchart Percobaan Pertama Menyalakan Lampu LED secara Berkedip

Gambar 1.5.1 Flowchart Percobaan Pertama Menyalakan Lampu LED


secara Berkedip
2. Flowchart Percobaan Kedua Menyalakan Lampu LED secara Bergantian

Gambar 1.5.2 Flowchart Percobaan Kedua Menyalakan Lampu LED


secara Bergantian
3. Flowchart Percobaan Ketiga Running LED

Gambar 1.5.3 Flowchart Percobaan Ketiga Running LED


4. Flowchart Percobaan Keempat Menyalakan Lampu LED dengan
menggunakan saklar

Gambar 1.5.4 Flowchart Percobaan Keempat Menyalakan Lampu LED


dengan menggunakan saklar
5. Flowchart Percobaan Kelima Menyalakan Lampu LED dan Buzzer dengan
menggunakan saklar

Gambar 1.5.5 Flowchart Percobaan Kelima Menyalakan Lampu LED dan


Buzzer dengan menggunakan saklar
VI. KESIMPULAN
1. Papan Board Arduino memiliki 14 pin digital input/output dan 6 pin input
analog.
2. Arduino dapat menerima masukan dalam bentuk analog dan digital, serta
dapat menghasilkan keluaran dalam berbagai bentuk sesuai yang
diinginkan
3. Dengan menggunakan Arduino IDE untuk menyalakan lampu LED
sebagai output, menggunakan perintah digitalWrite (led, HIGH) dan untuk
mematikan lampu LED menggunakan perintah digitalWrite(led, LOW).
4. Delay(time) digunakan sebagai waktu interval untuk LED menyala atau
jeda untuk lampu LED nayal bergantian hingga perintah digitalWrite(led,
LOW).
5. Berdasarkan percobaan yang telah dilakukan pada percobaan Digital Input
lebih banyak menggunakan fungsi if-else sedangkan pada percobaan
Digital Output banyak menggunakan fungsi for.
DAFTAR PUSTAKA

[1] S. Hari, “Belajar Arduino : Pengertian, Manfaat, dan Buku Arduino,” 2017.
[Online]. Available: https://www.elangsakti.com/2017/11/belajar-
arduino.html. [Diakses 27 3 2019].
[2] I. Efendi, “Pengertian dan Kelebihan Arduino,” 2014. [Online]. Available:
https://www.it-jurnal.com/pengertian-dan-kelebihan-arduino/. [Diakses 27 3
2019].
[3] “Arduino Uno Rev3,” 2019. [Online]. Available:
https://store.arduino.cc/usa/arduino-uno-rev3. [Diakses 29 3 2019].
[4] Sinauarduino, “Mengenal Arduino Software (IDE),” 2016. [Online].
Available: https://www.sinauarduino.com/artikel/mengenal-arduino-
software- ide/. [Diakses 27 3 2019].
LAMPIRAN

JAWABLAH PERTANYAAN
1. Apakah yang dimaksud dengan PORT pada menu Tools Arduino IDE?
Jawab : PORT digunakan sebagai penghubung antara Board Arduino dengan
Arduino IDE
2. Apakah fungsi dari void setup() dan void
loop()? Jawab :
 void setup() : Digunakan untuk menginisialisasi dan menetapkan nilai
awal variabel, mode pin, memulai menggunakan library yang akan
digunakan serta hanya dijalankan sekali saat Arduino menyala.
 void loop() : Digunakan untuk menjalankan program secara berulang atau
terus-menerus hingga Arduino mati atau di reset.
3. Apakah arti dari pinMode(Led,OUTPUT) dan
pinMode(Led,INPUT)? Jawab :
 pinMode(Led,OUTPUT) : Menginisialiasi pin LED sebagai Output.
 pinMode(Led,INPUT) : Menginisialisasi pin LED sebagai Input .
4. Apakah fungsi dari resistor 220 pada rangkaian?
Jawab : Resistor 220 berfungsi sebagai pembatas atau penahan arus yang
mengalir pada rangkaian.
5. Apakah fungsi dari digitalWrite() dan digitalRead()?
Jawab :
 DigitalWrite() : Perintah ini berfungsi untuk memasukkan atau menuliskan
suatu nilai digital ke dalam pin.
 DigitalRead() : Perintah ini digunakan untuk membaca nilai masukan yang
diberikan Arduino.
6. Apakah maksud dari printah berikut ini :
int tombol_led = 6;
int buzzer = 7;
Jawab :
 int tombol_led = 6; : Mendeklarasikan bahwa tombol_led dihubungkan
ke arduino melalui pin 6.
 int buzzer = 7; : Mendeklarasikan bahwa buzzer dihubungkan ke arduino
melalui pin 7.
7. Apakah arti dari delay(1500)?
Jawab : Perintah untuk memberikan jeda atau menunda eksekusi program
selama 1500ms atau 1,5 detik.
8. Apakah arti dari status HIGH dan LOW pada script yang anda gunakan?
Jawab : Status HIGH berarti aktif atau menyala dan status LOW berarti
nonaktif atau mati.
9. Apa persamaan dari bahasa pemograman C++ dan bahasa pemograman
Arduino?
Jawab : Persamaan dari bahasa C++ dan Arduino ada pada struktur penulisan
seperti fungsi void, tipe data, fungsi perulangan for, fungsi pemilihan
if-else, dan sama sama biduat dari bahasa dasar C.
10. Apakah arti dari perintah berikut ini ?
if(digitalRead(tombol_buzzer) == HIGH)

Jawab : Jika tombol_buzzer terbaca dalam status aktif atau HIGH maka
program akan melakukan perintah tertentu.
11. Apakah arti dari perintah berikut ini ?
for(led = 2; led <= 7; led++)

Jawab : Program akan dijalankan dimulai dari led 2 hingga led 7 secara berulang
dan berurutan.
TUGAS
1. Buatlah Simulasi & Program lampu lalu lintas (traffic light) di sebuah
pertigaan dengan ketentuan :
 Output 9 lampu LED
 Lampu kuning hidup selama 1 detik
 Lampu Hijau1 (X+2)detik
 Lampu Hijau2 hidup selama (Y+2) detik
 Lampu Hijau3 hidup selama (Z+2) detik
XYZ = 3 digit terakhir NIM
NIM : 17101150
X=1
Y=5
Z=0
Rangkaian Simulasi Traffic Light

Gambar 1. Rangkaian Simulasi Traffic Light

Source Code Program :


// TRAFFIC LIGHT MUHAMMAD NOVIANTO A P (17101150)
int Red1=4; int Red2=8; int Red3=13;
int Yellow1=3; int Yellow2=7; int Yellow3=12;
int Green1=2; int Green2=6; int Green3=11;
void setup()
{
pinMode(Red1,OUTPUT);
pinMode(Yellow1,OUTPUT);
pinMode(Green1,OUTPUT);
pinMode(Red2,OUTPUT);
pinMode(Yellow2,OUTPUT);
pinMode(Green2,OUTPUT);
pinMode(Red3,OUTPUT);
pinMode(Yellow3,OUTPUT);
pinMode(Green3,OUTPUT);
}
void loop()
{
digitalWrite(Green1,HIGH);
digitalWrite(Red2,HIGH);
digitalWrite(Red3,HIGH);
delay(3000); //(X+2)=(1+2)=3 s
digitalWrite(Green1,LOW);
delay(250);
digitalWrite(Yellow1,HIGH);
delay(1000);
digitalWrite(Yellow1,LOW);
digitalWrite(Red2,LOW);
delay(250);
digitalWrite(Green2,HIGH);
digitalWrite(Red1,HIGH);
digitalWrite(Red3,HIGH);
delay(7000); //(Y+2)=(5+2)=7 s
digitalWrite(Green2,LOW);
delay(250);
digitalWrite(Yellow2,HIGH);
delay(1000);
digitalWrite(Yellow2,LOW);
digitalWrite(Red3,LOW);
delay(250);
digitalWrite(Green3,HIGH);
digitalWrite(Red1,HIGH);
digitalWrite(Red2,HIGH);
delay(2000); //(Z+2)=(0+2)=2 s
digitalWrite(Green3,LOW);
delay(250);
digitalWrite(Yellow3,HIGH);
delay(1000);
digitalWrite(Yellow3,LOW);
digitalWrite(Red1,LOW);
delay(250);
}

Link Simulasi Thinkercad :


https://www.tinkercad.com/things/3AKa3nOkszK

Anda mungkin juga menyukai