Anda di halaman 1dari 33

Laboratorium Komputer 54

Teknik Mesin Universitas Brawijaya Kelompok 24

BAB II
ARDUINO

2.1 Pendahuluan
2.1.1 Latar Belakang

Dengan semakin berkembangnya zaman diikuti dengan semakin majunya teknologi,


para mahasiswa teknik mesin memerlukan suatu perkembangan yang berkelanjutan,
karena kita tidak bisa jauh dari teknologi atau peralatan - peralatan canggih yang ada di
sekitar kita. Dengan semakin canggihnya peralatan yang digunakan kita tentu harus bisa
mengoperasikannya. Pada zaman sekarang sebagian besar peralatan sudah dioperasikan
menggunakan program yang dijalankan di komputer. Maka dari itu penting bagi kita para
mahasiswa teknik mesin untuk memahami pemrograman komputer. Dalam praktikum ini
kita akan mempelajari tentang program Arduino UNO.
Arduino adalah pengendali mikro single-board yang bersifat open-source diturunkan
dari wiring platform, dirancang untuk memudahkan penggunaan peralatan elektronik dalam
berbagai bidang. Perangkat lunaknya memiliki bahasa pemrograman sendiri.
Arduino yang kita pakai pada praktikum kali ini adalah Arduino UNO. Jenis Arduino ini
adalah yang paling banyak digunakan, terutama untuk pemula sangat disarankan untuk
menggunakan Arduino UNO. Versi yang terakhir adalah Arduino UNO R3 (revisi 3),
menggunakan ATMEGA328 sebagai mikrokontrolernya memiliki 14 pin I/O digital dan 6
pin input analog. Untuk pemrograman cukup menggunakan koneksi USB (Universal Serial
Bus) tipe A ke tipe B, sama seperti yang digunakan pada USB printer.

2.1.2 Tujuan Praktikum

a. Mengenalkan fungsi dasar dan alur pembuatan algoritma serta flowchart dalam
penyelesaian suatu masalah
b. Mengenalkan Arduino secara umum.
c. Mengenalkan bagian serta fungsi dari tiap – tiap komponen dalam Arduino.
d. Menjelaskan alur pembuatan secara sederhana melalui Arduino.

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 55
Teknik Mesin Universitas Brawijaya Kelompok 24

2.2 Dasar Teori


2.2.1 Lingkungan Arduino Uno

Gambar 2.1 Papan Arduino


Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik
Universitas Brawijaya (2018)

Bagian-bagian arduino :
1. Quartz Crystal Oscillator (Q1 – Kristal)
Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah
jantungnya karena komponen ini menghasilkan detak-detak yang dikirim kepada
microcontroller agar melakukan sebuah operasi untuk setiap detak-nya. Kristal ini
menghasilkan detak 16 juta kali per detik (16MHz).
2. Power Jack (Sumber Daya Eksternal)
Jika hendak dihubungkan dengan sumber daya ekternal, papan Arduino Uno
dapat diberikan tegangan DC antar 9-12V.
3. Pin RESET
Digunakan untuk menambahkan komponen pengganti reset button secara
eksternal kepada Arduino.
4. Pin 3,3V
Pin yang menghasilkan keluaran berupa tegangan 3,3 volt.

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 56
Teknik Mesin Universitas Brawijaya Kelompok 24

5. Pin 5V
Pin yang menghasilkan keluaran berupa tegangan 5 volt. Sebagaian besar
komponen yang digunakan papan Arduino bekerja dengan baik pada tegangan 3,3
volt dan 5 volt.
6. Pin GND (Ground)
Ada beberapa pin GND pada Arduino yang digunakan untuk menghubungkan
ground rangkaian. Untuk komponen sederhana atau hanya memiliki 2 kaki
merupakan tempat terhubungnya kaki minus.
7. Pin VIn
Pin yang digunakan untuk menghubungkan sumber daya eksternal pada papan
Arduino Uno (DC 9-12V).
8. 6 Pin Input Analog (A0-A5)
Pin ini digunakan untuk membaca tegangan yang dihasilkan oleh sensor analog,
seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023,
dimana hal itu mewakili nilai tegangan 0 – 5V.
9. Microcontroller ATMega (IC)
Komponen utama dari papan Arduino Uno. Di dalamnya terdapat CPU, ROM,
dan RAM.
10. In-Circuit Serial Programming (ICSP)
Port ICSP memungkinkan pengguna untuk memprogram microcontroller secara
langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan
ini sehingga ICSP tidak terlalu dipakai walaupun disediakan.
11. Reset Button
Untuk memulai ulang papan sehingga program akan mulai lagi dari awal.
Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau
mengosongkan microcontroller.
12. 14 pin I/O digital (0-13)
Berfungsi sebagai input atau output, yang dapat diatur oleh program. Khusus
untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output
dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat
diprogram antara 0 – 255, dimana hal itu mewakili nilai tegangan 0 – 5V.

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 57
Teknik Mesin Universitas Brawijaya Kelompok 24

13. Pin AREF


AREF merupakan singkatan dari Analog Reference. AREF kadanag-kadang
digunakan untuk mengatur tegangan referensi eksternal (antar 0 dan 5 Volts) sebagai
batas atas untuk pin input analog input.
14. TX dan RX LED
Pada papan Arduino, kita akan menemukan label: TX (transmit) dan RX (receive).
TX dan RX muncul di dua tempat pada papan Arduino Uno. Pertama, di pin digital 0
dan 1, Untuk menunjukkan pin yang bertanggung jawab untuk komunikasi serial. Kedua,
TX dan RX led (13). TX led akan berkedip dengan kecepatan yang berbeda saat
mengirim data serial. Kecepatan kedip tergantung pada baud rate yang digunakan oleh
papan arduino. RX berkedip selama menerima proses.
15. USB
Berfungsi untuk memuat program dari komputer ke dalam papan, jalur
komunikasi serial antara papan dan komputer, serta sebagai sumber daya listrik
papan arduino.

2.2.2 LCD

Gambar 2.2 LCD 16x2


Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik
Universitas Brawijaya (2018)

LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat
dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi
memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan
cahaya dari back-lit. LCD (Liquid Cristal Display) berfungsi sebagai penampil data baik
dalam bentuk karakter, huruf, angka ataupun grafik. Penjelasan pin yang ada di lcd 16x2:

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 58
Teknik Mesin Universitas Brawijaya Kelompok 24

Tabel 2.1
Daftar Pin LCD

Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik


Universitas Brawijaya (2018)

2.2.3 Sensor LM35


LM35 merupakan IC sensor suhu dengan bentuk yang mirip dengan transistor, kaki
IC ini hanya ada tiga, yaitu VCC, Output, dan GND.

Gambar 2.3 Sensor Suhu (LM35)


Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik
Universitas Brawijaya (2018)

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 59
Teknik Mesin Universitas Brawijaya Kelompok 24

Karakteristik dari sensor ini yaitu setiap kenaikan 10 mV pada kaki output,
menandakan kenaikan suhu 1° celcius. Konversi suhu pada output LM35 juga tergantung
pada tegangan referensi yang digunakan.

2.2.4 Tipe Data


a. Pengertian Tipe Data
Tipe data adalah suatu bentuk penggolongan jenis data berdasarkan kategori
data, ukuran dan kegunaan data yang dapat ditampung oleh sebuah variabel.

Tabel 2.2
Tipe Data Arduino
Type Lenght (bit) Data Range
Int 16 -32,767 to 32,767
Unsigned int 16 0 to 65,535
Long 32 -2147483648 s/d 2147483647
Unsigned long 32 0 s/d 4294967295
Float 32 1E-37 to 1E+37 with six digits of precision
Double 64 1E-37 to 1E+37 with ten digits of precision
Char 8 -127 to 127
Unsigned char 8 0 to 255
Byte 8 0 to 255
Short 16 -32,767 to 32,767

2.2.5 Variabel
Variabel adalah tempat untuk menyimpan sepotong data dan memiliki nama, nilai
dan tipe. Misalnya, pernyataan berikut ini (disebut deklarasi):
int pin = 13;
Menciptakan variabel yang memiliki nama pin, yang memiliki nilai 13, dan yang
memiliki jenis int (Integer). Kemudian dalam program ini, anda dapat merujuk ke
variabel ini dengan namanya, di mana titik nilainya akan dicari dan digunakan. Misalnya,
dalam pernyataan ini:
PinMode(pin, OUTPUT);

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 60
Teknik Mesin Universitas Brawijaya Kelompok 24

Kode diatas adalah nilai dari pin yang akan diteruskan ke fungsi pinMode (). Dalam
hal ini, anda tidak benar-benar perlu menggunakan variabel, pernyataan ini akan bekerja
sama dengan baik.
Keuntungan dari variabel dalam hal ini adalah bahwa anda hanya perlu menentukan
jumlah sebenarnya dari pin, tetapi anda dapat menggunakannya banyak kali. Jadi jika
anda kemudian memutuskan untuk mengubah dari pin 13 ke pin 12, anda hanya perlu
mengubah di satu tempat dalam kode. Lalu, anda dapat menggunakan nama deskriptif
untuk membuat signifikansi dari variabel yang jelas.
Sebuah variabel memiliki keuntungan lain atas nilai seperti nomor. Yang paling
penting, anda dapat mengubah nilai variabel menggunakan task (ditandai dengan tanda
sama dengan). Sebagai contoh:
pin = 12;
Akan mengubah nilai variabel untuk 12. Perhatikan bahwa kita tidak menentukan
jenis variabel: itu tidak diubah oleh tugas. Artinya, nama variabel secara permanen terkait
dengan tipe; hanya perubahan nilainya. Perhatikan bahwa anda harus mendeklarasikan
variabel sebelum anda dapat menetapkan nilai untuk itu. Jika anda termasuk pernyataan
sebelumnya dalam program tanpa pernyataan pertama di atas, anda akan mendapatkan
pesan seperti: "error: pin tidak dinyatakan dalam lingkup ini" .
Ketika anda menetapkan satu variabel yang lain, anda membuat salinan nilai dan
penyimpanannya di lokasi di memori yang berhubungan dengan variabel lain. Mengubah
satu nilai tidak berpengaruh pada yang lain. Sebagai contoh:
int pin = 13;
int pin2 = pin;
pin = 12;
Keterangan: Hanya pin memiliki nilai 12; PIN2 masih bernilai 13.
Hal ini mengacu pada bagian dari program anda di mana variabel dapat digunakan. Hal
ini ditentukan oleh di mana anda menyatakan hal itu. Sebagai contoh, jika anda ingin dapat
menggunakan variabel mana saja dalam program anda, anda dapat menyatakan di bagian atas
kode anda. Ini disebut variabel global. Berikut ini contoh variabel global:
int pin = 13
void setup()
{pinMode(pin, OUTPUT);}
void loop()
{digitalWrite(pin, HIGH);}

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 61
Teknik Mesin Universitas Brawijaya Kelompok 24

2.2.6 Operator
a. Pengertian Operator
Operator adalah simbol-simbol khusus yang digunakan untuk mengoperasikan
suatu nilai data.

b. Jenis – Jenis Operator


1. Operator Aritmatika
Operator aritmatika adalah merupakan suatu operator perhitungan
matematika yang digunakan untuk proses perhitungan matematika. Operator
aritmatika dapat pada tabel berikut ini :

Tabel 2.3
Operator Aritmatika
Operator Fungsi
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa hasil pembagian

2. Operator Perbandingan
Operator perbandingan adalah merupakan suatu operator yang menyatakan
suatu kondisi itu benar atau salah. Operator perbandingan dapat dilihat pada tabel
berikut ini.

Tabel 2.4
Operator Perbandingan
Operator Fungsi
!= Tidak sama dengan
< Lebih kecil
> Lebih besar
>= Lebih besar sama dengan
<= Lebih kecil sama dengan
= Ciri yang sama

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 62
Teknik Mesin Universitas Brawijaya Kelompok 24

3. Operator Logika
Operator logika adalah merupakan suatu operator yang dapat
membandingkan dua ekspresi atau lebih data logika (Boolean) dan
menghasilkan data logika (Boolean) baru. Operator logika dapat dilihat pada
tabel berikut ini.

Tabel 2.5
Operator Logika
Operator Fungsi
! Tidak
&& Dan
|| Atau

4. Operator Penugasan
Operator penugasan adalah merupakan operator yang bertugas untuk
menentukan nilai yang dikeluarkan oleh suatu variabel terhadap kondisi tertentu.
Operator penugasan dapat dilihat pada tabel berikut ini.

Tabel 2.6
Operator Penugasan
Operator Fungsi
= Sama dengan

5. Operator Penggabungan
Operator penggabungan adalah merupakan suatu operator yang dapat
digunakan untuk menggabungkan dua buah string atau lebih. Operator
penggabungan dapat dilihat pada tabel berikut ini.

Tabel 2.7
Operator Penggabungan
Operator Fungsi
+= Penjumlahan
-= Pengurangan
*= Perkalian
/= Pembagian
%= Sisa hasil integer

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 63
Teknik Mesin Universitas Brawijaya Kelompok 24

2.2.7 Kontrol Pemrograman


2.2.7.1 Pengertian Kontrol Pemrograman
Kontrol pemrograman adalah perintah dengan struktur tertentu yang digunakan
untuk mengatur jalannya program yang tujuannya untuk mengatur arah eksekusi
program.

2.2.7.2 Jenis – Jenis Kontrol Pemrograman


a. If
Digunakan bersama dengan operator perbandingan, untuk melakukan tes apakah
kondisi tertentu telah tercapai, seperti sebagai masukan berada di atas jumlah
tertentu. Format untuk melakukan tes adalah:
if (someVariabel > 50)
{ // do something here }
Tes program untuk melihat apakah beberapa variabel lebih besar dari 50. Jika
ya, program ini mengambil tindakan tertentu. Dengan kata lain, jika pernyataan
dalam kurung adalah benar, pernyataan di dalam kurung dijalankan. Jika tidak,
program melompat dari kode. Kurung dapat dihilangkan setelah pernyataan if. Jika
hal ini dilakukan, baris berikutnya (didefinisikan oleh titik koma) menjadi satu-
satunya pernyataan kondisional.
if (x > 120) {digitalWrite(LEDpin, HIGH);}
if (x > 120) {digitalWrite(LEDpin, HIGH);}
if (x > 120) {digitalWrite(LEDpin, HIGH);}
If(x > 120) {digitalWrite(LEDpin1, HIGH);
digitalWrite(LEDpin2, HIGH);} // all are correct
B. If / Else
If / Else memungkinkan kontrol yang lebih besar aliran kode daripada dasar jika
pernyataan, dengan memungkinkan beberapa tes yang harus dikelompokkan
bersama. Sebagai contoh, input analog dapat diuji dan satu tindakan yang diambil
jika input kurang dari 500, dan tindakan lain yang diambil jika input adalah 500 atau
lebih besar. Kode akan terlihat seperti ini:
if(pinFiveInput < 500)
{ // action A }
Else
{ // action B }

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 64
Teknik Mesin Universitas Brawijaya Kelompok 24

Selain dapat melanjutkan perintah lain saat testing, sehingga beberapa tes secara
eksklusif dapat dijalankan pada waktu yang sama. Setiap tes akan melanjutkan ke
yang berikutnya sampai nilai didapatkan true. Ketika nilai true ditemukan, blok yang
terkait kode dijalankan, dan program kemudian melompat ke baris berikut seluruh
jika / lain. Jika ada tes bernilai true, maka default blok kode lain dijalankan, dan
menetapkan perilaku default.
if(pinFiveInput < 500)
{ // do thing A }
Elseif (pinFiveInput >=1000)
{ // do thing B }
Else
{ // do thing C }
Perhatikan bahwa lain halnya jika blok dapat digunakan dengan atau tanpa
mengakhiri blok lain dan sebaliknya. Jumlah yang tidak terbatas seperti yang lain
dapat dilakukan jika cabang diperbolehkan.
C. For Statement
Untuk pernyataan digunakan untuk mengulang blok pernyataan yang diapit oleh
kurung keriting. Counter kenaikan biasanya digunakan untuk peningkatan dan
mengakhiri loop. Untuk pernyataan ini berguna untuk setiap operasi berulang, dan
sering digunakan dalam kombinasi dengan array untuk beroperasi pada koleksi data
/ pin. Ada tiga bagian dalam looping yaitu :
For(initialization;condition;increment)
{//statement(s);}

Gambar 2.4 Bagian dalam looping


Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik
Universitas Brawijaya (2018)

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 65
Teknik Mesin Universitas Brawijaya Kelompok 24

Inisialisasi terjadi pertama kali dan harus tepat. Setiap kali melalui loop, Kondisi
ini diuji; jika itu bernilai true, blok pernyataan dan kenaikan dijalankan, ketika kondisi
diuji lagi. Ketika kondisi menjadi salah, loop berakhir. Contoh :
// Dim an LED using a PWM pin
int PWMpin = 10; // LED in series with 470 ohm resistor
on pin 10 void setup()
{// no setup needed}
void loop()
{ for (int i=0; i <= 255; i++){ analogWrite(PWMpin, i);
delay(10); }}
D. While Loop
Loop akan loop terus menerus, dan tak terhingga, sampai ekspresi dalam kurung,
() menjadi bernilai false. Sesuatu harus mengubah variabel yang diuji, atau loop
sementara tidak akan pernah keluar. Hal ini bisa terjadi dalam kode Anda, seperti
penambahan variabel atau kondisi eksternal seperti pengujian sensor. Syntax :
While(expression)
{ // statement(s) }
Contoh penggunaan while loops dapat dilihat di bawah ini:
Var= 0;
while(var < 200){ // do something repetitive 200 times
var++; }

2.2.7 Contoh Pemrograman Arduino


1. LED Blink
// Fungsi Setup menyala pada saat Arduino menyala
void setup() {
// Mendeklarasikan Pin 13 sebagi
output pinMode(13, OUTPUT);
}
// Fungsi loop terus
berulang void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // Tunggu selama sedetik
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 66
Teknik Mesin Universitas Brawijaya Kelompok 24

delay(1000); // Tunggu selama sedetik


}
2. LCD 16x2
Menampilkan text “Hello World”
Sketch/circuits examples :

Gambar 2.5 Sketch LCD menampilkan Text “Hello World”


Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik
Universitas Brawijaya (2018)

Kodingannya :
// include the library code: #include
<LiquidCrystal.h>
// initialize the library by associating
any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal
lcd(rs, en, d4, d5, d6, d7); void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// Turn off the display:
lcd.noDisplay(); delay(500);

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 67
Teknik Mesin Universitas Brawijaya Kelompok 24

// Turn on the display:


lcd.display(); delay(500);
}

3. Sensor Suhu LM35


Contoh sketch/example circuits

Gambar 2.6 Sketch LCD menampilkan Text “Hello World”


Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik
Universitas Brawijaya (2018)

2.3 Pembuatan Program


2.3.1 Definisi Masalah
Arduino uno adalah perangkat keras yang memiliki mikrokontroller dan
mikroprosessor sehingga dapat mengendalikan beberapa komponen elektronika.
Komponen yang digunakan pada project ini adalah lampu LED (Light Emitting Diode),
buzzer, resistor, kabel male-to-male, dan project board, serta sensor ultrasonic HRC-04.
Project Arduino Uno ini dibuat untuk mempelajari bagaimana cara benda ini bekerja dan
mengetahui bagaimana cara benda ini bekerja dan mengetahui bagaimana membuat suatu
bahasa pemograman yang menghasilkan suatu perintah kerja. Perintah kerja yang
dihasilkan adalah variasi nyala lampu dan frekuensi suara buzzer saat sebuah benda di
dekatkan pada sensor ultrasonic.

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 68
Teknik Mesin Universitas Brawijaya Kelompok 24

2.3.2 Algoritma
2.3.2.1 Algoritma User
1. Mulai
2. Tekan tombol
3. Tampil kata “ HALLO! ;)” pada LCD
4. Tekan Tombol
5. Sensor suhu mulai mendeteksi suhu
6. Apakah suhu dibawah 86°F?
 Ya, kelangkah 7
 Tidak, kelangkah 8
7. LCD menyala menunjukan suhu dibawah 86°F, semua LED mati, dan Buzzer mati.
Lanjut ke langkah no 15
8. Apakah suhu diantara 86°F sampai 95°F?
 Ya, kelangkah 9
 Tidak, kelangkah 10
9. LCD menyala menunjukan suhu diantara 86°F sampai 95°F, 1 buah LED menyala,
3 buah LED mati, dan Buzzer mati. Lanjut ke langkah no 15
10. Apakah suhu diantara 95°F sampai 104°F?
 Ya, kelangkah 11
 Tidak, kelangkah 10
11. LCD menyala menunjukan suhu diantara 95°F sampai 104°F, 2 buah LED
menyala, 2 buah LED mati, dan Buzzer mati. Lanjut ke langkah no 15
12. Apakah suhu diantara 104°F sampai 112°F?
 Ya, kelangkah 13
 Tidak, kelangkah 14
13. LCD menyala menunjukan suhu 104°F sampai 112°F, 3 buah LED menyala, 1
buah LED mati, dan Buzzer mati. Lanjut ke langkah no 15
14. LCD menyala menunjukan suhu diatas 112°F, 4 buah LED menyala, dan Buzzer
berbunnyi. Lanjut ke langkah selanjutnya
15. Apakah sudah selesai mendeteksi suhu?
 Ya, ke langkah no 17
 Tidak, kembali kelangkah no 5
16. Tekan tombol

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 69
Teknik Mesin Universitas Brawijaya Kelompok 24

17. Tampil kalimat “THANKYOU! SEE YOU LATER!” selama 5 detik pada LCD
18. Semua perangkat berhenti bekerja
19. Selesai

2.3.2.2 Algoritma Program


1. Mulai
2. LquidCrystal Lcd(12,11,5,4,3,2);
Cons float baselineTemp = 30.0
Cons int SensorPin = A0
Cons int pinLed1 = 6
Cons int PinLed2 = 7
Cons int PinLed3 = 8
Cons int PinLed4 = 9
Cons int PinLedbuzzer = 10
Cons int buttonPIn = 13
Int Buttonpushcounter = 0
Int Buttonstate = 0
Int Lastbuttonstate = 0
Lcd begin(16,2)
Serial.begin(9600)
pinMode(pinLed1, OUTPUT)
pinMode(pinLed2, OUTPUT)
pinMode(pinLed3, OUTPUT)
pinMode(pinLed4, OUTPUT)
pinMode(pinbUZZER, OUTPUT)
pinMode(buttonPin, INPUT)
analogReference (Internal)
3. Buttonstate = digitalRead (buttonPin)
4. buttonstate != lastbuttonstate
5. Buttonstate == HIGH
6. buttonpushcounter ++
7. buttonstate != lastbuttonstate
8. Buttonpushcounter == 1
9. Lcd.setCursor(5,0) Lcd.print(“HALLO!”) Lcd.set.Cursor(7,1) Lcd.print(“;)” )

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 70
Teknik Mesin Universitas Brawijaya Kelompok 24

10. Buttonpushcounter == 2
11. sensorVal = analogRead(sensorPin)
Serial.print(Sensor Value;)
12. float temperatureC = (sensorVal / 9.31)
13. Serial.print(", degrees C: ")
Serial.print(temperatureC)
14. Float temperaturF = ((temperatureC/5)*9)+32
15. Serial.print(, degrees F : “)
Serial.println(temperatureF)
16. Lcd.setcursor(0,0) lcd.print(“temperature:”) Lcd.setcursor(0,1)
lcd.print(temperatureF) lcd.print(“ “) lcd.set cursor(7,1) lcd.print(“ F”)
17. if(temperatureC < baselineTemp?
If yes, number 18
If no, number 19
18. `digitalWrite(pinLed1,LOW) digitalWrite(pinLed2,LOW)
digitalWrite(pinLed,3,LOW) digitalWrite(pinLed4,LOW)digitalWrite(pinBuzzer,
LOW), number 27
19. else if(temperatureC >= baselineTemp && temperatureC < baselineTemp+5)?
If yes, number 20
If no, number 21
20. digitalWrite(pinLed1,HIGH) digitalWrite(pinLed2,LOW)
digitalWrite(pinLed,3,LOW) digitalWrite(pinLed4,LOW) digitalWrite(pinBuzzer,
LOW), number 27
21. else if(temperatureC >= baselineTemp+5 && temperatureC < baselineTemp+10)?
If yes, number 22
If no, number 23
22. digitalWrite(pinLed1,HIGH) digitalWrite(pinLed2,HIGH)
digitalWrite(pinLed,3,LOW) digitalWrite(pinLed4,LOW) digitalWrite(pinBuzzer,
LOW), number 27
23. else if(temperatureC >= baselineTemp+10 && temperatureC < baselineTemp+15)?
If yes, number 24
If no, number 25

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 71
Teknik Mesin Universitas Brawijaya Kelompok 24

24. digitalWrite(pinLed1,HIGH) digitalWrite(pinLed2,HIGH)


digitalWrite(pinLed,3,HIGH) digitalWrite(pinLed4,LOW) digitalWrite(pinBuzzer,
LOW), number 27
25. else if(temperatureC >= baselineTemp+15)?
If yes, number 18
If no, number 19
26. digitalWrite(pinLed1,HIGH) digitalWrite(pinLed2,HIGH)
digitalWrite(pinLed,3,HIGH) digitalWrite(pinLed4,HIGH) analogWrite(pinBuzze,
1000) analogRead(pinBuzzer == 1000) analogWrite(pinBuzzer,LOW), number 27
27. If buttonpushcounter ==3
If yes, number 28
If no, number 11
28. Lcd.clear
29. Lcd.setCursor(3.0) lcd.print(“THANK YOU!”) lcd.setCursor(1.1) lcd.print(“SEE
YOU LATER!
30. Delay(5000)
31. Lcd.clear
32. digitalWrite(pinLed1,LOW) digitalWrite(pinLed2,LOW)
digitalWrite(pinLed3,LOW) digitalWrite(pinLed4,LOW)
digitalWrite(pinBuzzer,LOW)
33. exit
34. selesai

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 72
Teknik Mesin Universitas Brawijaya Kelompok 24

2.3.3 Flowchart
2.3.3.1 Flowchart User

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 73
Teknik Mesin Universitas Brawijaya Kelompok 24

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 74
Teknik Mesin Universitas Brawijaya Kelompok 24

2.3.3.2 Flowchart Program

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 75
Teknik Mesin Universitas Brawijaya Kelompok 24

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 76
Teknik Mesin Universitas Brawijaya Kelompok 24

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 77
Teknik Mesin Universitas Brawijaya Kelompok 24

2.3.4 Listing Program


#include <LiquidCrystal.h> // Mengontrol akses ke layar LCD

LiquidCrystal lcd(12,11,5,4,3,2); // Menginisialisasi pustaka LCD dengan nomor pin


12,11,5,4,3,2
const float baselineTemp = 30.0; // Menginisialisasi Batas Suhu 30
const int sensorPin = A0; // Menginisialisasi Sensor Pin pada analog pin A0
const int pinLed1 = 6; // Menginisialisasi LED Pin 1 pada digital pin 6
const int pinLed2 = 7; // Menginisialisasi LED Pin 2 pada digital pin 7
const int pinLed3 = 8; // Menginisialisasi LED Pin 3 pada digital pin 8
const int pinLed4 = 9; // Menginisialisasi LED Pin 4 pada digital pin 9
const int pinBuzzer = 10; // Menginisialisasi Buzzer Pin pada digital pin 10
const int buttonPin = 13; // Menginisialisasi Button Pin pada digital pin 13
int buttonpushcounter = 0; // buttonpushcounter untuk jumlah tombol yang di tekan
int buttonstate = 0; // buttonstate untuk keadaan button saat ini
int lastbuttonstate = 0; // lastbuttonstate untuk menahan agar buttonstate tidak tebaca
berkalikali saat ditahan

void setup() { // Menginstalasi Program


lcd.begin(16, 2);
// Variabel LCD dari LiquidCrystal
// 16: jumlah kolom yang dimiliki layar
// 2: jumlah baris yang dimiliki layar
Serial.begin(9600); // Menetapkan kecepatan data dalam bit per detik (baud) untuk
transmisi data seral
pinMode(pinLed1, OUTPUT); // Menginisialisasi LED Pin 1 sebagai output
pinMode(pinLed2, OUTPUT); // Menginisialisasi LED Pin 2 sebagai output
pinMode(pinLed3, OUTPUT); // Menginisialisasi LED Pin 3 sebagai output
pinMode(pinLed4, OUTPUT); // Menginisialisasi LED Pin 4 sebagai output
pinMode(pinBuzzer, OUTPUT); // Menginisialisasi Buzzer Pin sebagai output
pinMode(buttonPin, INPUT); // Menginisialisasi Button Pin sebagai input
pinMode(sensorPin, INPUT); // Menginisialisasi Sensor Pin sebagai input
analogReference(INTERNAL); // Mengkonfigurasi tegangan referensi yang digunakan
adalah tegangan internal (1,1 Volt)

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 78
Teknik Mesin Universitas Brawijaya Kelompok 24

void loop(){
// Menjalankan Program
int buttonstate = digitalRead(buttonPin); // Menginisialisasi buttonstate membaca
Button Pin
if (buttonstate!= lastbuttonstate) { // Jika buttonstate tidak sama dengan lastbuttonstate
if (buttonstate == HIGH){ // Jika keadaan buttonstate saat ini TINGGI
buttonpushcounter ++; // Maka menambah buttonpushcounter
Serial.println (buttonpushcounter); // Menuliskan jumlah buttonpushcounter pada
serial monitor lalu ganti baris
}
}
lastbuttonstate = buttonstate ;// Menginisialisasi lastbuttonstate adalah buttonstate
if (buttonpushcounter == 1){ // Jika buttonpushcounter saat ini adalah 1
lcd.setCursor(5, 0); // Memindahkan kursor LCD ke kolom 5 dan baris 1
lcd.print("HALLO!"); // Menuliskan "HALLO!" pada LCD
lcd.setCursor(7, 1); // Memindahkan kursor LCD ke kolom 7 dan baris 2
lcd.print(";)"); // Menuliskan ";)" pada LCD
}

if (buttonpushcounter == 2){ // Jika buttonpushcounter saat ini adalah 2


float sensorVal = analogRead(sensorPin); // Membaca Sensor Pin sebagai SensorVal
Serial.print("Sensor Value: "); // Menuliskan "Sensor Value: " pada serial monitor
Serial.print(sensorVal); // Menuliskan SensorVal pada serial monitor

float temperatureC = sensorVal / 9.31; // Mengubah SensorVal menjadi Suhu Celcius


Serial.print(", degrees C: "); // Menuliskan ", degrees C: " pada serial monitor
Serial.print(temperatureC); // Menuliskan Suhu Celcius pada serial monitor

float temperatureF = ((temperatureC/5)*9)+32; // Mengubah Suhu Celcius menjadi


Suhu Fahrenheit
Serial.print(", degrees F: "); // Menuliskan ", degrees F: " pada serial monitor
Serial.println(temperatureF); // Menuliskan Suhu Fahrenheit pada serial monitor

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 79
Teknik Mesin Universitas Brawijaya Kelompok 24

lcd.setCursor(0,0); // Memindahkan kursor LCD ke kolom 1 dan baris 1


lcd.print("Temperature:"); // Menuliskan "Temperature:" pada LCD
lcd.setCursor(0,1); // Memindahkan kursor LCD ke kolom 1 dan baris 2
lcd.print(temperatureF); // Menuliskan Suhu Fahrenheit pada LCD
lcd.print(" "); // Menuliskan " " pada LCD
lcd.setCursor(7,1); // Memindahkan kursor LCD ke kolom 7 dan baris 2
lcd.print(" F"); // Menuliskan " F" pada LCD

if(temperatureC < baselineTemp){ // Jika Suhu Celcius lebih kecil dari Batas Suhu
digitalWrite(pinLed1, LOW); // Menyetel Led Pin 1 bernilai 0 atau mati
digitalWrite(pinLed2, LOW); // Menyetel Led Pin 2 bernilai 0 atau mati
digitalWrite(pinLed3, LOW); // Menyetel Led Pin 3 bernilai 0 atau mati
digitalWrite(pinLed4, LOW); // Menyetel Led Pin 4 bernilai 0 atau mati
digitalWrite(pinBuzzer, LOW); // Menyetel Buzzer Pin bernilai 0 atau mati
}

if(temperatureC >= baselineTemp && temperatureC < baselineTemp+5){ // Jika Suhu


Celcius lebih diantara Batas Suhu sampai Batas Suhu +5
digitalWrite(pinLed1, HIGH); // Menyetel Led Pin 1 bernilai 1 atau menyala
digitalWrite(pinLed2, LOW); // Menyetel Led Pin 2 bernilai 0 atau mati
digitalWrite(pinLed3, LOW); // Menyetel Led Pin 3 bernilai 0 atau mati
digitalWrite(pinLed4, LOW); // Menyetel Led Pin 4 bernilai 0 atau mati
digitalWrite(pinBuzzer, LOW); // Menyetel Buzzer Pin bernilai 0 atau mati
}

else if(temperatureC >= baselineTemp+5 && temperatureC < baselineTemp+10){ //


Jika Suhu Celcius lebih diantara Batas Suhu +5 sampai Batas Suhu +10
digitalWrite(pinLed1, HIGH); // Menyetel Led Pin 1 bernilai 1 atau menyala
digitalWrite(pinLed2, HIGH); // Menyetel Led Pin 2 bernilai 1 atau menyala
digitalWrite(pinLed3, LOW); // Menyetel Led Pin 3 bernilai 0 atau mati
digitalWrite(pinLed4, LOW); // Menyetel Led Pin 4 bernilai 0 atau mati
digitalWrite(pinBuzzer, LOW); // Menyetel Buzzer Pin bernilai 0 atau mati
}

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 80
Teknik Mesin Universitas Brawijaya Kelompok 24

if(temperatureC >= baselineTemp+10 && temperatureC < baselineTemp+15){ // Jika


Suhu Celcius lebih diantara Batas Suhu +10 sampai Batas Suhu +15
digitalWrite(pinLed1, HIGH); // Menyetel Led Pin 1 bernilai 1 atau menyala
digitalWrite(pinLed2, HIGH); // Menyetel Led Pin 2 bernilai 1 atau menyala
digitalWrite(pinLed3, HIGH); // Menyetel Led Pin 3 bernilai 1 atau menyala
digitalWrite(pinLed4, LOW); // Menyetel Led Pin 4 bernilai 0 atau mati
digitalWrite(pinBuzzer, LOW); // Menyetel Buzzer Pin bernilai 0 atau mati
}

if(temperatureC >= baselineTemp+15){ // Jika Suhu Celcius lebih besar dari Batas
Suhu +15
digitalWrite(pinLed1, HIGH); // Menyetel Led Pin 1 bernilai 1 atau menyala
digitalWrite(pinLed2, HIGH); // Menyetel Led Pin 2 bernilai 1 atau menyala
digitalWrite(pinLed3, HIGH); // Menyetel Led Pin 3 bernilai 1 atau menyala
digitalWrite(pinLed4, HIGH); // Menyetel Led Pin 4 bernilai 1 atau menyala
analogWrite(pinBuzzer, 1000); // Menyetel Buzzer Pin bernilai 1000 atau menyala
dengan frekuensi 1000Hz

}
}

if (buttonpushcounter == 3){ // Jika buttonpushcounter saat ini adalah 3


digitalWrite(pinLed1, LOW); // Menyetel Led Pin 1 bernilai 0 atau mati
digitalWrite(pinLed2, LOW); // Menyetel Led Pin 2 bernilai 0 atau mati
digitalWrite(pinLed3, LOW); // Menyetel Led Pin 3 bernilai 0 atau mati
digitalWrite(pinLed4, LOW); // Menyetel Led Pin 4 bernilai 0 atau mati
digitalWrite(pinBuzzer, LOW); // Menyetel Buzzer Pin bernilai 0 atau mati
lcd.clear(); // Menghapus tulisan pada LCD
lcd.setCursor(3, 0); // Memindahkan kursor LCD ke kolom 3 dan baris 1
lcd.print("THANK YOU!"); // Menuliskan "THANK YOU!" pada LCD
lcd.setCursor(1, 1); // Memindahkan kursor LCD ke kolom 1 dan baris 2
lcd.print("SEE YOU LATER!"); // Menuliskan "SEE YOU LATER!" pada LCD
delay(5000); // Menahan proses selama 5 detik

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 81
Teknik Mesin Universitas Brawijaya Kelompok 24

lcd.clear(); // Menghapus tulisan pada LCD


exit(0); // Menghentikan Program
}
}

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 82
Teknik Mesin Universitas Brawijaya Kelompok 24

2.3.5 Cara Penggunaan Program


1. Hubungkan Arduino pada sumber daya (USB Port)

Gambar 2.7 Perangkat Hidup

2. Tekan push button untuk menyalakan program dan LCD menunjukan tulisan “
HALLO! ;)”

Gambar 2.8 Tampil Kata “HALLO! :)” Pada LCD

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 83
Teknik Mesin Universitas Brawijaya Kelompok 24

3. Jika suhu < dari 86°F, maka semua lampu dan buzzer tidak menyala

Gambar 2.8 Keadaan Ketika Suhu di bawah 86°F

4. Jika suhu > dari 86°F dan < dari 95°F, maka 1 lampu menyala, 3 lampu dan buzzer
tidak menyala.

Gambar 2.9 keadaan ketika suhu diantara 86°F dan 95°F

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 84
Teknik Mesin Universitas Brawijaya Kelompok 24

5. Jika suhu > dari 95°F dan < dari 104°F, maka 2 lampu menyala, 2 lampu dan buzzer
tidak menyala.

Gambar 2.10 keadaan ketika suhu diantara 95°F dan 104°F

6. Jika suhu > dari 104°F dan < dari 112°F, maka 3 lampu menyala, 1 lampu dan buzzer
tidak menyala

Gambar 2.11 keadaan ketika suhu diantara 104°F dan 112°F

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 85
Teknik Mesin Universitas Brawijaya Kelompok 24

7. Jika suhu > dari 112°F, maka 4 lampu dan buzzer akan menyala.

Gambar 2.12 keadaan ketika suhu diantara 86°F dan 95°F

8. jika tombol di tekan untuk yang ketiga kali (mematikan perangkat)

Gambar 2.13 Keadaan Sesaat Setelah Perangkat di Matikan

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018
Laboratorium Komputer 86
Teknik Mesin Universitas Brawijaya Kelompok 24

2.4 Kesimpulan dan Saran


2.4.1 Kesimpulan
1. Pada saat ini komputer merupakan kebutuhan primer manusia, karena komputer sangat
membantu manusia dalam menyelesaikan berbagai masalah saat ini
2. Bahasa pemrograman pada arduino hampir mirip dengan bahasa pemrograman pada
Visual Basic 2010
3. Pada project 2 ini kami membuat sebuah program sederhana yang nantinya dapat
dikembangkan lebih baik lagi agar dapat menjadi suatu alat yang beramanfaat untuk
orang banyak

2.4.2 Saran
Kami selaku praktikan pemrograman komputer menyadari bahwa laporan yang
kami buat masih banyak kekurangan. Tetapi, isi laporan ini juga mengandung berbagai
ilmu dasar pembelajaran Arduino UNO. Oleh karena itu, harapan kami :
1. Untuk Laboratorium Komputer Teknik Mesin Unversitas Brawijaya selanjutnya
diharapkan menambah dan juga memperbaiki fasilitas yang ada.
2. Untuk asisten praktikum Laboratorium Komputer Teknik Mesin Unversitas
Brawijaya selanjutnya diharapkan dapat meningkatkan control kepada beberapa
praktikan yang mengalami kesulitan, sehingga tidak ada praktikan yang terlambat
dalam proses praktikum.
3. Untuk asisten Laboratorium Komputer Teknik Mesin Unversitas Brawijaya
selanjutnya diharapkan meningkatkan kedisiplinan terhadap setiap praktikanya.
Sehingga, praktikan lebih menghargai Timeline yang sudah ditentukan oleh asisten.
4. Untuk praktikan pemrograman computer tahun depan dan tahun tahun selanjutnya
diharapkan dapat menjadikan laporan ini sebagai acuan dalam penyusunan
laporannya. Sehingga program program yang dibuat menjadi lebih kreatif dan
inovatif.

Arduino
Laporan Praktikum Pemrograman Komputer
Semester Genap Tahun Ajaran 2017/2018

Anda mungkin juga menyukai