tugas akhir final
TRANSCRIPT
TUGAS AKHIR
Perancangan Sistem Pengukur Suhu Menggunakan Arduino
dan C#.Net
Diajukan guna melengkapi sebagian syarat
dalam mencapai gelar Sarjana Strata Satu (S1)
Disusun Oleh :
Nama : Lucky Yuditia Putra
NIM : 41411110052
Program Studi : Teknik Elektro
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS MERCU BUANA
JAKARTA
2013
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini,
Nama :Lucky Yuditia Putra
N.I.M :41411110052
Jurusan :Teknik Elektro
Fakultas :Teknik
Judul Skripsi : Perancangan Sistem Pengukur
Suhu Menggunakan Arduino dan C#.Net
Dengan ini menyatakan bahwa hasil penulisan
Skripsi yang telah saya buat ini merupakan hasil karya
sendiri dan benar keasliannya. Apabila ternyata di
kemudian hari penulisan Skripsi ini merupakan hasil
plagiat atau penjiplakan terhadap karya orang lain,
maka saya bersedia mempertanggungjawabkan sekaligus
ii
bersedia menerima sanksi berdasarkan aturan tata tertib
di Universitas Mercu Buana
Demikian, pernyataan ini saya buat dalam keadaan
sadar dan tidak dipaksakan
Penulis,
Lucky Yuditia
Putra
LEMBAR PENGESAHAN
Perancangan Sistem Pengukur Suhu Menggunakan Arduino
dan C#.Net
Disusun Oleh :
Nama : Lucky Yuditia Putra
NIM : 41411110052
Jurusan : Teknik Elektro
iii
Pembimbing,
[ Ir. Yudhi Gunardi, MT]
Mengetahui,
Koordinator Tugas Akhir / Ketua Program Studi
[ Ir. Yudhi Gunardi, MT ]
ABSTRAK
Perancangan Sistem Pengukur Suhu Menggunakan Arduino
dan C#.Net
iv
Sebagai makhluk hidup pada hakikatnya membutuhkansuhu udara yang tepat untuk memenuhi kebutuhanhidupnya. Agar lebih efisien maka perlu dilakukannyaproses pengukuran. Salah satu proses pengukur suhuruangan yang banyak digunakan baik untuk memenuhikebutuhan di industri maupun di rumah tangga pada saatini adalah sistem pengukur suhu dan pendingin ruangansecara otomatis.
Sistem pengukur suhu dan otomatisasi pendinginruangan merupakan salah satu sistem yang sangatbermanfaat bagi kehidupan manusia. Dengan sistem inidiharapkan dapat mempermudah mengetahui suhu ruangan.LM35 merupakan sensor yang digunakan dalam tugas akhirini sebagai sensor yang sangat sensitif terhadaptemperatur. Hasil sensor tersebut di olah Arduino Unoyang kemudian ditampilkan dalam aplikasi desktop denganmenggunakan C# .Net dan disimpan kedalam basis data.
Setelah dilakukannya proses pengujian, sistempengukur suhu ruangan khususnya yang dibuat pada tugasakhir ini dapat mengukur suhu ruangan dengan nilaitoleransi data tak tersimpan ±4kali dalam satu menit.Ketika suhu melebihi suhu yang ditetapkan, maka kipasakan berputar secara otomatis sebagai pendinginruangan. Sistem ini bekerja setiap detik sertamenampilkan hasil pada aplikasi desktop dan menyimpan kedalam basis data sebagai tempat penyimpanan terakhiryang dikemudian hari dapat dikembangkan atau di ambilsebuah keputusan.
v
Kata kunci : Pengukuran, Suhu, Ruangan, Arduino, Uno,LM35, Kipas, C# .Net, Pendingin, Otomatis,Otomatisasi
KATA PENGANTAR
Puji Syukur Alhamdullilah, penulis panjatkan
kehadirat Allah SWT, yang telah melimpahkan rahmat dan
karunia-Nya, sehingga pada akhirnya penulis dapat
menyelesaikan tugas akhir ini dengan baik. Dimana tugas
akhir ini penulis sajikan dalam bentuk paper sederhana.
Adapun judul tugas akhir yang penulis buat sebagai
beikut “Perancangan Sistem Pengukur Suhu Menggunakan
Arduino dan C#.Net”.
Tujuan dari penulisan tugas akhir ini yaitu guna
mendapatkan gelar sarjana strata satu pada Universitas
Mercu Buana. Sebagai bahan penulisan diambil
berdasarkan hasil penelitian atau eksperimen, observasi
dan beberapa literatur yang mendukung penulisan tugas
akhir ini. Penulis menyadari bahwa tanpa bimbingan dan
dorongan dari semua pihak, maka penulisan tugas akhir
ini tidak akan berjalan dengan lancar. Oleh karena itu
vi
pada kali ini, penulis menyampaikan ucapan terima kasih
kepada:
1. Rektor Universitas Mercu Buana
2. Bapak Ketua Program Studi Teknik Elektro
3. Bapak Koordinator Tugas Akhir
4. Bapak Ir. Yudhi Gunardi, MT selaku pembimbing
5. Orang tua yang memberikan dukungan penuh
6. Istri tercinta Ratih Yulia Hayuningtyas
Dan semua pihak yang banyak membantu penulisan
tugas akhir ini yang tidak dapat disebutkan. Penulis
menyadari bahwa penulisan tugas akhir ini masih jauh
sekali dari sempurna, untuk itu penulis mohon kritik
dan saran demi membangun kesempurnaan penulisan ini.
Akhir kata semoga penulisan tugas akhir ini dapat
bermanfaat dan berguna bagi para pembaca pada umumnya.
Jakarta,
September 2013
vii
Lucky
Yuditia Putra
DAFTAR ISI
LEMBAR PERNYATAAN....................................ii
LEMBAR PENGESAHAN...................................iii
viii
ABSTRAK ...........................................iv
KATA PENGANTAR........................................v
DAFTAR ISI.............................................
vii
DAFTAR GAMBAR.........................................x
DAFTAR TABEL........................................xii
BAB I PENDAHULUAN ..................................1
1.1 Latar Belakang Masalah.........................1
1.2 Rumusan Masalah................................2
1.3 Pembatasan Masalah.............................2
1.4 Tujuan Penulisan...............................3
1.5 Metodologi Penelitian..........................3
1.6 Sistematika Penulisan..........................4
BAB II LANDASAN TEORI ..............................5
2.1. Mikrokontroler.................................5
2.2. Arduino........................................7
2.2.1.Pengenalan..................................7
2.2.2.Sejarah Arduino.............................8
2.2.3.Hardware....................................9
2.2.4.Software Arduino...........................10
2.2.5.Melakukan Penginstalan Arduino Ke Komputer. 13
ix
2.2.6.Melakukan Penginstalan Driver Untuk Windows 13
2.2.7.Identifikasi Port Pada Windows...............14
2.2.8.Melakukan Pengujian Pada Papan Arduino.....16
2.2.9.Melakukan Pengujian Rangkaian Pada Papan
Percobaan........................................17
2.2.10...........................Masalah Dengan IDE
18
2.2.11......................Troubleshooting Arduino
19
2.3. Kipas/ Motor DC...............................21
2.4. Sensor suhu IC LM 35..........................22
2.4.1.Karakteristik Sensor LM35..................23
2.4.2.Prinsip Kerja LM35.........................24
2.4.3.Kelebihan dan Kelemahan IC Temperature LM35 25
2.5. Protoboard....................................25
2.5.1.Spesifikasi Protoboard.....................26
2.6. Transistor....................................29
2.7. Microsoft Visual C# ( C Sharp) .Net...........31
2.7.1.Sejarah....................................32
2.7.2.Tujuan Desain..............................34
BAB III PERANCANGAN ALAT ..........................36
x
3.1. Alat dan Bahan................................36
3.2. Rancangan Sistem Pengukur Suhu dan Pendingin
Ruangan............................................36
3.2.1.Perancangan Aplikasi.......................37
3.3. Perancangan Miniatur Ruangan..................38
3.4. Rangkaian Arduino dengan Sensor LM 35.........39
3.5. Rangkaian Arduino dengan Kipas DC 12V.........40
3.6. Diagram Alir Sistem Pengukur Suhu dan Pendingin40
3.7. Perancangan Aplikasi Desktop menggunakan C# .Net 42
3.7.1.Perancangan Main Form......................42
3.7.2.Perancangan form penampil data..............43
BAB IV PENGUJIAN ALAT .............................45
4.1. Pengujian Hardware............................45
4.1.1.Pengujian Rangkaian Arduino dengan LM35... .45
4.1.2.Pengujian Rangkaian dengan Kipas...........46
4.2. Pengujian Software............................48
4.2.1.Menginstal Aplikasi Desktop................48
4.2.2.Menampilkan aplikasi desktop.................50
4.3. Hasil Pengukuran Suhu dan Interaksi Aplikasi
dengan Arduino.....................................51
4.3.1.Menampilkan Suhu yang dipanaskan...........52
xi
4.3.2.Menampilkan suhu yang didinginkan..........52
4.3.3.Menampilkan hasil pengukuran suhu yang telah
disimpan.........................................53
4.3.4.Toleransi Hasil Pengukuran.................54
4.3.5.Perbandingan dengan alat Termometer lain. . .56
BAB V KESIMPULAN ..................................58
5.1. Kesimpulan....................................58
5.2. Saran.........................................59
DAFTAR PUSTAKA
LAMPIRAN
DAFTAR GAMBAR
Gambar 2.1........................Bagian Mikrokontroler
5
Gambar 2.2.............................Hardware Arduino
9
xii
Gambar 2.3.....Device Manager pada Windows menampilkan
semua terminal serial..................................
15
Gambar 2.4.....................................Kipas DC
21
Gambar 2.5......................................IC LM35
22
Gambar 2.6............Grafik akurasi LM35 terhadap Suhu
23
Gambar 2.7..............................Mini Protoboard
26
Gambar 2.8.............................Jalur Breadboard
28
Gambar 2.9...................................Transistor
29
Gambar 2.10..........Diagram rangkaian dari transistor
Darlington...........................................30
Gambar 2.11....................Microsoft Visual C# .Net
32
Gambar 3.1..........................Diagram Blok Sistem
37
xiii
Gambar 3.2.............................Miniatur ruangan
39
Gambar 3.3..................Rangkaian Arduino dan LM 35
39
Gambar 3.4.......Rangkaian Arduino dengan Kipas / Motor
40
Gambar 3.5.............Diagram alir sistem kontrol suhu
41
Gambar 3.6...................Form utama aplikasi desktop
43
Gambar 3.7...............Perancangan form penampil data
44
Gambar 4.1.Kipas tidak berputar ketika suhu sebenarnya
lebih kecil dari suhu variable............................................................
47
Gambar 4.2. Kipas menyala ketika suhu variable lebih kecil
dari suhu sebenarnya...................................
47
Gambar 4.3....................Software aplikasi desktop
48
xiv
Gambar 4.4.............Instalasi Aplikasi Pengukur Suhu
48
Gambar 4.5............Lokasi penyimpanan file instalasi
49
Gambar 4.6................Konfirmasi instalasi aplikasi
49
Gambar 4.7...................Instalasi Aplikasi selesai
50
Gambar 4.8....................Shortcut aplikasi desktop
50
Gambar 4.9................Tampilan awal aplikasi desktop
51
Gambar 4.10...Interaksi Arduino dengan aplikasi desktop
51
Gambar 4.11. Tampilan aplikasi desktop ketika sensor suhu
dipanaskan...........................................52
Gambar 4.12. Tampilan aplikasi desktop ketika sensor suhu
didinginkan..........................................53
Gambar 4.13..Informasi suhu yang disimpan di basis data
53
xv
DAFTAR TABEL
Tabel 3.1................................Alat dan Bahan
36
Tabel 4.1.........Tabel hasil pengujian pengukuran suhu
46
Tabel 4.2.........Hasil pengukuran suhu waktu per detik
54
Tabel 4.3..........Hasil perbandingan dengan termometer
56
xvi
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Di jaman yang semakin maju ini, terlahir banyak
solusi yang dapat memecahkan permasalahan manusia.
Permasalahan yang timbul akibat keterbatasan manusia
ataupun dari faktor lain, kini sedikit demi sedikit
sudah dapat diatasi. Salah satu solusi yang dapat
memecahkan permasalan manusia yaitu dengan menggunakan
sistem kendali berbasis komputer. Dengan menggunakan
sistem kendali berbasis komputer, diharapkan dapat
membantu dan meringankan pekerjaan manusia serta
menjadi solusi untuk setiap permasalahan manusia.
Mikrokontroler merupakan suatu pengendali
berukuran mikro, yang dapat digunakan bersamaan dengan
1
alat elektronik lainnya. Keunggulan yang dimiliki
mikrokontroler yaitu sebagai suatu sistem kendali.
Pemakaian mikrokontroler umumnya digunakan dalam
embedded systems yaitu sub-sistem mikrokomputer khusus
sebagai bagian dari suatu sistem yang pengontrolnya
yaitu mikrokontroler dihubungkan dalam suatu mesin.
Ciri khas dari embedded systems adalah tidak melakukan
transformasi data tetapi langsung berinteraksi dengan
perangkat luar seperti sensor dan aktuator.
3
Untuk membuktikan bahwa mikrokontroler dapat
dirancang untuk suatu sistem kendali berbasis komputer
dan melakukan suatu pekerjaan manusia yang khususnya
pada tugas akhir ini adalah digunakan sebagai suatu
sistem untuk mengukur suhu ruangan. Maka penulis
membuat laporan tugas akhir ini dengan judul
“Perancangan Sistem Pengukur Suhu Menggunakan Arduino
dan C#.Net”.
1.2 Rumusan Masalah
Berdasarkan dari latar belakang tersebut maka
beberapa permasalahan yang akan muncul dalam
mengerjakan tugas akhir ini antara lain :
1. Prinsip kerja dari mikrokontroler khususnya pada
mikrokontroler yang akan digunakan yaitu Arduino
Uno.
2. Pembuatan program mikrokontroler yang akan dibuat
agar sesuai dengan yang diinginkan.
3. Komunikasi mikrokontroler dengan komponen lainnya
seperti Sensor Suhu, Kipas DC serta aplikasi desktop
menggunakan C# .Net.
4
1.3 Pembatasan Masalah
Dikarenakan luasnya permasalahan di dalam
pembahasan dan agar tidak terjadi kesalahpahaman maksud
dari apa yang ada di dalam penulisan tugas akhir ini
maka dibutuhkannya pembatasan masalah tersebut antara
lain :
1. Membahas mengenai perancangan program
mikrokontroler khususnya Arduino Uno yang
diaplikasikan sebagai sistem pengukur suhu ruangan.
2. Membahas komponen yang digunakan dalam membuat
tugas akhir ini.
3. Membahas mengenai rangkaian yang digunakan dalam
membuat tugas akhir ini.
1.4 Tujuan Penulisan
Berikut ini merupakan beberapa tujuan dari
penulisan tugas akhir ini antara lain :
1. Mengetahui cara mengomunikasikan antara
mikrokontroler khususnya Arduino Uno dengan Sensor
5
Suhu, Kipas DC dan aplikasi desktop menggunakan
C# .Net.
1.5 Metodologi Penelitian
Untuk menyelesaikan penulisan tugas akhir ini
penulis melakukan beberapa tahap metode penelitian
sebagai berikut :
1. Studi Pustaka
Pada metode ini penulis mencari bahan penulisan
tugas akhir ini yang diperoleh dari buku atau
jurnal yang khususnya mengenai pembuatan tugas
akhir ini.
2. Eksperimen
Dengan metodologi eksperimen penulis membuat alat
pengukur suhu ruangan, dimana semua data diambil
berdasarkan hasil baik dari proses perancangan,
proses pemrogaman sampai proses pengujian alat.
1.6 Sistematika Penulisan
Sistematika penulisan pada tugas akhir ini dibagi
atas beberapa bab dan masing-masing bab terbagi menjadi
6
beberapa sub-bab. Setiap bab memberikan gambaran secara
keseluruhan mengenai isi dari tugas akhir ini.
BAB I PENDAHULUAN
Pada bab ini menguraikan tentang latar
belakang, rumusan masalah, batasan masalah,
tujuan penelitian, metode penelitian, dan
sistematika penulisan.
BAB II LANDASAN TEORI
Dalam bab ini menjelaskan tentang teori yang
berhubungan dengan sistem atau alat yang
dirancang diantaranya yaitu, teori pengertian
tentang mikrokontroler, arduino, sensor suhu
LM35, kipas dc, transistor, protoboard dan
tentang software Microsoft Visual C#.
BAB III PERANCANGAN ALAT
Dalam bab ini dibahas tentang perancangan
alat dari sistem pengukur suhu dan
otomatisasi pendingin ruangan.
BAB IV PENGUJIAN ALAT
Bagian bab ini menjelaskan tentang pengujian
alat yang digunakan dalam tugas akhir ini dan
7
menjelaskan hasil pengukuran dari mulai input
dan output yang dihasilkan dari alat yang
dirancang.
BAB V KESIMPULAN DAN SARAN
Dalam bab ini menjelaskan kesimpulan dari
tugas akhir ini dan memberikan saran dari
alat yang dibuat.
BAB II
LANDASAN TEORI
2.1. Mikrokontroler
Mikrokontroler merupakan suatu IC yang di dalamnya
berisi CPU, ROM, RAM, dan I/O. Dengan adanya CPU
tersebut maka mikrokontroler dapat melakukan proses
berfikir berdasarkan program yang telah diberikan
kepadanya. Mikrokontroler banyak terdapat pada
peralatan elektronik yang serba otomatis, mesin fax,
dan peralatan elektronik lainnya. Mikrokontroler
dapat disebut pula sebagai komputer yang berukuran
kecil yang berdaya rendah sehingga sebuah baterai
dapat memberikan daya. Mikrokontroler terdiri dari
beberapa
bagian seperti yang terlihat pada gambar di bawah ini :
8
10
Pada Gambar 2.1. di atas tampak suatu
mikrokontroler standar yang tersusun atas komponen-
komponen sebagai berikut :
A. Central Processing Unit (CPU)
CPU merupakan bagian utama dalam suatu
mikrokontroler. CPU pada mikrokontroler ada yang
berukuran 8 bit ada pula yang berukuran 16 bit. CPU ini
akan membaca program yang tersimpan di dalam ROM dan
melaksanakannya.
B. Read Only Memory (ROM)
ROM merupakan suatu memori (alat untuk
mengingat) yang sifatnya hanya dibaca saja. Dengan
demikian ROM tidak dapat ditulisi. Dalam dunia
mikrokontroler ROM digunakan untuk menyimpan program
bagi mikrokontroler tersebut. Program tersimpan dalm
format biner (‘0’ atau ‘1’). Susunan bilangan biner
tersebut bila telah terbaca oleh mikrokontroler akan
memiliki arti tersendiri.
C. Random Acces Memory (RAM)
Berbeda dengan ROM, RAM adalah jenis memori
selain dapat dibaca juga dapat ditulis berulang kali.
11
Tentunya dalam pemakaian mikrokontroler ada semacam
data yang bisa berubah pada saat mikrokontroler
tersebut bekerja. Perubahan data tersebut tentunya
juga akan tersimpan ke dalam memori. Isi pada RAM akan
hilang jika catu daya listrik hilang.
D. Input / Output (I/O)
Untuk berkomunikasi dengan dunia luar, maka
mikrokontroler menggunakan terminal I/O (port I/O),
yang digunakan untuk masukan atau keluaran.
E. Komponen lainnya
Beberapa mikrokontroler memiliki
timer/counter, ADC (Analog to Digital Converter), dan komponen
lainnya. Pemilihan komponen tambahan yang sesuai
dengan tugas mikrokontr oler akan sangat membantu
perancangan sehingga dapat mempertahankan ukuran yang
kecil. Apabila komponen komponen tersebut belum ada
pada suatu mikrokontroler, umumnya komponen tersebut
masih dapat ditambahkan pada sistem mikrokontroler
melalui port-portnya.
12
2.2. Arduino
2.2.1. Pengenalan
Arduino didefinisikan sebagai sebuah platform
elektronik yang open source, berbasis pada software dan
hardware yang fleksibel dan mudah digunakan, yang
ditujukan untuk seniman, desainer, hobbies dan setiap
orang yang tertarik dalam membuat objek atau lingkungan
yang interaktif (Artanto, 2012:1).
Arduino sebagai sebuah platform komputasi fisik
(Physical Computing) yang open source pada board input ouput
sederhana, yang dimaksud dengan platform komputasi fisik
disini adalah sebuah sistem fisik hyang interaktif
dengan penggunaan software dan hardware yang dapat
mendeteksi dan merespons situasi dan kondisi.
Menurut Artanto (2012:2), kelebihan arduino dari
platform hardware mikrokontroler lain adalah:
1. IDE Arduino merupakan multiplatform, yang dapat
dijalankan di berbagai sistem operasi, seperti
Windows, Macintosh dan Linux.
13
2. IDE Arduino dibuat berdasarkan pada IDE Processing,
yang sederhana sehingga mudah digunakan.
3. Pemrograman arduino menggunakan kabel yang
terhubung dengan port USB, bukan port serial. Fitur
ini berguna karena banyak komputer yang sekarang
ini tidak memiliki port serial.
4. Arduino adalah hardware dan software open source
pembaca bisa mendownload software dan gambar
rangkaian arduino tanpa harus membayar ke pembuat
arduino.
5. Biaya hardware cukup murah, sehingga tidak terlalu
menakutkan untuk membuat kesalahan.
6. Proyek arduino ini dikembangkan dalam lingkungan
pendidikan sehingga bagi pemula akan lebih cepat
dan mudah mempelajarinya.
7. Memiliki begitu banyak pengguna dan komunitas di
internet dapat membantu setiap kesulitan yang
dihadapi.
14
2.2.2. Sejarah Arduino
Proyek Arduino dimulai pertama kali di Ovre, Italy
pada tahun 2005. Tujuan proyek ini awalnya untuk
membuat peralatan control interaktif dan modul
pembelajaran bagi siswa yang lebih murah dibandingkan
dengan prototype yang lain. Pada tahun 2010 telah
terjual dari 120 unit Arduino. Arduino yang berbasis
open source melibatkan tim pengembang. Pendiri arduino
itu Massimo Banzi dan David Cuartielles, awalnya mereka
memberi nama proyek itu dengan sebutan arduino dari
ivrea tetapi seturut perkembangan zaman nama proyek itu
diubah menjadi Arduino.
Arduino dikembangkan dari thesis hernando Barragan
di desain interaksi institute Ivrea. Arduino dapat
menerima masukan dari berbagai macam sensor dan juga
dapat mengontrol lampu, motor dan aktuator lainnya.
Mikrokontroler pada board arduino di program dengan
menggunkan bahasa pemrograman arduino (based on wiring)
dan IDE arduino (based on processing). Proyek arduino
dapat berjalan sendiri atau juga bisa berkomunikasi
dengan software yang berjalan pada komputer.
15
2.2.3. Hardware
Papan Arduino merupakan papan mikrokontroler yang
berukuran kecil atau dapat diartikan juga dengan suatu
rangkaian berukuran kecil yang didalamnya terdapat
komputer berbentuk suatu chip yang kecil.
Pada Gambar 2.2. dapat dilihat sebuah papan
Arduino dengan beberapa bagian komponen didalamnya.
Gambar 2.2. Hardware Arduino
Pada hardware arduino terdiri dari 20 pin yang
meliputi:
a. 14 pin IO Digital (pin 0–13)
Sejumlah pin digital dengan nomor 0–13 yang dapat
dijadikan input atau output yang diatur dengan cara
membuat program IDE.
16
b. 6 pin Input Analog (pin 0–5)
Sejumlah pin analog bernomor 0–5 yang dapat
digunakan untuk membaca nilai input yang memiliki
nilai analog dan mengubahnya ke dalam angka antara 0
dan 1023.
c. 6 pin Output Analog (pin 3, 5, 6, 9, 10 dan 11)
Sejumlah pin yang sebenarnya merupakan pin digital
tetapi sejumlah pin tersebut dapat diprogram kembali
menjadi pin output analog dengan cara membuat
programnya pada IDE.
Papan Arduino Uno dapat mengambil daya dari USB
port pada komputer dengan menggunakan USB charger atau
dapat pula mengambil daya dengan menggunakan suatu AC
adapter dengan tegangan 9 volt. Jika tidak terdapat
power supply yang melalui AC adapter, maka papan
Arduino akan mengambil daya dari USB port. Tetapi
apabila diberikan daya melalui AC adapter secara
bersamaan dengan USB port maka papan Arduino akan
mengambil daya melalui AC adapter secara otomatis.
17
2.2.4. Software Arduino
Software arduino yang digunakan adalah driver dan
IDE, walaupun masih ada beberapa software lain yang
sangat berguna selama pengembangan arduino. IDE atau
Integrated Development Environment suatu program khusus untuk
suatu komputer agar dapat membuat suatu rancangan atau
sketsa program untuk papan Arduino. IDE arduino
merupakan software yang sangat canggih ditulis dengan
menggunakan java. IDE arduino terdiri dari:
1. Editor Program
Sebuah window yang memungkinkan pengguna menulis dan
mengedit program dalam bahasa processing
2. Compiler
Sebuah modul yang mengubah kode program menjadi kode
biner bagaimanapun sebuah mikrokontroler tidak akan
bisa memahami bahasa processing.
3. Uploader
Sebuah modul yang memuat kode biner dari komputer ke
dalam memory di dalam papan arduino
18
Dalam bahasa pemrograman arduino ada tiga bagian
utama yaitu struktur, variabel dan fungsi (Artanto,
2012:27):
1. Struktur Program Arduino
a.Kerangka Program
Kerangka program arduino sangat sederhana, yaitu
terdiri atas dua blok. Blok pertama adalah void
setup() dan blok kedua adalah void loop.
1). Blok Void setup ()
Berisi kode program yang hanya dijalankan
sekali sesaat setelah arduino dihidupkan atau
di-reset. Merupakan bagian persiapan atau
instalasi program.
2). Blok void loop()
Berisi kode program yang akan dijalankan terus
menerus. Merupakan tempat untuk program utama.
b. Sintaks Program
Baik blok void setup loop () maupun blok function
harus diberi tanda kurung kurawal buka “{“ sebagai
19
tanda awal program di blok itu dan kurung kurawal
tutup “}” sebagai tanda akhir program.
2. Variabel
Sebuah program secara garis besar dapat
didefinisikan sebagai instruksi untuk memindahkan angka
dengan cara yang cerdas dengan menggunakan sebuah
varibel.
3. Fungsi
Pada bagian ini meliputi fungsi input output
digital, input output analog, advanced I/O, fungsi
waktu, fungsi matematika serta fungsi komunikasi.
Pada proses Uploader dimana pada proses ini
mengubah bahasa pemrograman yang nantinya dicompile
oleh avr-gcc (avr-gcc compiler) yang hasilnya akan
disimpan kedalam papan arduino.
Avr-gcc compiler merupakan suatu bagian penting
untuk software bersifat open source. Dengan adanya avr-
gcc compiler, maka akan membuat bahasa pemrogaman dapat
dimengerti oleh mikrokontroler. Proses terakhir ini
sangat penting, karena dengan adanya proses ini maka
20
akan membuat proses pemrogaman mikrokontroler menjadi
sangat mudah.
Berikut ini merupakan gambaran siklus yang terjadi
dalam melakukan pemrogaman Arduino:
1. Koneksikan papan Arduino dengan komputer melalui
USB port.
2. Tuliskan sketsa rancangan suatu program yang akan
dimasukkan ke dalam papan Arduino.
3. Upload sketsa program ke dalam papan Arduino melalui
kabel USB dan kemudian tunggu beberapa saat untuk
melakukan restart pada papan Arduino.
4. Papan Arduino akan mengeksekusi rancangan sketsa
program yang telah dibuat dan di-upload ke papan
Arduino.
2.2.5. Melakukan Penginstalan Arduino Ke Komputer
Untuk melakukan pemrogaman pada papan Arduino,
disarankan untuk men-download IDE Arduino terlebih
dahulu yang dapat diperoleh dari situs:
www.arduino.cc/en/Main/Software. Dan kemudian pilih
21
versi yang tepat untuk sistem operasi komputer yang
digunakan.
Setelah melakukan download, lakukanlah proses
uncompress dengan cara melakukan double-click pada file
tersebut. Proses ini secara otomatis akan membuat suatu
folder yang bernama arduino-[version], contohnya seperti
arduino-0012.
Setelah melakukan penginstalan IDE Arduino pada
komputer, tahap selanjutnya adalah harus melakukan
penginstalan untuk driver. Fungsi utama penginstalan
driver ini adalah agar komputer dapat melakukan
komunikasi dengan papan Arduino melalui USB port.
2.2.6. Melakukan Penginstalan Driver Untuk Windows
Koneksikan papan Arduino dengan komputer dan
ketika Found New Hardware Wizard pada layar muncul, Windows
secara otomatis akan mencoba menemukan terlebih dahulu
driver tersebut pada halaman Windows Update.
Windows XP akan meminta untuk memeriksa Windows
Update, dan jika tidak ingin menggunakan Windows Update
pilih menu “No,not at this time” dan tekan tombol Next. Dan
22
pada layar selanjutnya, pilih menu “Install from a list or
specific location” dan tekan tombol Next.
Periksa layar berjudul “Include this location in the search”
dan tekan tombol Browse. Kemudian pilih folder dimana
Arduino sudah terinstal dan pilih folder Drivers\FTDIUSB
Drivers untuk menetukan lokasinya dan tekan tombol OK dan
Next pada layar tesebut.
Windows Vista akan berusaha menemukan driver tersebut
pada Windows Update, dan jika terjadi kegagalan dalam
melakukan pencarian driver, maka lakukan pencarian secara
manual pada folder Drivers\FTDIUSB Drivers.
Proses pencarian driver secara manual memiliki dua
prosedur yang harus dilewati, yang pertama komputer
harus menginstal driver low-level terlebih dahulu dan yang
kedua adalah menginstal bagian kode yang membuat papan
Arduino terlihat seperti suatu serial port untuk komputer.
Apabila driver telah terinstal, maka Arduino IDE
dapat diaktifkan dan papan Arduino dapat digunakan pada
komputer. Untuk tahap selanjutnya adalah harus selalu
mengingat serial port komputer yang telah ditandai untuk
papan Arduino.
23
2.2.7. Identifikasi Port Pada Windows
Pada Windows, proses untuk melakukan identifikasi
port sedikit lebih rumit dibandingkan dengan Machintosh.
Pertama, buka layar Device Manager dengan cara memilih
menu Start, lakukan right-clicking pada Computer (Vista) atau My
Computer (XP), dan pilih Properties.
Pada Windows XP, pilih Hardware dan kemudian pilih
Device Manager. Sedangkan untuk Windows Vista, pilih Device
Manager yang telah ada didalam daftar pada sebelah kiri
layar.
Cari Arduino device yang berada dibawah daftar “Port
(COM & LPT)”. Arduino akan muncul sebagai suatu USB serial
port dan akan memiliki suatu nama seperti COM3, hal ini
dapat dilihat pada Gambar 2.3.
24
Gambar 2.3. Device Manager pada Windows menampilkan semua
terminal serial.
2.2.8. Melakukan Pengujian Pada Papan Arduino
Kita ambil contoh kasus yang sederhana yaitu
mengalami kegagalan pada saat melakukan percobaan
“mengedipkan LED”. Mari cari tahu apa yang harus
dilakukan.
25
Sebelum menyalahkan percobaan yang dibuat, kita
harus memastikan beberapa komponen sudah berada di
dalam urutan yang benar. Sama halnya dengan seorang
pilot suatu maskapai penerbangan yang menggunakan
beberapa daftar pemeriksaan sebelum melakukan
penerbangan, untuk memastikan bahwa pesawat dalam
kondisi yang baik.
Koneksikan papan Arduino ke USB port yang ada pada
komputer dengan menggunakan kabel USB.
1. Pastikan komputer dalam kondisis menyala (mungkin
kedengarannya konyol tapi hal ini pernah terjadi).
Jika lampu PWR yang berwarna hijau pada papan
Arduino menyala, berarti menandakan papan Arduino
telah disuplai daya oleh komputer. Jika LED terlihat
sangat redup, berarti ada suatu kesalahan dengan
daya yang disuplai: coba ganti kabel USB dan lakukan
pemeriksaan antara USB port pada komputer dan konektor
USB pada papan Arduino. Jika masih mengalami
kegagalan, ganti USB port yang lainnya pada komputer
tersebut atau gunakan komputer yang lain.
26
2. Jika Arduino yang digunakan merupakan produk baru,
lampu LED yang berwarna kuning akan mulai berkedip
dengan pola menyala sedikit gugup. Pengujian ini
merupakan pengujian yang dilakukan di pabrik untuk
menguji papan Arduino.
3. Jika menggunakan power supply eksternal dan menggunakan
jenis Arduino yang lama seperti Extreme, NG, atau
Diecimila, pastikan bahwa power supply tersambung dengan
benar dan jumper yang ditandai dengan SV1
menghubungkan dua pin yang terdekat dengan konektor
power supply eksternal.
2.2.9. Melakukan Pengujian Rangkaian Pada Papan
Percobaan
Sekarang koneksikan papan Arduino dengan papan
percobaan breadboard dengan memasang jumper dari 5 V.
Kemudian untuk ground atau GND dikoneksikan ke rel
positif dan negative yang berada pada papan percobaan
breadboard. Jika LED PWR yang berwarna hijau tidak
27
menyala, segera lepaskan semua kabel. Hal tersebut
menandakan bahwa terdapat kesalahan besar dan terjadi
hubung singkat (short circuit) pada rangkaian. Pada saat
terjadinya hubung singkat, papan Arduino menarik
terlalu banyak arus dan daya akan terputus untuk
melindungi komputer.
Jika terjadi short circuit, maka kita harus memulainya
kembali dari proses penyederhanaan dan pembagian
(simplification and segmentation). Setelah itu, yang harus
dilakukan adalah memeriksa setiap sensor yang digunakan
pada percobaan tersebut dan untuk memudahkan sebaiknya
setiap pemeriksaan menggunakan satu sensor saja.
2.2.10. Masalah Dengan IDE
Pada beberapa kasus terutama pada Windows, mungkin
memiliki masalah yang berhubungan dengan penggunaan IDE
Arduino.
Jika terdapat kesalahan saat membuka Arduino,
gunakan metode alternatif dengan cara membuka file
run.bat.
Biasanya pemakai Windows juga sering mendapatkan
masalah jika sistem operasi memberikan nomor COM10 atau
28
yang benomor lebih untuk papan Arduino. Untuk mengatasi
masalah ini, kita dapat menentukan nomor yang lebih
rendah untuk Arduino dengan cara sebagai berikut:
1. Buka layar Device Manager pada Windows dengan membuka
menu Start. Lakukan klik kanan (right-click) pada layar
komputer untuk Vista atau My Computer dan pilih menu
Properties untuk XP. Kemudian pilih menu Device
Manager.
2. Cari serial device di dalam daftar “Ports (COM & LPT)”.
Dan pilih serial device bernomor COM9 atau bernomor
lebih rendah yang tidak digunakan dengan cara
pilih menu Properties (right-click). Kemudian pada tab Port
Setting, pilih menu Advanced dan lakukan pengaturan
nomor pada COM10 atau yang bernomor lebih besar.
3. Lakukan hal yang sama pada serial terminal USB yang
digunakan untuk mengoperasikan Arduino.
Jika beberapa saran tersebut masih tidak dapat
membantu, atau jika mengalami permasalahan yang belum
dijelaskan pada laporan ini, untuk troubleshooting Arduino
yang lebih lengkap dapat dilihat dari halaman situs:
www.arduino.cc/en/Guide/Troubleshooting.
29
2.2.11. Troubleshooting Arduino
Dalam membuat suatu eksperimen atau percobaan
dengan Arduino, memungkinkan sekali terjadinya
kegagalan dalam melakukan pengoperasiannya. Sedangkan
kita dituntut harus dapat memperbaiki kegagalan yang
terjadi agar Arduino dapat beroperasi dengan benar.
Troubleshooting dan debugging merupakan seni yang sudah
ada dari dulu. Dan agar didapatkan suatu hasil yang
diinginkan oleh kita, maka kita harus memenuhi
peraturan yang dimiliknya terlebih dahulu.
Semakin sering kita menggunakan komponen
elektronik dan Arduino dalam membuat suatu percobaan,
maka kita akan semakin banyak belajar dan semakin
banyak mendapatkan pengalaman. Oleh karena itu, jangan
putus asa dengan permasalahan yang akan muncul dalam
melakukan suatu percobaan karena semuanya akan menjadi
lebih mudah apabila sudah dihadapi.
Seperti semua percobaan Arduino yang telah dibuat,
jika terdapat kesalahan baik yang berasal dari hardware
maupun software maka disana kemungkinan akan ada lebih
30
dari satu hal yang perlu dicari penyebab dari kesalahan
tersebut.
Ketika mencari suatu bug atau akar dari suatu
masalah yang muncul seharusnya kita mengoperasikan
Arduino meliputi tiga langkah berikut:
1. Pemahaman (understanding)
Mencoba untuk memahami sebanyak mungkin bagaimana
cara kerja dari setiap bagian komponen yang
digunakan dan bagaimana bagian dari komponen
tersebut telah memberikan pengaruh terhadap
percobaan yang dibuat.
2. Penyederhanaan dan pembagian (simplification and
segmentation)
Orang Romawi kuno mengatakan devide et impera: divide and
rule, atau dalam bahasa Indonesia berarti pembagi dan
peraturan. Oleh karena itu, untuk membuat percobaan
Arduino cobalah lakukan perincian (break down) terhadap
percobaan ke dalam setiap komponennya dengan
pemahaman yang kita miliki dan memperhitungkan
dimana tanggung jawab dari setiap komponen tersebut.
3. Pemisahan dan kepastian (exclusion and certainty)
31
Ketika melakukan investigasi, melakukan pengujian
secara terpisah pada setiap komponen sangat
dibutuhkan untuk memastikan bahwa setiap komponen
bekerja dengan benar. Dengan melakukan tahap ini
akan membangun rasa keyakinan pada diri kita sendiri
terhadap bagian percobaan mana yang bekerja dengan
benar maupun yang tidak.
Debugging adalah istilah yang telah digunakan
software komputer untuk menggambarkan suatu proses tidak
bekerja dengan benar. Konon dikatakan bahwa istilah
tersebut dipakai untuk pertama kalinya oleh Garce
Hopper pada sekitar tahun 1940-an. Dimana pada waktu
itu, komputer yang sebagian besarnya merupakan
peralatan elektromekanis, ada yang berhenti beroperasi
karena ada serangga yang terjebak di dalam sistem
mekaniknya.
Tetapi pada saat ini, bug bukan berbentuk fisik
lagi, melainkan suatu virtual yang tidak dapat dilihat.
Oleh karena itu, terkadang dibutuhkannya suatu proses
indentifikasi yang panjang dan membosankan dalam
menemukan bug.
32
2.3. Kipas/ Motor DC
Motor listrik merupakan perangkat elektromagnetis
yang mengubah energi listrik menjadi energi mekanik.
Energi mekanik digunakan untuk memutar impeller pompa,
fan atau blower, menggerakkan kompresor dan lain-lain.
Motor DC memerlukan suplai tegangan yang searah pada
kumparan medan untuk diubah menjadi energi mekanik.
Motor DC merupakan sebuah aktuator yang mengubah
besaran listrik menjadi sistem yang gerak mekanis.
Polaritas arus yang mengalir melalui kawat lilitan yang
akan menentukan arah putaran motor. Nilai arus yang
mengalir melalui lilitan.
Prinsip kerja dari arus searah adalah membalik
phase tegangan dari gelombang yang mempunyai nilai
positif dengan menggunakan komutator, dengan demikian
arus yang berbalik arah dengan kumparan jangkar yang
berputar dalam medan magnet.
33
Gambar 2.4. Kipas DC
2.4. Sensor suhu IC LM 35
Sensor suhu LM35 merupakan sensor solid state yang
dapat mengubah besaran suhu menjadi besaran listrik
berupa tegangan. IC LM35 mempunyai kelebihan
dibandingkan dengan sensor - sensor suhu linear yang
dinyatakan dalam K, karena pemakaiannya tidak dituntut
untuk mengurangi sejumlah besaran tegangan konstan pada
outputnya yang membutuhkan penyesuaian atau pengurangan
eksternal apa pun untuk memberikan akurasi - akurasi
khusus sebesar ± 1/4 ℃, dalam sebuah cakupan suhu
penuh antara -55 sampai 150 ℃, (Afrie Setiawan,
2011:28).
34
IC LM35 merupakan sensor suhu dimana tegangan
keluaran proporsional linear untuk suhu dalam ℃,
mempunyai perubahan keluaran secara linear dan juga
dapat dikalibrasi dalam K. Di dalam udara sensor ini
mempunyai pemanasan diri (self heating) kurang dari 0,1 ℃
, dapat dipakai dengan menggunakan power supply
tunggal. Dapat juga dihubungkan antara suhu ke
rangkaian kontrol dengan sangant mudah, Gambar 2.5.
menunjukkan bentuk fisik IC LM35.
Gambar 2.5. IC LM35
Koefisian dari IC LM35 tidaklah seperti sebuah
resistor NTC (Negative Temperature Coefficeint), karena
tidaklah mungkin untuk mendapatkan suatu jangkauan suhu
yang lebar, apabila menggunakan sebuah resistor NTC.
Kelebihan pengunaan IC LM35 ini adalah diperolehnya
35
jangkauan pengukuran yang luas dan kemudahan dalam
kalibrasinya.
2.4.1. Karakteristik Sensor LM35
Memiliki sensitivitas suhu, dengan faktor skala
linier antara tegangan dan suhu 10 mVolt/ºC, sehingga
dapat dikalibrasi langsung dalam celcius.
1. Memiliki ketepatan atau akurasi kalibrasi yaitu
0,5ºC pada suhu 25 ºC
2. Memiliki jangkauan maksimal operasi suhu antara -55
ºC sampai +150 ºC.
3. Bekerja pada tegangan 4 sampai 30 volt.
4. Memiliki arus rendah yaitu kurang dari 60 µA.
5. Memiliki pemanasan sendiri yang rendah (low-heating)
yaitu kurang dari 0,1 ºC pada udara diam.
6. Memiliki impedansi keluaran yang rendah yaitu 0,1 W
untuk beban 1 mA.
7. Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
36
Gambar 2.6. Grafik akurasi LM35 terhadap Suhu
2.4.2. Prinsip Kerja LM35
Secara prinsip sensor akan melakukan penginderaan
pada saat perubahan suhu setiap suhu 1 ºC akan
menunjukan tegangan sebesar 10 mV. Pada penempatannya
LM35 dapat ditempelkan dengan perekat atau dapat pula
disemen pada permukaan akan tetapi suhunya akan sedikit
berkurang sekitar 0,01 ºC karena terserap pada suhu
permukaan tersebut. Dengan cara seperti ini diharapkan
selisih antara suhu udara dan suhu permukaan dapat
dideteksi oleh sensor LM35 sama dengan suhu
disekitarnya, jika suhu udara disekitarnya jauh lebih
tinggi atau jauh lebih rendah dari suhu permukaan, maka
37
LM35 berada pada suhu permukaan dan suhu udara
disekitarnya .
Jarak yang jauh diperlukan penghubung yang tidak
terpengaruh oleh interferensi dari luar, dengan
demikian digunakan kabel selubung yang ditanahkan
sehingga dapat bertindak sebagai suatu antenna penerima
dan simpangan didalamnya, juga dapat bertindak sebagai
perata arus yang mengkoreksi pada kasus yang
sedemikian, dengan mengunakan metode bypass kapasitor
dari Vin untuk ditanahkan. Maka dapat disimpulkan
prinsip kerja sensor LM35 sebagai berikut:
1. Suhu lingkungan di deteksi menggunakan bagian IC
yang peka terhadap suhu
2. Suhu lingkungan ini diubah menjadi tegangan listrik
oleh rangkaian di dalam IC, dimana perubahan suhu
berbanding lurus dengan perubahan tegangan output.
3. Pada seri LM35
Vout=10 mV/oC
4. Tiap perubahan 1oC akan menghasilkan perubahan
tegangan output sebesar 10mV
38
2.4.3. Kelebihan dan Kelemahan IC Temperature LM35
IC Temperatur LM35 memiliki kelebihan dan
kekurangan, kelebihan dari IC temperatur LM35 yaitu:
1. Rentang suhu yang jauh, antara -55 sampai 150 oC
2. Low self-heating, sebesar 0.08 oC
3. Beroperasi pada tengangan sampai 4 sampai 30V
4. Rangkaian tidak rumit
5. Tidak memerlukan pengondisian sinyal
IC Temperatur LM35 memiliki kekurangan yaitu:
1. Membutuhkan sumber tegangan untuk beroperasi
2. Aliran arus (darin) kurang dari 60 μA
3. Pemanasan diri (self heating) rendah 0.08 oC
Sensor suhu tipe LM35 ini merupakan IC sensor
temperatur yang akurat yang memiliki tegangan
keluarannya linear dalam satuan celcius. Jadi sensor
suhu LM35 ini memiliki kelebihan dibandingkan sensor
temperatur linier dalam satuan kelvin, karena tidak
memerlukan pembagian dengan konstanta tegangan yang
besar dan keluarannya untuk mendapatkan nilai dalam
satuan celcius yang tepat.
39
2.5. Protoboard
Protoboard adalah board yang digunakan untuk
membuat rangkaian elektronik sementara dengan tujuan
uji coba atau prototipe tanpa harus menyolder. Dengan
memanfaatkan protoboard, komponen-komponen elektronik
yang dipakai tidak akan rusak dan dapat digunakan
kembali untuk membuat rangkaian yang lain.
Protoboard umumnya terbuat dari plastik dengan
banyak lubang-lubang diatasnya. Lubang-lubang pada
protoboard diatur sedemikian rupa membentuk pola sesuai
dengan pola jaringan koneksi di dalamnya.
Protoboard yang tersedia di pasaran umumnya
terbagi atas 3 ukuran: mini protoboard, medium
protoboard dan large protoboard. Mini protoboard
memiliki 170 titik koneksi (bisa juga lebih). Kemudian
medium breaboard memiliki 400 titik koneksi. Dan large
protoboard memiliki 830 titik koneksi.
40
Gambar 2.7. Mini Protoboard
2.5.1. Spesifikasi Protoboard
Protoboard solderless modern yang terdiri dari
blok berlubang dari plastik dengan berbagai timah
berlapis perunggu fosfor atau nikel silver klip paduan
semi bawah perforasi. Klip sering disebut dasi poin
atau titik kontak. Jumlah poin dasi sering diberikan
dalam spesifikasi protoboard.
1. Jarak
Protoboard kebanyakan menyediakan kontak di mana
jarak antara titik kontak adalah persegi. Jarak ini
sesuai dengan jarak poin sirkuit terpadu dari semua
paket transistor. Jarak ini memfasilitasi untuk
menghubungkan semua komponen elektronik dalam
pembatasan tegangan, arus, dan frekuensi protoboard.
41
2. Jumlah Kontak
Protoboard menyediakan berbagai jumlah kontak.Namun,
tergantung pada ukuran protoboard , Protoboard
diperkirakan mengandung sesedikitnya 75 atau
sebanyak 900 poin koneksi yang terpisah. Produsen
biasanya mengatur titik koneksi dalam kolom 10
dipisahkan oleh median pusat. Pengaturan ini
menyediakan 56 sambungan untuk rangkaian 14-pin
standar terpadu, empat koneksi untuk setiap pin pada
perangkat.
3. Voltase
Protoboard banyak dinilai lima volt pada satu amp.
Pilihan umum kedua menyediakan 15-volt, sepertiga
peringkat amp. Kedua spesifikasi menghasilkan
disipasi daya lima watt. Tetapi hal ini bervariasi
per vendor dan perangkat.
4. Arus
Protoboards Kebanyakan memiliki batas saat ini dari
satu amp atau kurang, karena sifat dari kontak
mereka. Seringkali protoboards dapat menahan hanya
1/3 amp.
42
5. Frekuensi Rentang
Protoboard paling tidak bisa menahan frekuensi di
atas 10 MHz. Sifat dari kontak dalam protoboard
menciptakan kapasitansi pada urutan 2 sampai 20 pF
untuk setiap koneksi. Kapasitansi ini adalah acak,
tak terduga dan sulit untuk mereproduksi. Menghapus
dan memasukkan kembali memimpin komponen terkadang
lumayan mengubah kapasitansi kontak pada saat itu.
Efek ini menjadi bagian besar dari perilaku
rangkaian di atas 10 MHz.
6. Kapasitansi
Kapasitansi didefinisikan sebagai perlawanan
terhadap arus perubahan. Kapasitansi hasil dari aksi
dua konduktor yang dipisahkan oleh isolator. Ketika
Anda menyisipkan memimpin komponen ke protoboard,
koneksi tidak pernah sempurna. Hasil
ketidaksempurnaan kecil di sebuah kapasitansi kecil
di sambungan. Ini setara dengan kapasitor F 2 sampai
20 secara seri dengan setiap koneksi, di mana saat
ini tidak memiliki pilihan tetapi untuk pergi ke
arah yang benar.
43
Karena papan ini solderless alias tidak memerlukan
solder sehingga dapat digunakan kembali, dan dengan
demikian dapat digunakan untuk prototipe sementara
serta membantu dalam bereksperimen desain sirkuit
elektronika.
Berbagai sistem elektronik dapat di prototipekan
dengan menggunakan breadboard, mulai dari sirkuit
analog dan digital kecil sampai membuat unit pengolahan
terpusat (CPU). Secara umum breadbord memiliki jalur
seperti berikut ini :
Gambar 2.8. Jalur Breadboard
Penjelasan :
a. Dua Pasang jalur Atas dan bawah terhubung secara
horisontal sampai ke bagian tengah dari breadboard.
Biasanya jalur ini digunakan sebagai jalur power
atau jalur sinyal yg umum digunakan seperti clock
atau jalur komunikasi.
a
b
c
44
b. Lima lobang komponen di tengah merupakan tempat
merangkai komponen. Jalur ke 5 lobang ini terhubung
vertikal sampai bagian tengah dari breadboard.
c. Pembatas tengah breadboard biasanya digunakan
sebagai tempat menancapkan komponen IC.
2.6. Transistor
Transistor adalah alat semikonduktor yang dipakai
sebagai penguat, sebagai sirkuit pemutus dan penyambung
(switching), stabilisasi tegangan, modulasi sinyal atau
sebagai fungsi lainnya. Transistor dapat berfungsi
semacam kran listrik, dimana berdasarkan arus inputnya
(BJT) atau tegangan inputnya (FET), memungkinkan
pengaliran listrik yang sangat akurat dari sirkuit
sumber listriknya.
Gambar 2.9. Transistor
45
Pada umumnya, transistor memiliki 3 terminal,
yaitu Basis (B), Emitor (E) dan Kolektor (C). Tegangan
yang di satu terminalnya misalnya Emitor dapat dipakai
untuk mengatur arus dan tegangan yang lebih besar
daripada arus input Basis, yaitu pada keluaran tegangan
dan arus output Kolektor.
Transistor merupakan komponen yang sangat penting
dalam dunia elektronik modern. Dalam rangkaian analog,
transistor digunakan dalam amplifier (penguat).
Rangkaian analog melingkupi pengeras suara, sumber
listrik stabil (stabilisator) dan penguat sinyal radio.
Dalam rangkaian-rangkaian digital, transistor digunakan
sebagai saklar berkecepatan tinggi. Beberapa transistor
juga dapat dirangkai sedemikian rupa sehingga berfungsi
sebagai logic gate, memori dan fungsi rangkaian-rangkaian
lainnya.
Salah satu transistor yang digunakan dalam tugas
akhir ini adalah transistor Darlington. Transistor
Darlington adalah rangkaian elektronika yang terdiri
dari sepasang transistor bipolar (dwi kutub) yang
tersambung secara tandem (seri). Sambungan seri seperti
46
ini dipakai untuk mendapatkan penguatan (gain) yang
tinggi, karena hasil penguatan pada transistor yang
pertama akan dikuatkan lebih lanjut oleh transistor
kedua. Keuntungan dari rangkaian Darlington adalah
penggunaan ruang yang lebih kecil dari pada rangkaian
dua buah transistor biasa dengan bentuk konfigurasi
yang sama. Penguatan arus listrik atau gain dari
rangkaian transistor Darlington ini sering dituliskan
dengan notasi β atau hFE.
Gambar 2.10. Diagram rangkaian dari transistor Darlington
Transistor Darlington bersifat seolah-olah sebagai
satu transistor tunggal yang mempunyai penguatan arus
yang tinggi. Penguatan total dari rangkaian ini
merupakan hasil kali dari penguatan masing-masing
transistor yang dipakai:
47
dan
Jika rangkaian dipakai dalam moda tunggal emitor maka
RE adalah nol dan Nilai
dan
penguatan total dari transistor Darlington bisa
mencapai 1000 kali atau lebih. Dari luar transistor
Darlington nampak seperti transistor biasa dengan 3
buah kutub: B (basis), C (Kolektor), dan E (Emitter).
Dari segi tegangan listriknya, voltase base-emitter
rangkaian ini juga lebih besar, dan secara umum
merupakan jumlah dari kedua tegangan masing-masing
transistornya, seperti nampak dalam rumus berikut:
2.7. Microsoft Visual C# ( C Sharp) .Net
C# (dibaca: C sharp) merupakan sebuah bahasa
pemrograman yang berorientasi objek yang dikembangkan
48
oleh Microsoft sebagai bagian dari inisiatif kerangka
.NET Framework. Bahasa pemrograman ini dibuat
berbasiskan bahasa C++ yang telah dipengaruhi oleh
aspek-aspek ataupun fitur bahasa yang terdapat pada
bahasa-bahasa pemrograman lainnya seperti Java, Delphi,
Visual Basic, dan lain-lain) dengan beberapa
penyederhanaan. Menurut standar ECMA-334 C# Language
Specification, nama C# terdiri atas sebuah huruf Latin C
(U+0043) yang diikuti oleh tanda pagar yang menandakan
angka # (U+0023). Tanda pagar # yang digunakan memang
bukan tanda kres dalam seni musik (U+266F), dan tanda
pagar # (U+0023) tersebut digunakan karena karakter
kres dalam seni musik tidak terdapat di dalam keyboard
standar.
49
Gambar 2.11. Microsoft Visual C# .Net
2.7.1. Sejarah
Pada akhir dekade 1990-an, Microsoft membuat
program Microsoft Visual J++ sebagai sebuah langkah
percobaan untuk menggunakan Java di dalam sistem
operasi Windows untuk meningkatkan antarmuka dari
Microsoft Component Object Model (COM). Akan tetapi,
akibat masalah dengan pemegang hak cipta bahasa
pemrograman Java, Sun Microsystems, Microsoft pun
menghentikan pengembangan J++, dan beralih untuk
membuat pengganti J++, kompilernya dan mesin virtualnya
sendiri dengan menggunakan sebuah bahasa pemrograman
yang bersifat general-purpose. Untuk menangani proyek
ini, Microsoft merekrut Anders Helsberg, yang merupakan
mantan karyawan Borland yang membuat bahasa Turbo
Pascal, dan Borland Delphi, yang juga mendesain Windows
Foundation Classes (WFC) yang digunakan di dalam J++.
Sebagai hasil dari usaha tersebut, C# pun pertama kali
diperkenalkan pada bulan Juli 2000 sebagai sebuah
bahasa pemrograman modern berorientasi objek yang
50
menjadi sebuah bahasa pemrograman utama di dalam
pengembangan di dalam platform Microsoft .NET
Framework.
Pengalaman Helsberg sebelumnya dalam pendesain
bahasa pemrograman seperti Visual J++, Delphi, Turbo
Pascal) dengan mudah dilihat dalam sintaksis bahasa C#,
begitu pula halnya pada inti Common Language Runtime
(CLR). Dari kutipan atas interview dan makalah-makalah
teknisnya ia menyebutkan kelemahan-kelemahan yang
terdapat pada bahasa pemrograman yang umum digunakan
saat ini, misalnya C++, Java, Delphi, ataupun
Smalltalk. Kelemahan-kelemahan yang dikemukakannya itu
yang menjadi basis CLR sebagai bentukan baru yang
menutupi kelemahan-kelemahan tersebut, dan pada
akhirnya memengaruhi desain pada bahasa C# itu sendiri.
Ada kritik yang menyatakan C# sebagai bahasa yang
berbagi akar dari bahasa-bahasa pemrograman lain. [1]
Fitur-fitur yang diambilnya dari bahasa C++ dan Java
adalah desain berorientasi objek, seperti garbage
collection, reflection, akar kelas (root class), dan
juga penyederhanaan terhadap pewarisan jamak (multiple
51
inheritance). Fitur-fitur tersebut di dalam C# kini
telah diaplikasikan terhadap iterasi, properti,
kejadian (event), metadata, dan konversi antara tipe-
tipe sederhana dan juga objek.
C# didisain untuk memenuhi kebutuhan akan
sintaksis C++ yang lebih ringkas dan Rapid Application
Development yang 'tanpa batas' (dibandingkan dengan RAD
yang 'terbatas' seperti yang terdapat pada Delphi dan
Visual Basic).
Agar mampu mempromosikan penggunaan besar-besaran
dari bahasa C#, Microsoft, dengan dukungan dari Intel
Corporation dan Hewlett-Packard, mencoba mengajukan
standardisasi terhadap bahasa C#. Akhirnya, pada bulan
Desember 2001, standar pertama pun diterima oleh
European Computer Manufacturers Association atau Ecma
International (ECMA), dengan nomor standar ECMA-334.
Pada Desember 2002, standar kedua pun diadopsi oleh
ECMA, dan tiga bulan kemudian diterima oleh
International Organization for Standardization (ISO),
dengan nomor standar ISO/IEC 23270:2006.
52
2.7.2. Tujuan Desain
Standar European Computer Manufacturer Association (ECMA)
mendaftarkan beberapa tujuan desain dari bahasa
pemrograman C#, sebagai berikut:
1. Bahasa pemrograman C# dibuat sebagai bahasa
pemrograman yang bersifat bahasa pemrograman general-
purpose (untuk tujuan jamak), berorientasi objek,
modern, dan sederhana.
2. Bahasa pemrograman C# ditujukan untuk digunakan
dalam mengembangkan komponen perangkat lunak yang
mampu mengambil keuntungan dari lingkungan
terdistribusi.
3. Portabilitas programmer sangatlah penting, khususnya
bagi programmer yang telah lama menggunakan bahasa
pemrograman C dan C++.
4. Dukungan untuk internasionalisasi (multi-language)
juga sangat penting.
5. C# ditujukan agar cocok digunakan untuk menulis
program aplikasi baik dalam sistem klien-server
(hosted system) maupun sistem embedded (embedded
system), mulai dari perangkat lunak yang sangat besar
53
yang menggunakan sistem operasi yang canggih hingga
kepada perangkat lunak yang sangat kecil yang
memiliki fungsi-fungsi terdedikasi.
6. Meskipun aplikasi C# ditujukan agar bersifat
'ekonomis' dalam hal kebutuhan pemrosesan dan memori
komputer, bahasa C# tidak ditujukan untuk bersaing
secara langsung dengan kinerja dan ukuran perangkat
lunak yang dibuat dengan menggunakan bahasa
pemrograman C dan bahasa rakitan.
Bahasa C# harus mencakup pengecekan jenis (type
checking) yang kuat, pengecekan larik (array),
pendeteksian terhadap percobaan terhadap penggunaan
Variabel-variabel yang belum diinisialisasikan,
portabilitas kode sumber, dan pengumpulan sampah
(garbage collection) secara otomatis.
54
BAB III
PERANCANGAN ALAT
3.1. Alat dan Bahan
Alat dan bahan yang digunakan pada tugas akhir ini
yaitu berupa hardware dan software. Table 3.1. merupakan
alat dan bahan yang digunakan.
Tabel 3.1. Alat dan Bahan
Hardware Software
Arduino UNO R3
Baterai 9 Volt
Kipas/Motor Dc 12 Volt
Transistor TIP 120
Sensor Suhu LM35
Resistor 1 kilo ohm
Microsoft Visual C#
Software Arduino 1.0.5
Software fritzing
Microsoft Access
55
Kapasitor
Protoboard
3.2. Rancangan Sistem Pengukur Suhu dan Pendingin Ruangan
Sistem pengukur suhu dan otomatisasi pendingin
ruangan pada tugas akhir ini memiliki cara kerja yang
sama pada umumnya. Yaitu pada saat
suhu melebihi suhu yang ditetapkan maka kipas akan
menyala sebagai pendingin, kemudian sistem akan
mengirim data ke aplikasi desktop sebagai informasi
yang di display kemudian disimpan ke dalam database.
Media sensor suhu yang digunakan pada tugas akhir ini
bertipe IC yaitu LM35 sebagai pengukur temperature yang
dapat memberikan output -55 sampai dengan 150℃,. Media
pendingin otomatis menggunakan kipas dc 12V yang
mendapat sumber tegangan dari baterai.
3.2.1. Perancangan Aplikasi
Pada sistem yang dibuat untuk mengukur temperatur
diruangan ini dibuat range suhunya antara 20 ℃ sampai
56
dengan 50 ℃ dimana suhu normal ruangan ditetapkan
yaitu 28 ℃ sampai dengan 30 ℃, sehingga dibutuhkan
sensor temperatur yang mampu mendeteksi range suhu di
ruangan. Dalam rancangan sistem ini digunakan sensor
LM35 yang mampu mendeteksi temperatur dari 20 ℃
sampai dengan 50 ℃. Selain itu dibutuhkan juga sebuah
kondisi sinyal serta sarana untuk menampilkan hasil
olahan suhu ruangan yang akurat dan dapat dengan mudah
dipantau secara terus menerus.
Gambar 3.1. Diagram Blok Sistem
Dari diagram blok pengaturan suhu ruangan terdiri
dari beberapa blok rangkaian yang terdiri dari Sensor
Suhu (LM35), Arduino UNO R3, Kipas DC 12V dan Aplikasi
desktop C# .Net. Sensor yang digunakan adalah LM35
untuk menginput perubahan tegangan ke sistem ADC.
57
Perubahan yang diterima dalam bentuk data analog dan
mengubah data analog menjadi data digital agar dapat
diterima oleh mikrokontroler yang hanya menerima data
digital. Mikrokontroler yang digunakan yaitu Arduino
UNO R3 dengan Atmega328. Mikrokontroler yang digunakan
ini diisikan dengan program yang nantinya akan
ditampilkan pada layar komputer dengan C# .Net dan
disimpan ke dalam basis data.
Sebagai sensor temperatur digunakan LM35 yang
telah dikalibrasikan langsung dalam Celcius(℃).
Tegangan keluarannya (Vout) akan mengalami perubahan
10mV untuk setiap perubahan temperatur 1 ℃.
Kipas yang digunakan merupakan jenis DC 12 volt
sebagai petanda apabila suhu dalam ruangan melebihi
suhu yang telah ditetapkan (32 ℃¿maka kipas akan
menyala. Sumber tegangan eksternal kipas menggunakan
battery 9 volt.
3.3. Perancangan Miniatur Ruangan
Ruangan ini terdiri dari satu ruangan yang terbuat
dari kardus. Ruang tempat rangkaian elektronika
58
terletak pada ruang kardus yang dapat dibuka, untuk
memudahkan pengecekan rangkaian elektronika atau
memperbaiki pada saat terjadi kerusakan pada rangkaian
elektronika serta untuk mengontrol suhu dalam ruangan
tersebut.
Gambar 3.2. Miniatur ruangan
3.4. Rangkaian Arduino dengan Sensor LM 35
Komponen sensor suhu LM35 memiliki 3 pin, yaitu
pin 1 sebagai menerima input 1 sampai dengan 5 volt,
pin 2 sebagai output (Vout) analog dan pin 3
dihubungkan dengan ground.
Pada tahap ini pin arduino yang digunakan adalah
pin Analog yaitu A0 sebagai output dari Sensor LM35.
Gambar di bawah ini adalah gambar rangkaian Arduino
dengan sensor suhu LM35.
59
Gambar 3.3. Rangkaian Arduino dan LM 35
3.5. Rangkaian Arduino dengan Kipas DC 12V
Setelah merangkai rangkaian arduino dengan Sensor
Suhu, pada sub bab ini akan menambahkan kipas ke dalam
rangkaian. Pin output dari arduino yang digunakan
adalah pin 9 yang mana merupakan analog pin. Pin 9 ini
terhubung ke base Transistor Darlington yaitu TIP120 dengan
hambatan 1K ohm. Pin emitter dari transistor terhubung
ke ground dan pin collector terhubung dengan kapasitor dan
pin collector dari transistor ini terhubung ke kipas DC
12V yang mendapatkan tegangan 9V dari eksternal voltase
dengan menggunakan baterai 9V.
60
Gambar 3.4. Rangkaian Arduino dengan Kipas / Motor
3.6. Diagram Alir Sistem Pengukur Suhu dan Pendingin
Deskripsi kerja secara keseluruhan dari sistem
pengukur suhu dan otomatisasi pendingin ruangan pada
tugas akhir ini, sistem ini akan mulai beroperasi
ketika diberikan sumber tegangan melalui port usb
komputer ke Arduino. Port Usb ini juga sebagai jembatan
pengiriman data dari Arduino ke komputer yang
ditampilkan pada Aplikasi Desktop dan menyimpan history
tegangan ke dalam basis data tiap detik menggunakan C#.
Net.
61
Gambar 3.5. Diagram alir sistem kontrol suhu
Kipas DC 12V yang dipasang pada sistem hanya akan
ON untuk memberikan pendingin apabila suhu dalam sudah
mencapai batas yang telah ditentukan atau lebih, dan
62
akan dalam keadaan OFF kembali apabila suhu ruangan di
bawah batas minimum yang telah ditetapkan.
Karena sistem pengukuran suhu dan otomatisasi
pendingin ruangan ini merupakan sistem tertutup (loop
system), maka proses pembacaan temperature ini akan terus
berulang. Sistem ini hanya akan berhenti beroperasi
apabila dalam keadaan OFF atau tidak diberikan sumber
tegangan.
Untuk lebih jelas tentang deskripsi kerja secara
keseluruhan dari sistem pengukuran suhu dan otomatisasi
pendingin ruangan pada tugas akhir ini dapat melihat
gambar pada Gambar 3.5., dimana gambar tersebut
merupakan flowchart atau diagram alir secara keseluruhan
pada sistem pengukuran suhu dan otomatisasi pendingin
ruangan dan ditampilkan pada Aplikasi Desktop
menggunakan C# .Net sebagai tampilan hasil
pengukurannya.
3.7. Perancangan Aplikasi Desktop menggunakan C# .Net
63
Pembuatan form aplikasi desktop di disain semudah
mungkin agar mudah dipahami dan mudah digunakan.
3.7.1. Perancangan Main Form
Form utama dari aplikasi desktop merupakan form yang
berfungsi sebagai display output yang dikirim dari Arduino.
Informasi yang ditampilkan berupa suhu dalam Celcius
dan Fahrenheit dalam bentuk gambar, dan bentuk asli di
dalam sebuah text block.
Pada main form terdapat trigger untuk mengirimkan data
ke dalam basis data dan di simpan sebagai historical yang
nantinya dapat diketahui berapa suhu terendah dan suhu
tertinggi.
Gambar 3.6. Form utama aplikasi desktop
64
Pada form Gambar 3.6. di atas, dapat dijelaskan
Port yaitu port Arduino yang ter-installed di komputer, Baut
Rate yaitu jumlah kali per detik sinyal dalam perubahan
data komunikasi analog, dan yang biasa digunakan adalah
9600 baud, Suhu yaitu variable temperatur yang
berfungsi sebagai default suhu yang ditetapkan, grafik
temperatur yang berwarna coklat merupakan temperatur
dalam Celcius dan yang berwarna abu - abu merupakan
temperatur Fahrenheit, text block merupakan output informasi
dari Arduino ketika tombol start di klik, dan tombol
stop untuk mengakhiri komunikasi Arduino dengan
Aplikasi Desktop.
3.7.2. Perancangan form penampil data
Perancangan form untuk penampil data ini dapat
dimunculkan melalui main form dari menu Main > Data,
pada form ini data dapat diurutkan berdasarkan kolom.
Gambar 3.7. merupakan gambar perancangan form untuk
menampilkan data yang telah disimpan ketika aplikasi
berjalan.
BAB IV
PENGUJIAN ALAT
Pengujian alat dilakukan untuk mengetahui apakah
fungsi–fungsi yang telah direncanakan bekerja dengan
baik atau tidak. Pengujian alat juga berguna untuk
mengetahui tingkat kinerja dari fungsi tersebut.
Setelah dilakukan pengujian, maka hendaknya melakukan
ujian ukuran/analisa dan terhadap apa yang diuji untuk
mengetahui keberhasilan dari alat yang di buat dalam
tugas akhir ini. Didalam pengujian ini berisikan
pengujian hardware dan software.
4.1. Pengujian Hardware.
Pengujian hardware dilakukan untuk mengetahui
bagaimana kinerja hardware yang telah di rancang,
pengujian ini meliputi :
1. Pengujian Rangkaian Arduino dengan LM35
66
2. Pengujian Rangkaian dengan Kipas
4.1.1. Pengujian Rangkaian Arduino dengan LM35
Sensor LM35 merupakan sensor yang dapat mengukur
suhu dari 0 sampai dengan 100 C. Sensor ini menerima
inputan mulai dari 1V sampai dengan 5V dan memiliki
output 10mV per 1 C. Output sensor ini sebagai masukan
bagi Arduino
67
68
pada pin analog yang nantinya akan dikalkulasikan agar
menampilkan suhu sebenarnya.
T = (Va x Vb x 100.0 ) / 1024.0
dimana:
T = Temperature sebenarnya
Va = Vin dari output LM35
Vb = Vin Arduino
Pada tugas akhir ini, rangkaian diuji dengan suhu
normal dan dipanaskan dengan korek api. Hasil pengujian
ini terdapat pada Tabel 4.1.
Tabel 4.1. Tabel hasil pengujian pengukuran suhu
Kondisi Suhu
Celcius Fahrenhei
t
Normal 28-31 82-84
Dipanaskan dengan
Korek api
40-42 107-109
4.1.2. Pengujian Rangkaian dengan Kipas
69
Pengujian rangkaian kipas dimaksudkan untuk
mengecek apakah kipas bekerja dengan baik ketika suhu
melebihi suhu sebenarnya. Setelah melakukan pengujian
suhu yang dipanaskan, maka kipas seharusnya akan
berputar sebagai pendingin otomatis.
Gambar 4.1. Kipas tidak berputar ketika suhu sebenarnya lebih kecil dari
suhu variable
Pada gambar 4.1. kipas tidak berputar karena suhu
sebenarnya yaitu 31 C tidak lebih besar dari suhu
variable yaitu 35 C, dari gambar diatas informasi yang di
dapat yaitu "Motor:Off" yang menandakan kipas tidak
berputar. Ketika variable suhu sebagai parameter
diberikan input yang lebih kecil yaitu 30 C maka kipas
70
akan berputar dengan tanda "Motor:On" seperti pada
Gambar 4.2.
Gambar 4.2. Kipas menyala ketika suhu variable lebih kecil dari suhu
sebenarnya
4.2. Pengujian Software
Setelah menguji hardware / rangkaian Arduino
beserta sensor suhu dan Kipas DC, maka dilakukan
pengujian dengan mengintegrasikan dengan aplikasi
desktop yang di buat dengan bahasa pemrogramman C# .Net
dan disimpan ke dalam basis data / database Microsoft
Access. Interfacing / penghubung Arduino dengan aplikasi
menggunakan port serial usb dari Arduino ke port usb komputer
dengan menggunakan kabel USB.
71
4.2.1. Menginstal Aplikasi Desktop
Aplikasi desktop dikompilasi dalam satu paket
menjadi file installer agar lebih mudah saat instalasi.
Gambar 4.3. Software aplikasi desktop
Double klik file installer maka akan menampilkan form
seperti Gambar 4.4. kemudian klik tombol Next > untuk
melanjutkan ke tahap berikut nya.
Gambar 4.4. Instalasi Aplikasi Pengukur Suhu
Pada form seperti pada Gambar 4.5. menampilkan
lokasi yang mana file nanti akan ditempatkan didalam
operating system. Setelah menentukan lokasi file klik
tombol Next > untuk melanjutkan.
72
Gambar 4.5. Lokasi penyimpanan file instalasi
Pada form seperti pada Gambar 4.6.
mengkonfirmasikan untuk melakukan ketahap penginstalasi
selanjutnya.
Gambar 4.6. Konfirmasi instalasi aplikasi
73
Pada form seperti pada Gambar 4.7. menandakan
instalasi telah selesai, dan menandakan Aplikasi
Pengukur Suhu sudah dapat digunakan dan dapat
berinteraksi dengan Arduino.
Gambar 4.7. Instalasi Aplikasi selesai
4.2.2. Menampilkan aplikasi desktop
Setelah selesai instalasi aplikasi desktop, maka
aplikasi yang telah di instal di coba untuk membuktikan
bahwa aplikasi ini dapat berjalan dengan normal dan
siap digunakan untuk berinteraksi dengan Arduino.
74
Gambar 4.8. Shortcut aplikasi desktop
Aplikasi dapat dibuka melalui Start Windows > All
Programs > Pengukur Suhu [Lucky] > Pengukur Suhu -
Lucky. Maka akan tampil seperti pada Gambar 4.9. yang
merupakan tampilan awal aplikasi desktop.
Gambar 4.9. Tampilan awal aplikasi desktop
4.3. Hasil Pengukuran Suhu dan Interaksi Aplikasi
dengan Arduino
Setelah pengujian hardware dan instalasi aplikasi
desktop selesai. Maka untuk menghubungkan antara
aplikasi dan Arduino menggunakan Port Serial USB dengan
kabel USB. Ketika aplikasi desktop dijalankan dan
memilih port Arduino yang terbaca di dalam komputer,
75
lalu memilih Baud Rate yaitu 9600, secara langsung
berinteraksi dengan aplikasi desktop dan aplikasi desktop
segera merespon untuk mengeluarkan output dari Arduino
secara visual seperti Gambar 4.10.
Gambar 4.10. Interaksi Arduino dengan aplikasi desktop
Pada Gambar 4.10. terlihat suhu berada pada ±31ºC
yang di ambil pada tanggal 8 September 2013 pukul 12.42
siang.
4.3.1. Menampilkan Suhu yang dipanaskan
Saat sensor suhu dipanaskan dengan menggunakan
korek api dalam waktu ± 3 detik menghasilkan suhu ± 57
ºC, dan kipas DC akan berputar seperti pada Gambar
4.11.
76
Gambar 4.11. Tampilan aplikasi desktop ketika sensor suhu dipanaskan
4.3.2. Menampilkan suhu yang didinginkan
Saat sensor suhu didinginkan dengan dengan batu es
maka akan mendapatkan suhu terendah ± 19 ºC dalam waktu
1 menit., dan Kipas DC tidak berputar. Hal ini
disebabkan karena lebih kecil dari suhu yang telah
didefinisikan yaitu 32 ºC.
77
Gambar 4.12. Tampilan aplikasi desktop ketika sensor suhu didinginkan
4.3.3. Menampilkan hasil pengukuran suhu yang telah
disimpan
Untuk menampilkan hasil pengukuran suhu yang telah
disimpan ke dalam basis data, dari aplikasi desktop ini
pilih menu Main > Data. Maka akan tampil seperti Gambar
4.11. Di dalam form terdapat seluruh history suhu yang
disimpan di setiap detik dengan sedikit frekuensi
missing data record.
78
Gambar 4.13. Informasi suhu yang disimpan di basis data
4.3.4. Toleransi Hasil Pengukuran
Hasil pengukuran suhu ruangan dapat berubah dengan
sangat mudah. Oleh karena itu, hasil pengukuran suhu
dan pendingin ruangan ditampilkan pada aplikasi desktop
khususnya pada project tugas akhir ini sering kali
didapatkan hasil pengukuran yang tidak stabil dan
terjadi kesalahan pengukuran (error). Hal ini dapat
disebabkan karena beberapa faktor, antara lain:
1. Nilai tegangan input yang tidak stabil. Sehingga,
mengubah nilai konstanta waktu yang didapat dan
menghasilkan kesalahan pengukuran karena nilai
konversi menjadi tidak sesuai.
79
2. Delay pada pengiriman data dari Arduino ke Aplikasi
Desktop.
Tabel 4.2. Hasil pengukuran suhu waktu per detik
9/7/20137:29
9/7/20137:30
9/7/20139:06
0 29.54 29.43 30.51 29.54 29.43 30.42 29.54 29.43 30.43 29.43 30.44 29.43 29.43 5 29.43 29.54 30.56 29.43 29.54 30.617 29.54 29.54 30.48 29.43 29.54 30.49 29.54 30.510 29.43 29.54 30.411 29.65 29.43 30.412 29.54 29.54 30.413 29.54 29.54 30.514 29.43 29.54 30.415 29.43 29.54 30.416 29.54 29.65 30.417 29.43 29.54 30.418 29.43 29.65 30.2919 29.43 29.54 30.420 29.43 29.54 30.42 29.43 30.4
80
122 29.43 29.54 23 29.43 29.65 30.424 29.32 29.65 30.2925 29.43 29.65 30.2926 29.43 29.65 30.2927 29.65 30.2928 29.43 29.43 30.2929 29.32 29.54 30.430 29.32 29.54 30.431 29.32 29.54 30.2932 29.32 29.54 30.433 29.43 29.54 30.434 29.43 29.54 30.2935 29.32 29.65 30.2936 29.32 29.54 30.2937 29.32 29.54 30.2938 29.32 30.2939 29.32 29.54 40 29.22 29.54 30.2941 29.32 29.54 30.2942 29.32 29.43 30.44 29.32 29.54 30.29
81
344 29.43 29.54 30.445 29.43 30.446 29.43 29.54 30.2947 29.43 29.54 30.448 29.43 29.54 30.449 29.43 29.43 30.450 29.43 29.54 30.451 29.32 29.43 30.552 29.43 29.54 30.453 29.43 29.43 30.454 29.22 29.43 30.455 29.43 29.43 30.456 29.43 30.557 29.43 29.54 58 29.43 29.54 30.2959 29.43 29.54 30.4
.
Tabel 4.2. merupakan hasil dari pengukuran suhu
ruangan yang disimpan didalam basis data. Dan karena
hasil pengukuran sering berubah seiring berputarnya
waktu, selagi hasil pengukuran tidak melebihi suhu
82
default yaitu 32 C, maka kipas akan tetap Off, dan jika
sebaliknya suhu lebih besar dari suhu default, maka kipas
akan On.
Dari Tabel 4.2. khususnya pada kolom yang tidak
memiliki isi / blank, dapat dilihat bahwa sistem
pengukuran suhu ruangan pada tugas ini memiliki error
pada tiap kolom sebanyak ±4kali data tidak tersimpan.
Hal ini disebabkan karena delay dan konversi arduino
maupun faktor lain yang membutuhkan waktu konversi agak
lebih lama.
4.3.5. Perbandingan dengan alat Termometer lain
Dari hasil pengukuran dengan alat termometer,
didapat nilai yang tidak sama, ada selisih sekitar ± 1º
C. Pengukuran ini diambil dengan mengukur suhu tubuh
dalam waktu 12 detik. Terlihat hasil pada tabel
perbandingan seperti tabel dibawah.
Tabel 4.3. Hasil perbandingan dengan termometer
Det
ik
Sistem Pengukur
Suhu
Termomet
er
1 32.3 32.2
83
2 33.3 33.7
3 33.8 34.5
4 34.1 35.0
5 34.5 35.1
6 34.4 35.2
7 34.6 35.3
8 34.7 35.4
9 34.8 35.4
10 34.8 35.4
11 34.9 35.4
12 34.9 35.5
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Dari penulisan tugas akhir ini tentang alat
pengukur suhu ruangan dan hasil percobaan yang telah
dilakukan maka penulis dapat mengambil kesimpulan
sebagai berikut:
1. Dengan adanya alat pengukur suhu ruangan dapat
memantau suhu dan sebagai pemutar kipas DC secara
otomatis jika suhu telah melewati suhu yang telah
didefinisikan.
2. Semua data suhu ruangan disimpian kedalam basis
data setiap detik dan dapat dilihat hasil data
dengan Aplikasi yang di buat menggunakan C# .Net /
Microsoft Access.
84
3. Hasil pengukuran suhu dan pendingin ruangan yang
digunakan pada laporan tugas akhir ini sangat
bergantung pada nilai / input dari sensor suhu,
nilai tegangan input, dan hubungan antara hardware
dan sorfware.
4. Dari data hasil pengukuran suhu ruangan, didapatkan
nilai toleransi pengukuran sebanyak ± 4 kali data
tidak tersimpan terhadap pengukuran yang dilakukan
oleh Arduino dan aplikasi desktop.
5.2. Saran
Setelah melakukan penulisan tugas akhir ini
tentang alat pengukur suhu ruangan maka penulis dapat
memberikan saran agar alat ini dapat lebih dikembangkan
lagi menjadi lebih baik, yaitu:
85
1. Alat ini dapat dikembangkan lagi agar dapat
digunakan via internet maupun melalui alat
komunikasi lain.
2. Agar suhu ruangan menjadi cepat stabil seharusnya
dibuatkan kontrol untuk motor DC sehingga pendingin
suhu ruangan dapat diukur dengan waktu.
3. Untuk mendapatkan nilai pengukuran yang lebih
akurat dan lebih stabil dapat dilakukan dengan
berbagai cara seperti: mengurangi respon sensor
dengan meningkatkan waktu delay pengukuran,
menggunakan sistem grounding yang lebih baik.
4. Untuk mendapatkan suatu sistem pengukuran suhu dan
otomatisasi pendingin ruangan yang lebih handal
sebaiknya setiap pin IO pada papan Arduino yang
digunakan untuk pin pengirim dan pin penerima
sensor tidak di-jumper atau di-parallel dengan beban
lainnya.
86
DAFTAR PUSTAKA
Afrie, Setiawan. 2011. 20 APLIKASI MIKROKONTROLERATMega8535 dan ATMega16. Yogyakarta: ANDI
Banzi, Massimo. 2008. Getting Started with Arduino, First Edition.Sebastopol: O’Reilly
Dasar, Elektronika. 2012. Sensor Suhu IC LM35. Fromhttp://elektronika-dasar.web.id/komponen/sensor-tranducer/sensor-suhu-ic-lm35 ,25 Agustus 2013
Hamdani, Mohammad. 2010. Pengendali Kecepatan Putaran MotorDC Terhadap Perubahan Temperatur Dengan Sistem ModulasiLebar Pulsa. Depok: Universitas Indonesia
McRoberts, Mike. 2009. Ardunio Starter Kit Manual – AComplete Beginner Guide to the Arduino. UK:Earthshine Design.
Rasheed, Faraz. 2006. Programmer Heaven: C# School. Spain:Synchron Data S.L
Robertson, Christopher R. 2008. Fundamental Electrical andElectronic Principles, Third Edition. Oxford: Newnes
Sains, Insan. 2011. Sensor Suhu dengan Arduino. Fromhttp://www.geraicerdas.com/viewtag/25, 20 Februari2013
Wikipedia. 2013. Darlington transistor. Fromhttp://en.wikipedia.org/wiki/Darlington_transistor, 10 Juli 2013
LAMPIRAN
Sketch Program Perancangan Sistem Pengukur Suhu
Menggunakan Arduino dan C#.Net:
Arduino Code:int tempPin = 0; int motorpin = 10; char buffer[25]; String derajat="32"; bool IsMotorOn = false;void setup() { analogReference(INTERNAL); pinMode(motorpin,OUTPUT); pinMode(tempPin, INPUT); Serial.begin(9600); // buka serial port, set baud rate 9600 bps}float read_lm35(int pin) { float temp = analogRead(pin) / 9.31; return (temp);}int bluePin = 9;int blueTemp= 0;void loop() { float tempC=read_lm35(tempPin); delay(1000); float tempf = (tempC * 9)/ 5 + 32;
// Show to .Net ShowToDotNet(tempC, tempf); if (Serial.available() > 0)
{ derajat = Serial.readString(); } int speed=iSpeedMotor(tempC, derajat); analogWrite(motorpin,speed); Serial.println(); Serial.flush();}float StrToFloat(String str){ char carray[str.length() + 1]; //determine size of the array str.toCharArray(carray, sizeof(carray)); //put str into an array return atof(carray);}int iSpeedMotor(float ftemperature, String derajat){
int ipwm = 0;if(Serial){
String str=derajat;//Serial.readString();float suhuDefine = StrToFloat(str); float toleransi = suhuDefine - ftemperature;String message = "";Serial.println(toleransi);if(toleransi >= -0.5 && toleransi <= 0.5){
message = "Motor:Off|";}else{ if(ftemperature>=suhuDefine) //jika temperatur >=
suhuDefine {
int selisih = ftemperature-suhuDefine; if(selisih > 55)
selisih = 55; ipwm = 200+(selisih);
message = "Motor:On|"; } else {
message = "Motor:Off|"; }} Serial.print(message);
}else{
if(ftemperature > 40){
IsMotorOn=true;ipwm=255;
}if(IsMotorOn){
Serial.print("Motor:On|");}else{
Serial.print("Motor:Off|");}
} return ipwm;}
void ShowToDotNet(float suhuC, float suhuF){
char tmpC[10];dtostrf(suhuC,1,2,tmpC) ;char tmpF[10];dtostrf(suhuF,1,2,tmpF) ;String sC = tmpC;String sF = tmpF;String s = "SuhuCelcius:" + sC + "|SuhuFahrenheit:" +
sF + "|";Serial.println(s);
}
C# Code:
// ............using DevExpress.XtraGauges.Win;using DevExpress.XtraGauges.Win.Gauges.Linear;using DevExpress.XtraGauges.Core.Model;using DevExpress.XtraGauges.Core.Base;
namespace SkripsiV1CSharp{ public partial class Form1 : Form { GaugeControl gc = null; GaugeControl gc4 = null;
double val =0;
public Form1()
{ InitializeComponent();
#region GaugeControl2 gc = gaugeControl2; LinearGauge linearGauge = gc.AddLinearGauge(); linearGauge.AddDefaultElements(); LinearScaleBackgroundLayer background = linearGauge.BackgroundLayers[0]; background.ShapeType = BackgroundLayerShapeType.Linear_Style7; LinearScaleComponent scale = linearGauge.Scales[0]; scale.MinValue = 0; scale.MaxValue = 100; scale.Value = 0; scale.MajorTickCount = 11; scale.MajorTickmark.FormatString = "{0:F0}"; scale.MajorTickmark.ShapeType = TickmarkShapeType.Linear_Style6_3; scale.MinorTickmark.ShapeType = TickmarkShapeType.Linear_Style5_2; LinearScaleLevelComponent levelBar = linearGauge.Levels[0]; levelBar.ShapeType = LevelShapeSetType.Style3; background.ScaleStartPos = new PointF2D(background.ScaleStartPos.X - 0.005f, background.ScaleStartPos.Y - 0.015f); background.ScaleEndPos = new PointF2D(background.ScaleEndPos.X - 0.005f, background.ScaleEndPos.Y); gc.Parent = this; #endregion GaugeControl2
#region GaugeControl4 gc4 = gaugeControl4; LinearGauge linearGauge4 = gc4.AddLinearGauge(); linearGauge4.AddDefaultElements(); LinearScaleBackgroundLayer background4 = linearGauge4.BackgroundLayers[0]; background4.ShapeType = BackgroundLayerShapeType.Linear_Style5; LinearScaleComponent scale4 = linearGauge4.Scales[0]; scale4.MinValue = 0; scale4.MaxValue = 212; scale4.Value = 20; scale4.MajorTickCount = 6; scale4.MajorTickmark.FormatString = "{0:F0}";
scale4.MajorTickmark.ShapeType = TickmarkShapeType.Linear_Style6_3; scale4.MinorTickCount = 3; scale4.MinorTickmark.ShapeType = TickmarkShapeType.Linear_Style5_2; LinearScaleLevelComponent levelBar4 = linearGauge4.Levels[0]; levelBar4.ShapeType = LevelShapeSetType.Style3; background4.ScaleStartPos = new PointF2D(background4.ScaleStartPos.X - 0.005f, background4.ScaleStartPos.Y - 0.015f); background4.ScaleEndPos = new PointF2D(background4.ScaleEndPos.X - 0.005f, background4.ScaleEndPos.Y); gc4.Parent = this; #endregion GaugeControl4
string[] serialPorts = System.IO.Ports.SerialPort.GetPortNames(); cboPorts.Items.AddRange(serialPorts); cboBaud.Items.Add(2400); cboBaud.Items.Add(4800); cboBaud.Items.Add(9600); cboBaud.Items.Add(14400); cboBaud.Items.Add(19200); cboBaud.Items.Add(28800); cboBaud.Items.Add(38400); cboBaud.Items.Add(57600); cboBaud.Items.Add(115200); }
private void Form1_Load(object sender, EventArgs e) { serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived); }// ........... Some Code
delegate void SetTextCallback(string text); private void SetText(string text) { if (this.txtOutput.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); this.BeginInvoke(d, new object[] { text }); } else
{ txtOutput.AppendText(text); } }
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { try { SerialPort sp = sender as SerialPort;
string strExisting = sp.IsOpen ? sp.ReadLine() : ""; SetText(strExisting); this.StoreToDB(strExisting); }
catch (Exception ex) { } }
private void StoreToDB(string strExisting) { DataSet1.THistoryDataTable dt = new DataSet1.THistoryDataTable(); DataSet1.THistoryRow row = dt.NewTHistoryRow();
string[] arrStr = strExisting.Trim().Remove(strExisting.LastIndexOf("|")).Split('|'); foreach (string item in arrStr) { string[] keyValue = item.Split(':'); switch (keyValue[0]) { case "SuhuCelcius": row.SuhuCelcius = Convert.ToDouble(keyValue[1]); this.ShowGaugeControlCelciusTemperature(keyValue[1], gc); break; case "SuhuFahrenheit": row.SuhuFahrenheit = Convert.ToDouble(keyValue[1]); this.ShowGaugeControlFahrenheitTemperature(keyValue[1], gc4); break;
} } row.Date = DateTime.Now; row.RPM = 0; row.Time = DateTime.Now; try { ta.Insert(row.SuhuFahrenheit, row.SuhuCelcius, row.RPM, DateTime.Now, DateTime.Now); } catch (Exception ex) { } }
private void ShowGaugeControlFahrenheitTemperature(string tempF, GaugeControl gc4) { LinearGauge lg = gc4.Gauges[0] as LinearGauge; LinearScale ls = lg.Scales[0]; ls.Value = (float)Convert.ToDouble(tempF);
digitalGauge2.Text = tempF + "'F"; }
private void ShowGaugeControlCelciusTemperature(string tempC, GaugeControl gc) { LinearGauge lg = gc.Gauges[0] as LinearGauge; LinearScale ls = lg.Scales[0]; ls.Value = (float)Convert.ToDouble(tempC);
digitalGauge1.Text = tempC + "'C";val = ls.Value;
}
private void timer1_Tick(object sender, EventArgs e) { chart1.ChartAreas[0].AxisX.Maximum = 60; chart1.ChartAreas[0].AxisX.Minimum = 1; chart1.ChartAreas[0].AxisX.LabelStyle.Interval = 1; chart1.ChartAreas[0].AxisX.MajorGrid.Interval = Math.PI; chart1.ChartAreas[0].AxisX.MinorGrid.Interval = Math.PI / 4; chart1.ChartAreas[0].AxisX.MinorTickMark.Interval = Math.PI / 4; chart1.ChartAreas[0].AxisX.MajorTickMark.Interval = Math.PI;
chart1.ChartAreas[0].AxisY.Maximum = 100; chart1.ChartAreas[0].AxisY.Minimum = 0; chart1.ChartAreas[0].AxisY.LabelStyle.Interval = 10; chart1.Series[0].Points.AddXY(DateTime.Now.Second+1, val); if (DateTime.Now.Second+1 ==60 ) { chart1.Series[0].Points.Clear(); } label4.Text = DateTime.Now.ToString("HH:mm");
}