Anda di halaman 1dari 14

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA


LAPORAN PRAKTIK MIKROPROSESOR
Semester 4 Pengenalan Arduino 1X100 Menit

Muh. Minto Aji Shodiq 20538141009 Tgl : 14 Februari 2022 Tugas 2

A. Teori Singkat
Dalam pemrograman, struktur control sering dipakai untuk mengatur fungsi masukkan
dan keluaran atau manipulasi data. Pada pemrograman Arduino terdapat beberapa struktur
control yang dipakai yaitu percabangan dan pengulangan. Pada percabangan terdapat
perintah if dan if - else sedangkan pada pengulangan terdapat perintah while dan for
pemrograman logika.

1. IF
Perintah if adalah percabangan digunakan untuk menyeleksi suatu kondisi. Jika kondisi
yang diinginkan terpenuhi maka program didalam blok if akan dijalankan, namun jika
kondisi tidak terpenuhi program pada blok if akan dilewati. Contoh :
If(suhu>80) Jika suhu lebih dari 80
{ maka akan ada peringatan panas berlebih
Peringatan panas berlebih!
} jika suhu tidak lebih dari 80 maka tidak terjadi sesuatu

2. IF – ELSE
Perintah IF – ELSE pada dasarnya merupakan lanjutan dari perintah if, pada kondisi if
hanya ada blok program jika kondisi benar saja, sedangkan if – else terdapat blok program
pada kondisi salahnya. Contoh :
If(suhu>80)
{ Jika suhu lebih dari 80
Peringatan panas berlebih!
} maka akan ada peringatan panas berlebih
else
jika suhu tidak lebih dari 80
{
Suhu Masih dalam batas aman maka memberitahu bahwa suhu masih aman
}

3. While
Perintah WHILE merupakan perintah untuk melakukan perulangan yang berdasarkan
pada suatu kondisi, jadi jika kondisi masih terpenuhi maka program pada blok while akan
dikerjakan terus menerus hingga kondisi tidak terpenuhi. Contoh :
while(suhu>80) Selama suhu masih lebih dari 80
{
Peringatan panas berlebih! maka akan ada peringatan panas berlebih
dan pengaman akan diaktifkan
Pengaman diaktifkan
} setelah suhu tidak lebih dari 80
Suhu Masih dalam batas aman. maka memberitahu bahwa suhu masih aman
Pengaman dimatikan dan pengaman dimatikan

4. For
Perintah FOR merupakan perintah untuk mengulang-ulang kondisi di dalam blok selama
persyaratan terpenuhi. Biasanya di gunakan untuk penambahan atau pengurangan yang
berulang-ulang selama kondisi pengulangan terpenuhi. Contoh :

Inisialisai A = 0
Pengulangan for (kondisi awal; syarat pengulangan;
Int A= 0 penambahan (Bisa pengurangan)
For(i=0;i==5;i++)
Posisi I =0
Mencetak A yaitu 0
{ Kemudian menghitung A= A+1 (A = 0 +1)
Posisi I =1
Cetak (A);
Mencetak A yaitu 1
A = A +1;
Kemudian menghitung A= A+1 (A = 0 +1)
} Posisi I =3
Mencetak A yaitu 2
Kemudian menghitung A= A+1 (A = 0 +1)
Selesai menghitung. Dst sampai i=5 kemudian berhenti

Selesai menghitung

B. Bahan dan Alat


1. Arduino Uno 1 buah
2. Kabel tranfer 1 buah
3. LED secukupnya
4. Kabel jumper male-male secukupnya
5. Board 1 buah
C. Program
1. Program 1 (perintah if)
const int pinled = 8; //pinled = 8
int jeda = 1000; //deklarasi nilai jeda = 1000

void setup() {
pinMode(pinled,OUTPUT); //pengaturan mode pinled sebagai output
}

void loop() {
jeda = jeda - 100; //pengurangan jeda sebanyak 100
if(jeda <= 0){ //Jika jeda kurang dari sama dengan nol maka...
jeda = 1000; //nilai jeda = 1000
}
digitalWrite(pinled,HIGH);//penulisan digital pada pinled adalah 1 atau high
delay(jeda); //delay waktu sebanyak jeda dengan satuan milidetik
digitalWrite(pinled,LOW); //penulisan digital pada pinled adalah 0 atau low
delay(jeda);
}

2. Program 2 (perintah if – else)


const int pinled = 8; //pinled = 8
int jeda = 1000; //deklarasi nilai jeda = 1000

void setup() {
pinMode(pinled,OUTPUT); //pengaturan mode pinled sebagai output
}
void loop() {
if(jeda <= 0){ //Jika jeda kurang dari sama dengan nol maka....
jeda = 1000; //nilai jeda = 1000
}
else{ //jika tidak maka...
jeda = jeda - 100; //pengurangan jeda sebanyak 100
}
digitalWrite(pinled,HIGH);//penulisan digital pada pinled adalah 1 atau high
delay(jeda); //delay waktu sebanyak jeda dengan satuan milidetik
digitalWrite(pinled,LOW); //penulisan digital pada pinled adalah 0 atau low
delay(jeda);
}
3. Program 3 (perintah while)
const int pinled = 8; //pinled = 8
int jeda = 1000; //deklarasi nilai jeda = 1000

void setup() {
pinMode(pinled,OUTPUT); //pengaturan mode pinled sebagai output
}

void loop() {
while(jeda > 100){ //Selama nilai jeda lebih dari 100 jalankan blok program ini
digitalWrite(pinled,HIGH); //penulisan digital pada pinled adalah 1 atau high
delay(500); //delay waktu sebanyak 500 milidetik
digitalWrite(pinled,LOW); //penulisan digital pada pinled adalah 0 atau low
delay(500); //delay waktu sebanyak 500 milidetik
jeda = jeda - 100; //pengurangan jeda sebanyak 100
}
while(jeda <1000){ //Selama nilai jeda kurang dari 1000 jalankan blok program ini
digitalWrite(pinled,HIGH); //penulisan digital pada pinled adalah 1 atau high
delay(100); //delay waktu sebanyak 100 milidetik
digitalWrite(pinled,LOW); //penulisan digital pada pinled adalah 0 atau low
delay(100); //delay waktu sebanyak 100 milidetik
jeda = jeda + 100; //penambahan jeda sebanyak 100
}
}
4. Program 4 (Perintah for)
const int pinled = 8; //pinled = 8
int jeda = 3000; //deklarasi nilai jeda = 3000

void setup() {
pinMode(pinled,OUTPUT); //pengaturan mode pinled sebagai output
}

void loop() {
for(int i =1;i<=10;i++){ //pengulangan mulai dari i=1 hingga i=10
digitalWrite(pinled,HIGH); //penulisan digital pada pinled adalah 1 atau high
delay(500); //delay waktu sebanyak 500 milidetik
digitalWrite(pinled,LOW); //penulisan digital pada pinled adalah 0 atau low
delay(500); //delay waktu sebanyak 500 milidetik
}
delay(jeda); //delay waktu sebanyak jeda dalam satuan milidetik
}
5. Program 5
const int led1 = 8; //led 1 pada pin 8
const int led2 = 9; //led 2 pada pin 9
const int led3 = 10; //led 3 pada pin 10
const int led4 = 11; //led 4 pada pin 11
void setup() {
pinMode(led1,OUTPUT); //pengaturan mode pin led 1 sebagai output
pinMode(led2,OUTPUT); //pengaturan mode pin led 2 sebagai output
pinMode(led3,OUTPUT); //pengaturan mode pin led 3 sebagai output
pinMode(led4,OUTPUT); //pengaturan mode pin led 4 sebagai output
}

void loop() {
for(int i=0;i<5;i++){ //pengulangan mulai dari i=0 hingga i=5
if(i==1){ //Jika i=1 maka led 1 menyala dan led 2,3,4 mati
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
else if(i==2){ //Jika i=2 maka led 1,2 menyala dan led 3,4 mati
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
else if(i==3){ //Jika i=3 maka led 1,2,3 menyala dan led 4 mati
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,LOW);
}
else if(i==4){ //Jika i=2 maka led 1,2,3,4 menyala
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
}
else{ //Jika tidak maka led 1,2,3,4 mati
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
}
delay(5000); //jeda waktu 5 detik
}
}
6. Program 6
const int numled = 4; //inisialisasi jumlah led
const int pinled[numled] = {8,9,10,11}; //led 1,2,3,4 jadi 1 variable dengan index 0,1,2,3
int jeda = 3000; //deklarasi nilai jeda = 3000
void setup() {
for(int i=0;i<4;i++){ //pengulangan mulai dari i=0 hingga i<4
pinMode(pinled[i],OUTPUT); //pengaturan mode pinled semua sebagai output
}
}
void loop() {
for(int i=0;i<4;i++){ //pengulangan mulai dari i=0 hingga i<4
digitalWrite(pinled[i],HIGH); //penulisan digital pada pinled ke i adalah 1 atau high
delay(500); //delay waktu sebanyak 500 milidetik
}
for(int i=0;i<4;i++){ //pengulangan mulai dari i=0 hingga i<4
digitalWrite(pinled[i],LOW); //penulisan digital pada pinled ke i adalah 0 atau low
delay(500); //delay waktu sebanyak 500 milidetik
}
}
D. Hasil Pengamatan
1. Program 1 (perintah if)
Ketika program sudah di upload dan kemudian Arduino membutuhkan waktu untuk mulai
bekerja sebesar 0.1s.

Setelah Arduino sudah bekerja, Arduino menjalankan program yang pada program
berulang Langkah awalnya mengurangi jeda sebesar 100, kemudian melewati
percabangan jika jeda <= 100, karena tidak sesuai dengan syarat pencabangan maka
langsung lanjut ke baris selanjutnya yaitu perintah untuk pinled diberi sinyal digital high.
Karena pin 8 mendapat kaki anoda LED dan kaki katoda mendapatkan resistor 220Ω yang
terhubung ke ground, maka LED akan menyala dan kemudian delay waktu sebanyak jeda
yaitu 900ms.

Jeda = 1000 – 100;

Jika (900 <= 0); karena salah maka lanjut baris

delay(900);
Setelah selesai delay 900ms, kemudian perintah untuk pinled diberi sinyal digital low.
Karena kaki anoda LED mendapatkan sinyal low, maka LED akan mati.

Setelah delay 900ms

Setelah selesai delay 900ms, kemudian perintah untuk pinled diberi sinyal digital high.
Karena kaki anoda LED mendapatkan sinyal high, maka LED akan menyala dan akan delay
800ms.

Jeda = 900 – 100;

delay(800);

Setelah delay 900ms

Setelah selesai delay 800ms, kemudian perintah untuk pinled diberi sinyal digital low.
Karena kaki anoda LED mendapatkan sinyal low, maka LED akan mati.
delay(800);

Setelah delay 800ms

Setelah selesai delay 800ms, kemudian perintah untuk pinled diberi sinyal digital High.
Karena kaki anoda LED mendapatkan sinyal high, maka LED akan menyala dan seterusnya
sampai jeda <=0 kemudian blok program if akan di jalankan yaitu jeda = 1000 dan
selanjutnya Kembali ke gambar 2.

2. Program 2(if – else)


Setelah Arduino bekerja, Arduino menjalankan setup awal kemudian nilai awal jeda
adalah 1000 dan Ketika memasuki void loop, jika jeda <=0 maka jeda = 1000 karena syarat
tidak terpenuhi maka program lanjut ke bagian else, dengan jeda = jeda kurangi 100 maka
jeda akan menjadi jeda = 1000 – 100 -> nilai jeda adalah 900. Kemudian program lanjut ke
bagian selanjutnya yaitu perintah untuk pinled diberi sinyal digital High. Karena kaki
anoda LED mendapatkan sinyal high, maka LED akan menyala dengan selang waktu
sebanyak jeda tadi yaitu 900 dengan satuan ms. Program akan di ulang-ulang terus
menerus, Ketika nilai jeda <=0 maka syarat terpenuhi dan blok program akan di jalankan
yaitu jeda = 1000, karena syarat terpenuhi maka block else akan dilewati.
3. Perintah 3(while)
Setelah Arduino bekerja, Arduino menjalankan setup awal kemudian nilai awal jeda
adalah 1000 dan Ketika memasuki void loop, while (jeda > 0) karena terpenuhi maka jeda
= 100 karena syarat terpenuhi maka blok program dikerjakan perintah untuk pinled diberi
sinyal digital High. Karena kaki anoda LED mendapatkan sinyal high, maka LED akan
menyala dengan selang waktu 500ms dan kemudian. Program akan di ulang-ulang terus
menerus, Ketika nilai jeda <=0 maka syarat terpenuhi dan blok program akan di jalankan
yaitu jeda = 1000, karena syarat terpenuhi maka block else akan dilewati.

4. Perintah 4 (For)
Setelah Arduino bekerja, Arduino menjalankan setup awal kemudian nilai awal jeda
adalah 3000 dan Ketika memasuki void loop, for (I = 1; i<=10; i++) [arti nya I = 0 dengan
syarat I <=10 dan I bertambah setiap pengulangan] karena syarat terpenuhi maka blok
program dikerjakan perintah untuk pinled diberi sinyal digital High. Karena kaki anoda LED
mendapatkan sinyal high, maka LED akan menyala dengan selang waktu 500ms dan
kemudian perintah untuk pinled diberi sinyal digital LOW dan LED mati selama 500ms.
Program akan di ulang-ulang terus menerus sampai dengan syarat tidak terpenuhi atau I
> 10, Ketika syarat ditidak terpenuhi maka program setelah blok for akan di jalankan yaitu
delay waktu sebesar jeda (3000) dan kemudian program akan di ulang lagi pada void loop.

5. Program 5
Pada program ini menggunakan 4 output yang berupa LED dengan pin output 8, 9, 10, 11.
Pada program pengulangan menggunakan for (i=0; i<5; i++) yang artinya i=0 (nilai awal)
dengan syarat i<5 dan i bertambah 1 setiap pengulangan didalam for. Sedangkan program
didalam for menggunakan perintah if, else if, else. Karena nilai awal I = 0 maka blok pada
else akan di kerjakan terlebih dahulu karena tidak memenuhi syarat pada percabangan
sebelumnya, kemudian delay selama 5000 ms dan i bertambah 1 jadi nilai I sekarang
adalah 1 kemudian blok if akan dikerjakan karena memenuhi syarat kemudian delay
5000ms dan i bertambah 1 jadi nilai i sekarang adalah 2 kemudian blok else if (i=2) akan
dikerjakan karena memenuhi syarat kemudian delay 5000ms . dan i bertambah 1 jadi nilai
i sekarang adalah 3 kemudian blok else if (i=3) akan dikerjakan karena memenuhi syarat
kemudian delay 5000ms dan i bertambah 1 jadi nilai i sekarang adalah 2 kemudian blok
else if (i=3) akan dikerjakan karena memenuhi syarat kemudian delay 5000ms dan i
bertambah 1 jadi nilai i sekarang adalah 4 kemudian blok else if (i=4) akan dikerjakan
karena memenuhi syarat kemudian delay 5000ms. Dan syarat for tidak terpenuhi dan
memulai mengulang dari awal bagian loop.

6. Program 6
Pada program ini menggunakan 4 output yang berupa LED dengan pin output 8, 9, 10, 11
yang dimasukan kedalam larik [larik 0, larik 1, larik 2, larik 3] . Pada program setup
menggunakan for (i=0; i<4; i++) yang artinya i=0 (nilai awal) dengan syarat i<4 dan i
bertambah 1 setiap pengulangan didalam for untuk mendefinisikan output pin LED dan
pada program loop menggunakan 2 for (i=0; i<4; i++) yang artinya i=0 (nilai awal) dengan
syarat i<4 dan i bertambah 1 setiap pengulangan didalam for. Pada for ke 1 melakukan
pengulangan untuk menyalakan LED secara berurutan dengan urutan pada larik dengan
selang waktu 500ms. Sedangkan pada for ke 2 melakukan pengulangan untuk mematikan
LED secara berurutan dengan urutan pada larik dengan selang waktu 500ms.
E. Screen capture
Program 5

Program 6

Anda mungkin juga menyukai