Anda di halaman 1dari 15

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 bias 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.
2.2 Dasar Teori
2.2.1 Lingkungan Arduino Uno

Gambar 2.1 Papan Arduino


Sumber : Dokumentasi Pribadi (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.
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.
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 Uni. 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 4.2 LCD 16x2


Sumber : Dokumentasi Pribadi (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 :
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 4.3 Sensor Suhu (LM35)


Sumber : Dokumentasi Pribadi (2018)

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.2 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.1
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
Sumber : Dokumentasi Pribadi (2018)
2.2.3 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);
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);}
2.2.4 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.2
Operator Aritmatika
Operator Fungsi
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Sisa hasil pembagian
Sumber : Dokumentasi pribadi (2018)

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.3
Operator Perbandingan
Operator Fungsi
!= Tidak sama dengan
< Lebih kecil
> Lebih besar
>= Lebih besar sama dengan
<= Lebih kecil sama dengan
= Ciri yang sama
Sumber : Dokumentasi pribadi (2018)

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.4
Operator Logika
Operator Fungsi
! Tidak
&& Dan
|| Atau
Sumber : Dokumentasi pribadi (2018)

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.5
Operator Penugasan
Operator Fungsi
= Sama dengan
Sumber : Dokumentasi pribadi (2018)

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.6
Operator Penggabungan
Operator Fungsi
+= Penjumlahan
-= Pengurangan
*= Perkalian
/= Pembagian
%= Sisa hasil integer
Sumber : Dokumentasi pribadi (2018)
2.2.5 Kontrol Pemrograman
2.2.5.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.5.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 }
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.2 Bagian dalam looping


Sumber : Dokumentasi pribadi (2018)

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.6 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
delay(1000); // Tunggu selama sedetik
}

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

Gambar 4.4 Sketch LCD menampilkan Text “Hello World”


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);
/ Turn on the display: lcd.display();
delay(500);
}

3. Sensor Suhu LM35


Contoh sketch/example circuits

Gambar 4.5 Sketch Sensor Suhu LM35

Anda mungkin juga menyukai