LAPORAN I
INPUT DAN OUTPUT DIGITAL
1.1. Tujuan
Setelah melakukan praktek ini, mahasiswa diharapkan mampu :
1. Merangkai rangkaian elektronika sederhana pada Breadboard
2. Membuat program sederhana menggunakan Arduino IDE
3. Mampu mengontrol komponen digital output seperti LED dan Buzzer
menggunakan Arduino Uno
4. Mampu mengontrol komponen digital input dengan push button
menggunakan Arduino Uno
2. LED
LED yang merupakan singkatan dari Light Emitting Diode, adalah
komponen elektronika yang berfungsi untuk memancarkan cahaya
monokromatik apabila tegangan naik (high). LED memiliki 2 kaki yang
akan terhubung ke sumber listrik. Kedua kaki LED tersebut adalah anoda
dan katoda. Kaki anoda lebih panjang dibandingkan katoda, dan
terhubung ke sumbu positif dari baterai. Sedangkan katoda memiliki
H a l a m a n 1 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
panjang kaki lebih pendek dari anoda dan terhubung ke sumbu negatif
baterai. Lebih jelas mengenai LED dapat dilihat pada Gambar 1.
3. Buzzer
Buzzer merupakan komponen output yang menghasilkan suara.
Kemunculan suara diperoleh dari proses pengubahan sinyal listrik
menjadi getaran. Buzzer memiliki fungsi yang sama dengan speaker,
namun buzzer hanya menghasilkan suara mono. Agar dapat aktif, buzzer
membutuhkan tegangan 3 sampai 12 Volt. Buzzer yang dipakai pada
rangkaian elektronika memiliki dua buah kali yang bermuatan positif dan
negatif. Jenis buzzer elektronika yang sering digunakan dan ditemukan
dalam rangkaian adalah buzzer yang berjenis Piezoelectric (Piezoelectric
Buzzer). Adapun lebih jelas menggenai buzzer jenis piezoelectric dapat
dilihat pada Gambar 2.
H a l a m a n 2 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
4. Push Button
Push button adalah perangkat elektronika yang berfungsi untuk
memutus dan mengalirkan arus listrik. Secara default, keadaan push
button dalam posisi unlock (tidak mengunci). Sehingga apabila tombol
ditekan makan akan kembali ke posisi semula. Push button merupakan
saklar tekan yang berfungsi sebagai pemutus dan penghubun arus listrik.
Saat push button ditekan, maka rangkatian akan menjadi close circuit
yang dapat menghantarkan arus listrik secara kontinu. Sedangkan
apabila dilepas maka rangkaian akan menjadi open circuit atau tidak
dapat menghantarkan arus listrik keseluruh rangkaian. Ilustrasi open
circuit dan close circuit ditunjukan pada Gambar 3.
H a l a m a n 3 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
Terdapat 3 jenis push button yang ada di pasaran saat ini. Penjelasan
dari ketiga jenis push button tersebut adalah sebagai berikut :
a. Push Button NO (Normally Open)
Jenis push button ini akan menyambungkan arus listrik saat
ditekan, dan akan kembali seperti semula saat dilepas. Jenis push
button ini yang akan kita pakai untuk praktikum dengan wokwi.
H a l a m a n 4 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
A. Pull Down
Rangkaian Pull Down ditunjukan pada Gambar 4, dimana salah satu kaki
resistor dihubungkan ke kutub ground (0 V), sedangkan kaki resistor
yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke switch
on/off untuk disambungkan ke Vcc (5 V/3.3 V).
H a l a m a n 5 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
B. Pull Up
Rangkaian Pull Up ditunjukan pada Gambar 5, dimana salah satu kaki
resistor dihubungkan ke kutub Vcc (5v/3.3v), sedangkan kaki resistor
yang lain dicabangkan, satu ke pin input MCU, dan yang lain ke switch
on/off untuk disambungkan ke ground (0V).
H a l a m a n 6 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
H a l a m a n 7 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
H a l a m a n 8 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
H a l a m a n 9 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
1. int redLed = 2;
2. int button = 3;
3. int buttonState;
4.
5. void setup()
6. {
7. pinMode(redLed, OUTPUT);
8. pinMode(button, INPUT);
9. }
10.
11. void loop()
12. {
13. buttonState = digitalRead(button);
14.
15. if ( buttonState == HIGH)
16. {
17. digitalWrite(redLed, HIGH);
18. }
19.
20. if (buttonState == LOW)
21. {
22. digitalWrite(redLed, LOW);
23. }
24. }
H a l a m a n 10 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
H a l a m a n 11 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
11.
12. pinMode(l_red, OUTPUT);
13. pinMode(l_yellow, OUTPUT);
14. pinMode(l_green, OUTPUT);
15. }
16.
17. void loop()
18. {
19. button_st = digitalRead (button);
20.
21. if (button_st == 1)
22. {
23. digitalWrite(l_red, 1);
24. delay(1000);
25. digitalWrite(l_yellow, 1);
26. delay(1000);
27. digitalWrite(l_green, 1);
28. delay(1000);
29. }
30. else
31. {
32. digitalWrite(l_red, 0);
33. digitalWrite(l_yellow, 0);
34. digitalWrite(l_green, 0);
35. }
36. }
H a l a m a n 12 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
Hasil:
a. Rangkaian
b. Source Code
int green_led = 4;
int yellow_led = 3;
int red_led = 2;
int buzzer = 5;
void setup() {
pinMode(green_led, OUTPUT);
H a l a m a n 13 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
pinMode(yellow_led, OUTPUT);
pinMode(red_led, OUTPUT);
pinMode(buzzer, OUTPUT);
}
Kode pada fungsi void setup() akan dijalankan sekali pada saat program
dijalankan. Method pinMode adalah sebuah perintah yang fungsinya
untuk mengkonfigurasi pin tertentu agar bekerja menjadi sebuah input
atau output. Method pinMode memiliki 2 parameter yaitu pin dan
mode. Parameter pin berfungsi untuk menetukan pin yang akan
dikonfigurasi. Sedangkan parameter mode berfungsi untuk
menentukan mode apa yang akan digunakan apakah sebagai input atau
output. Disini kita akan mengatur agar semua komponen kita menjadi
output.
void loop() {
for (int i = 0; i < 2; i++) {
digitalWrite(green_led, HIGH);
tone(buzzer, 500);
delay(250);
digitalWrite(green_led, LOW);
noTone(buzzer);
delay(250);
}
for (int i = 0; i < 3; i++) {
digitalWrite(yellow_led, HIGH);
tone(buzzer, 500);
delay(500);
digitalWrite(yellow_led, LOW);
noTone(buzzer);
delay(500);
}
digitalWrite(red_led, HIGH);
noTone(buzzer);
delay(5000);
digitalWrite(red_led, LOW);
tone(buzzer, 500);
delay(1000);
}
H a l a m a n 14 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
Kode yang ada di dalam fungsi loop() akan dijalankan terus menerus
dan akan berhenti jika daya dicabut atau board dimatikan.
Maksud dari blok kode di atas ini adalah kode yang berada di dalam
blok for akan dijalankan sebanyak 2 kali.
H a l a m a n 15 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
Maksud dari blok kode di atas ini adalah kode yang berada di dalam
blok for akan dijalankan sebanyak 3 kali.
digitalWrite(red_led, HIGH);
noTone(buzzer);
delay(5000);
digitalWrite(red_led, LOW);
tone(buzzer, 500);
delay(1000);
Kode diatas ini akan menyalakan LED merah selama 5 s, dan kemudian
mati selama 1s. Buzzer dalam keadaan mati saat LED merah menyala.
Kode ini akan dijalankan setelah kedua perulangan selesai.
H a l a m a n 16 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
Catatan : ketika salah satu push button ditekan maka push button lainnya
tidak akan bisa aktif (mati)
Hasil:
a. Rangkaian
H a l a m a n 17 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
b. Source Code
int red_led = 3;
int green_led = 4;
int redButton = 8;
int greenButton = 10;
int greenState;
int redState;
int buzzer = 6;
void setup()
{
pinMode(green_led, OUTPUT);
pinMode(red_led, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(greenButton, INPUT);
pinMode(redButton, INPUT);
}
Kode pada fungsi void setup() akan dijalankan sekali pada saat program
dijalankan. Method pinMode adalah sebuah perintah yang fungsinya
untuk mengkonfigurasi pin tertentu agar bekerja menjadi sebuah input
atau output. Method pinMode memiliki 2 parameter yaitu pin dan
mode. Parameter pin berfungsi untuk menetukan pin yang akan
dikonfigurasi. Sedangkan parameter mode berfungsi untuk
menentukan mode apa yang akan digunakan apakah sebagai input atau
output. Disini kita akan mengatur komponen LED dan buzzer kita
memiliki mode output, sedangkan untuk buttonnya atur menjadi input.
H a l a m a n 18 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
void loop()
{
greenState = digitalRead(greenButton);
redState = digitalRead(redButton);
if (redState == HIGH)
{
digitalWrite(red_led, HIGH);
tone(buzzer, 500);
} else if (greenState == LOW) {
digitalWrite(green_led, LOW);
noTone(buzzer);
}
if (greenState == HIGH)
{
digitalWrite(green_led, HIGH);
tone(buzzer, 500);
} else if (redState == LOW){
digitalWrite(red_led, LOW);
noTone(buzzer);
}
}
Kode yang ada di dalam fungsi loop() akan dijalankan terus menerus
dan akan berhenti jika daya dicabut atau board dimatikan.
greenState = digitalRead(greenButton);
redState = digitalRead(redButton);
if (redState == HIGH)
{
digitalWrite(red_led, HIGH);
tone(buzzer, 500);
} else if (greenState == LOW) {
digitalWrite(green_led, LOW);
noTone(buzzer);
}
H a l a m a n 19 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
if (greenState == HIGH)
{
digitalWrite(green_led, HIGH);
tone(buzzer, 500);
} else if (redState == LOW){
digitalWrite(red_led, LOW);
noTone(buzzer);
}
1.6. Penutup
1. Kesimpulan
a. Void loop digunakan untuk perulangan program.
b. digitalWrite() berfungsi untuk menuliskan nilai secara digital pada
suatu pin dalam Arduino. Sedangkan digitalRead() berfungsi untuk
membaca nilai input yang diberikan pada Arduino.
c. Menggunakan fungsi digitalWrite() atau digitalRead(), Anda harus
terlebih dahulu mengatur mode pin sebagai OUTPUT atau INPUT
dengan menggunakan fungsi pinMode().
d. Status HIGH berarti menyala (ON), sedangkan status LOW berarti
mati (OFF).
H a l a m a n 20 | 21
Laporan Praktikum Jobsheet 1 Internet of Things
2. Saran
a. Praktek menggunakan sensor lebih banyak.
b. Jangan terbalik memasangkan positif dan negatif.
c. Sewaktu melakukan pemrograman jangan salah input portnya.
d. Cek board dan juga wemosnya apakah sudah terkoneksi belum.
H a l a m a n 21 | 21