Anda di halaman 1dari 16

LAPORAN PRAKTIKUM

RANCANGAN DAN APLIKASI IOT


UNIT 2

Disusun oleh
Nama : Leriana Thufailah Hidayat Putri
NIM : 16/396791/SV/10975

LABORATORIUM INSTRUMENTASI DAN KENDALI


PROGRAM DIPLOMA
TEKNOLOGI REKAYASA INTERNET
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2018
UNIT 2
(Digital Input Output)

A. Dasar Teori
Arduino Mega 2560 merupakan microcontroller board dengan basis ATmega2560
(datasheet). Arduino memiliki 54 digital input/outpun pins (dengan 14 yang bisa digunakan
untuk PWM outputs), 16 analog inputs, 4 UARTs (hardware serial ports), dengan 16 MHz
crystal oscillator, koneksi US,power jack.sebuah ICSP header,dan tombol reset.Arduino
memiliki apapun yang dibutuhkan untuk support microcontroller. Sangat mudah untuk
menghubungkan Arduino ke computer menggunakan kabel USB atau power dengan AC to
DC adapter atau baterai siap pakai. Arduino mega kompatibel dengan pelindung yang di
desain untuk Arduino duemilanove atau diecimila.

Masing-masing dari 54 pin digital pada Mega dapat digunakan sebagai input atau
output, menggunakan fungsi pinMode (), digitalWrite (), dan digitalRead (). Mereka
beroperasi pada 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA
dan memiliki resistor pull-up internal (terputus secara default) 20-50 kOhms. Selain itu,
beberapa pin memiliki fungsi khusus:
 Serial: 0 (RX) and 1 (TX); Serial 1: 19 (RX) and 18 (TX); Serial 2: 17 (RX)
and 16 (TX); Serial 3: 15 (RX) and 14 (TX). Digunakan untuk menerima (RX)
dan mengirimkan (TX) data serial TTL. Pin 0 dan 1 juga terhubung ke pin yang
sesuai pada chip Serial ATmega8U2 USB-to-TTL.
 External Interrupts: 2 (interrupt 0), 3 (interrupt 1), 18 (interrupt 5), 19
(interrupt 4), 20 (interrupt 3), and 21 (interrupt 2). Pin ini dapat dikonfigurasi
untuk memicu interupsi pada nilai rendah, tepi naik atau turun, atau perubahan nilai.
Lihat fungsi attachInterrupt () untuk detailnya.

 PWM: 0 to 13. Menyediakan output PWM 8-bit dengan fungsi analogWrite ().

 SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). Pin ini mendukung komunikasi


SPI, yang meskipun disediakan oleh perangkat keras yang mendasarinya, saat ini
tidak termasuk dalam bahasa Arduino. Pin SPI juga pecah pada header ICSP, yang
secara fisik kompatibel dengan Duemilanove dan Diecimila.

 LED: 13. Ada built-in LED yang terhubung ke pin digital 13. Ketika pin bernilai
HIGH, LED menyala, ketika pin RENDAH, mati.

 I2C: 20 (SDA) and 21 (SCL). Mendukung komunikasi I2C (TWI) menggunakan


pustaka kawat (dokumentasi di situs web Wiring). Perhatikan bahwa pin ini tidak
berada di lokasi yang sama dengan pin I2C pada Duemilanove.

Mega2560 memiliki 16 input analog, masing-masing menyediakan 10 bit resolusi


(yaitu 1024 nilai yang berbeda). Secara default, mereka mengukur dari tanah ke 5 volt,
meskipun itu mungkin untuk mengubah ujung atas jangkauan mereka menggunakan pin
AREF dan fungsi analogReference ().

 Ada beberapa pin lain di papan:


a. AREF. Tegangan referensi untuk input analog. Digunakan dengan
analogReference ().
b. Reset. Bawa garis ini RENDAH untuk me-reset mikrokontroler. Biasanya
digunakan untuk menambahkan tombol reset ke perisai yang memblokir satu di
papan.
B. Screenshot Program dan Analisa
Pada pembuatan program, pin digital digunakan untuk menginisialisasi pin yang
digunakan sebagai pengaktif LED pada module arduino.

Latihan
1. Membuat LED blink berjalan

Pada program di atas terdapat sebuah variabel array yaitu variable LED[], yang
memiliki nilai dari delapan nomor pin LED Low Active yang ada di papan Arduino Mega.
Selain variabel, juga terdapat 2 fungsi sketch yaitu loop() dan setup(), serta fungsi LEDoff()
yang digunakan untuk membuat semua lampu LED padam yaitu dengan memasukan sinyal
HIGH ke setiap pin melalui fungsi digitalWrite().
Pada fungsi setup(), terdapat inisialisasi semua pin LED yang dilakukan dengan
perulangan for. Di dalam perulangan tersebut terdapat fungsi pinMode() yang digunakan
untuk mengatur nomor pin yang digunakan, dan nomor pin yang dipilih akan dibuat
menjadi mode Input ataukah Output.
Untuk membuat lampu LED menyala bergantian, dilakukan pada sketch loop()
yang di dalamnya terdapat perulangan untuk membuat LED blinked (berkedip), yaitu
dengan menyalakan lampu selama beberapa saat lalu memadamkan lampu tersebut. Hal ini
dilakukan dengan memberikan sinyal LOW ke pin melalui digitalWrite(), lalu memanggil
fungsi LEDoff() untuk memadamkan lampu LED.

Program di atas juga merupakan pembahasan pada program Latihan no 1 dan 2


yang identik dengan program di atas.

2. Membuat LED blink berjalan dengan tombol


Pada tahap ini adalah versi lanjutan dari program pertama dimana terdapat proses
tambahan, yaitu apabila tombol push button ditekan, lampu akan berkedip-kedip. Program
ini menggunakan further syntax yaitu #define yang digunakan untuk mendefinisikan suatu
variabel / konstanta secara global. Contoh pada program di atas adalah pendefinisian
konstanta dari 2 buah tombol yang akan digunakan di dalam program, yaitu TombolA dan
TombolC yang masing-masing memiliki nilai 47 dan 51. Nilai 47 dan 51 adalah nomor pin
yang terhubung dengan 2 buah Push Button.
Kedua Push button tersebut diinisialisasikan dengan menggunakan fungsi
pinMode() dengan menuliskan input di dalam fungsi tersebut, serta keduanya juga telah
diatur nilai awalnya yaitu bernilai HIGH dengan menggunakan fungsi digitalWrite().
Pengaturan fungsi Push Button agar bisa digunakan secara baik dilakukan pada sketch
loop(), yaitu dengan membaca nilai yang diberikan oleh Push Button ketika ditekan yaitu
dengan menggunakan fungsi digitalRead(). Nilai yang diberikan dari push button yang
ditekan bernilai LOW, dan akan disimpan ke masing-masing variabel sesuai dengan
tombol yang ditekan. Variabel tersebut digunakan dalam penentuan dampak ke lampu LED
menggunakan Percabangan IF. Percabangan tersebut memanggil fungsi yang berdampak
ke nyala lampu LED.

Excercies 1
a. Make the program that LED blinked sequential

Analisa :
Task 1 ini kita diminta untuk menyalakan LED secara sekuensial yaitu berurutan
dari kiri ke kanan. Terdapat 8 pin yang digunakan pada percobaan ini, yaitu ( 31, 33, 35,
37, 39, 41, 43, 45 ) yang mana pin tersebut terhubung dengan LED. Kemudian program
diset menjadi proses looping dari kanan ke kiri yang mana ketika pada fungsi digital write,
kita beri masukan LOW pada LED nya karena pada port board Arduino sudah bernilai
HIGH, sehingga akan ada arus listrik yang mengalir. Lalu pada badan LEDoff berfungsi
untuk mematikan lampu LED, pada fungsi digitalWrite, kita beri masukan HIGH pada
LED guna memutus aliran listrik. Pada iterasi, baik di badan loop, setup, dan LEDoff kita
menggunakan fungsi for dengan nilai awal I sebesar 0.
b. Make the program that LED turn light from right to the left

Analisa :
Pada program diatas diminta untuk membuat Arduino dengan menyalakan LED
dari kanan ke kiri dengan mengubah source code pada contoh program 1 yaitu mengubah
urutan pin code yang akan menyala dari 45, 43, 41, 39, 37, 35, 33, 31. Sehingga ketika
proses compile dan ipload program maka Arduino akan menyalakan LED dari kanan ke
kiri.

c. Make the program like task 2 but will turn off from left and repeatly

Analisa :
Program pada nomor 3 ini memiliki struktur yang mirip dengan program pada
nomor 1, perbedaannya terletak pada fungsi setup() dimana tidak ada fungsi LEDoff().
Ketika program diunggah ke sistem arduino, arduino akan memproses program tersebut
dan kedelapan lampu LED akan menyala karena tidak ada fungsi LEDoff() pada sketch
setup().

Lampu akan padam secara bergiliran karena pada sketch loop() terdapat fungsi
untuk memadamkan lampu LED dengan memberikan nilai HIGH pada masing-masing pin
yang dimiliki secara berulang.

d. Latihan 4
Program ini merupakan pengembangan dari program program di atas, yang
memiliki beberapa ketentuan yaitu :
a. Menggunakan 4 fungsi Push Button.

b. Ketika Push Button ditekan akan memberikan dampak terhadap lampu LED, antara lain
sebagai berikut:
 Berkedip dengan delay 1 detik.

 Menyala berkedip setengah di sisi kanan


 Menyala berkedip setengah di sisi kiri

 Berkedip secara pingpong

c. Pengaturan pada push button agar sesuai dengan ketentuan


Terdapat percabangan untuk masing-masing dampak ke Lampu LED apabila suatu Push
Button ditekan.

1. Latihan 5
Program ini juga memiliki struktur yang sama dengan program pada no 4, yaitu keempat Push
button digunakan juga di dalam program ini. Akan tetapi, pada program ini memiliki ketentuan
dimana saat sebuah Push Button ditekan akan membuat lampu LED berkedip, dan ketika
lampu LED masih berkedip tidak akan ada interupsi ketika tombol lain ikut ditekan. Hal ini
diterapkan pada sketch loop yaitu terdapat percabangan pada masing-masing push button
ketika ditekan.

2. Latihan 6

Pada program ini menggunakan 3 buah Push Button dimana masing-masing Push Button
memiliki fungsi yang berbeda yang akan berdampak terhadap nyala/padamnya lampu LED,
yaitu :
 Membuat lampu menyala

 Membuat lampu berkedip


 Memadamkan lampu

Ketiga dampak tersebut akan muncul satu per satu ketika ketentuan terpenuhi, yaitu:

 Push Button 1 ditekan 3 kali akan menyalakan Lampu LED.

Ketika tombol push button 1 ditekan, akan mengubah nilai yang ada pada variabel
kondisi1, yang mulanya bernilai 0 akan bernilai sebanyak jumlah penekanan yang
dilakukan karena terdapat proses penambahan dengan operator incerement pada
variabel kondisi1 yaitu “kondisi1++”. Ketika kondisi terpenuhi, maka akan memanggil
fungsi untuk menyalakan lampu LED.
 Push Button 2 ditekan 5 kali akan menyalakan Lampu LED.
Sama halnya seperti pada push button 1, apabila push button 2 ditekan maka akan
mengubah nilai yang ada pada variabel kondisi2. Apabila kondisi terpenuhi maka akan
memanggil fungsi untuk membuat lampu LED berkedip.
 Push button 3 ditekan, Lampu LED padam

Memanggil fungsi untuk memadamkan lampu LED ketika push button 3 di tekan.
PENUTUP

A. KESIMPULAN
Berdasarkan praktikum pertemuan 1 unit 2 perancangan dan aplikasi IOT tentang Arduino
dapat ditarik kesimpulan bahwa :

1. Untuk mengubah pin menjadi mode input atau output, dapat dilakukan dengan
menggunakan fungsi pinMode().
2. Untuk menuliskan sinyal HIGH atau LOW ke suatu pin output, dilakukan dengan
menggunakan fungsi digitalWrite().
3. Untuk membaca nilai dari suatu pin input dilakukan dengan menggunakan fungsi
digitalRead().

Anda mungkin juga menyukai