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 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
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
Sebagai makhluk hidup pada hakikatnya membutuhkan suhu udara yang tepat untuk memenuhi kebutuhan hidupnya. Agar lebih efisien maka perlu dilakukannya proses pengukuran. Salah satu proses pengukur suhu ruangan yang banyak digunakan baik untuk memenuhi kebutuhan di industri maupun di rumah tangga pada saat ini adalah sistem pengukur suhu dan pendingin ruangan secara otomatis.
Sistem pengukur suhu dan otomatisasi pendingin ruangan merupakan salah satu sistem yang sangat bermanfaat bagi kehidupan manusia. Dengan sistem ini diharapkan dapat mempermudah mengetahui suhu ruangan. LM35 merupakan sensor yang digunakan dalam tugas akhir ini sebagai sensor yang sangat sensitif terhadap temperatur. Hasil sensor tersebut di olah Arduino Uno yang kemudian ditampilkan dalam aplikasi desktop dengan menggunakan C# .Net dan disimpan kedalam basis data.
Setelah dilakukannya proses pengujian, sistem pengukur suhu ruangan khususnya yang dibuat pada tugas akhir ini dapat mengukur suhu ruangan dengan nilai toleransi data tak tersimpan dalam satu menit. Ketika suhu melebihi suhu yang ditetapkan, maka kipas akan berputar secara otomatis sebagai pendingin ruangan. Sistem ini bekerja setiap detik serta menampilkan hasil pada aplikasi desktop dan menyimpan ke dalam basis data sebagai tempat penyimpanan terakhir yang dikemudian hari dapat dikembangkan atau di ambil sebuah keputusan.
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 pada kali ini, penulis menyampaikan ucapan terima kasih kepada:
Rektor Universitas Mercu Buana
Bapak Ketua Program Studi Teknik Elektro
Bapak Koordinator Tugas Akhir
Bapak Ir. Yudhi Gunardi, MT selaku pembimbing
Orang tua yang memberikan dukungan penuh
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
Lucky Yuditia Putra
DAFTAR ISI
LEMBAR PERNYATAAN ii
LEMBAR PENGESAHAN iii
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
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
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 Pendingin 40
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
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
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
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
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
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
BAB I
PENDAHULUAN
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 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.
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”.
Rumusan Masalah
Berdasarkan dari latar belakang tersebut maka beberapa permasalahan yang akan muncul dalam mengerjakan tugas akhir ini antara lain :
Prinsip kerja dari mikrokontroler khususnya pada mikrokontroler yang akan digunakan yaitu Arduino Uno.
Pembuatan program mikrokontroler yang akan dibuat agar sesuai dengan yang diinginkan.
Komunikasi mikrokontroler dengan komponen lainnya seperti Sensor Suhu, Kipas DC serta aplikasi desktop menggunakan C# .Net.
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 :
Membahas mengenai perancangan program mikrokontroler khususnya Arduino Uno yang diaplikasikan sebagai sistem pengukur suhu ruangan.
Membahas komponen yang digunakan dalam membuat tugas akhir ini.
Membahas mengenai rangkaian yang digunakan dalam membuat tugas akhir ini.
Tujuan Penulisan
Berikut ini merupakan beberapa tujuan dari penulisan tugas akhir ini antara lain :
Mengetahui cara mengomunikasikan antara mikrokontroler khususnya Arduino Uno dengan Sensor Suhu, Kipas DC dan aplikasi desktop menggunakan C# .Net.
Metodologi Penelitian
Untuk menyelesaikan penulisan tugas akhir ini penulis melakukan beberapa tahap metode penelitian sebagai berikut :
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.
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.
Sistematika Penulisan
Sistematika penulisan pada tugas akhir ini dibagi atas beberapa bab dan masing-masing bab terbagi menjadi 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 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
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 :
Bagian Mikrokontroler
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. 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.
Arduino
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:
IDE Arduino merupakan multiplatform, yang dapat dijalankan di berbagai sistem operasi, seperti Windows, Macintosh dan Linux.
IDE Arduino dibuat berdasarkan pada IDE Processing, yang sederhana sehingga mudah digunakan.
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.
Arduino adalah hardware dan software open source pembaca bisa mendownload software dan gambar rangkaian arduino tanpa harus membayar ke pembuat arduino.
Biaya hardware cukup murah, sehingga tidak terlalu menakutkan untuk membuat kesalahan.
Proyek arduino ini dikembangkan dalam lingkungan pendidikan sehingga bagi pemula akan lebih cepat dan mudah mempelajarinya.
Memiliki begitu banyak pengguna dan komunitas di internet dapat membantu setiap kesulitan yang dihadapi.
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.
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.
Hardware Arduino
Pada hardware arduino terdiri dari 20 pin yang meliputi:
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.
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.
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.
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:
Editor Program
Sebuah window yang memungkinkan pengguna menulis dan mengedit program dalam bahasa processing
Compiler
Sebuah modul yang mengubah kode program menjadi kode biner bagaimanapun sebuah mikrokontroler tidak akan bisa memahami bahasa processing.
Uploader
Sebuah modul yang memuat kode biner dari komputer ke dalam memory di dalam papan arduino
Dalam bahasa pemrograman arduino ada tiga bagian utama yaitu struktur, variabel dan fungsi (Artanto, 2012:27):
Struktur Program Arduino
Kerangka Program
Kerangka program arduino sangat sederhana, yaitu terdiri atas dua blok. Blok pertama adalah void setup() dan blok kedua adalah void loop.
Blok Void setup ()
Berisi kode program yang hanya dijalankan sekali sesaat setelah arduino dihidupkan atau di-reset. Merupakan bagian persiapan atau instalasi program.
Blok void loop()
Berisi kode program yang akan dijalankan terus menerus. Merupakan tempat untuk program utama.
Sintaks Program
Baik blok void setup loop () maupun blok function harus diberi tanda kurung kurawal buka “{“ sebagai tanda awal program di blok itu dan kurung kurawal tutup “}” sebagai tanda akhir program.
Variabel
Sebuah program secara garis besar dapat didefinisikan sebagai instruksi untuk memindahkan angka dengan cara yang cerdas dengan menggunakan sebuah varibel.
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 akan membuat proses pemrogaman mikrokontroler menjadi sangat mudah.
Berikut ini merupakan gambaran siklus yang terjadi dalam melakukan pemrogaman Arduino:
Koneksikan papan Arduino dengan komputer melalui USB port.
Tuliskan sketsa rancangan suatu program yang akan dimasukkan ke dalam papan Arduino.
Upload sketsa program ke dalam papan Arduino melalui kabel USB dan kemudian tunggu beberapa saat untuk melakukan restart pada papan Arduino.
Papan Arduino akan mengeksekusi rancangan sketsa program yang telah dibuat dan di-upload ke papan Arduino.
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 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.
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 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.
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.
Device Manager pada Windows menampilkan semua terminal serial.
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.
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.
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.
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.
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.
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 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.
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 yang benomor lebih untuk papan Arduino. Untuk mengatasi masalah ini, kita dapat menentukan nomor yang lebih rendah untuk Arduino dengan cara sebagai berikut:
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.
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.
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.
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 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:
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.
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.
Pemisahan dan kepastian (exclusion and certainty)
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.
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.
Kipas DC
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).
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.
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 jangkauan pengukuran yang luas dan kemudahan dalam kalibrasinya.
Karakteristik Sensor LM35
Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC
Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC.
Bekerja pada tegangan 4 sampai 30 volt.
Memiliki arus rendah yaitu kurang dari 60 µA.
Memiliki pemanasan sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
Memiliki impedansi keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
Memiliki ketidaklinieran hanya sekitar ± ¼ ºC.
Grafik akurasi LM35 terhadap Suhu
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 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:
Suhu lingkungan di deteksi menggunakan bagian IC yang peka terhadap suhu
Suhu lingkungan ini diubah menjadi tegangan listrik oleh rangkaian di dalam IC, dimana perubahan suhu berbanding lurus dengan perubahan tegangan output.
Pada seri LM35
Vout=10 mV/oC
Tiap perubahan 1oC akan menghasilkan perubahan tegangan output sebesar 10mV
Kelebihan dan Kelemahan IC Temperature LM35
IC Temperatur LM35 memiliki kelebihan dan kekurangan, kelebihan dari IC temperatur LM35 yaitu:
Rentang suhu yang jauh, antara -55 sampai 150 oC
Low self-heating, sebesar 0.08 oC
Beroperasi pada tengangan sampai 4 sampai 30V
Rangkaian tidak rumit
Tidak memerlukan pengondisian sinyal
IC Temperatur LM35 memiliki kekurangan yaitu:
Membutuhkan sumber tegangan untuk beroperasi
Aliran arus (darin) kurang dari 60
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.
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.
Mini Protoboard
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.
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.
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.
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.
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.
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.
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.
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 :
c
b
a
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.
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.
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.
Transistor
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 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.
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:
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:
Microsoft Visual C# ( C Sharp) .Net
C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi objek yang dikembangkan 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.
Microsoft Visual C# .Net
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 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 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.
Tujuan Desain
Standar European Computer Manufacturer Association (ECMA) mendaftarkan beberapa tujuan desain dari bahasa pemrograman C#, sebagai berikut:
Bahasa pemrograman C# dibuat sebagai bahasa pemrograman yang bersifat bahasa pemrograman general-purpose (untuk tujuan jamak), berorientasi objek, modern, dan sederhana.
Bahasa pemrograman C# ditujukan untuk digunakan dalam mengembangkan komponen perangkat lunak yang mampu mengambil keuntungan dari lingkungan terdistribusi.
Portabilitas programmer sangatlah penting, khususnya bagi programmer yang telah lama menggunakan bahasa pemrograman C dan C++.
Dukungan untuk internasionalisasi (multi-language) juga sangat penting.
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 yang menggunakan sistem operasi yang canggih hingga kepada perangkat lunak yang sangat kecil yang memiliki fungsi-fungsi terdedikasi.
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.
BAB III
PERANCANGAN ALAT
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.
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
Kapasitor
Protoboard
Microsoft Visual C#
Software Arduino 1.0.5
Software fritzing
Microsoft Access
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.
Perancangan Aplikasi
Pada sistem yang dibuat untuk mengukur temperatur diruangan ini dibuat range suhunya antara 20 sampai 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.
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. 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.
Perancangan Miniatur Ruangan
Ruangan ini terdiri dari satu ruangan yang terbuat dari kardus. Ruang tempat rangkaian elektronika 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.
Miniatur ruangan
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.
Rangkaian Arduino dan LM 35
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.
Rangkaian Arduino dengan Kipas / Motor
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.
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 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.
Perancangan Aplikasi Desktop menggunakan C# .Net
Pembuatan form aplikasi desktop di disain semudah mungkin agar mudah dipahami dan mudah digunakan.
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.
Form utama aplikasi desktop
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.
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.
Perancangan form penampil data
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.
Pengujian Hardware.
Pengujian hardware dilakukan untuk mengetahui bagaimana kinerja hardware yang telah di rancang, pengujian ini meliputi :
Pengujian Rangkaian Arduino dengan LM35
Pengujian Rangkaian dengan Kipas
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
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 hasil pengujian pengukuran suhu
Kondisi
Suhu
Celcius
Fahrenheit
Normal
28-31
82-84
Dipanaskan dengan Korek api
40-42
107-109
Pengujian Rangkaian dengan Kipas
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.
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 akan berputar dengan tanda "Motor:On" seperti pada Gambar 4.2.
Kipas menyala ketika suhu variable lebih kecil dari suhu sebenarnya
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.
Menginstal Aplikasi Desktop
Aplikasi desktop dikompilasi dalam satu paket menjadi file installer agar lebih mudah saat instalasi.
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.
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.
Lokasi penyimpanan file instalasi
Pada form seperti pada Gambar 4.6. mengkonfirmasikan untuk melakukan ketahap penginstalasi selanjutnya.
Konfirmasi instalasi aplikasi
Pada form seperti pada Gambar 4.7. menandakan instalasi telah selesai, dan menandakan Aplikasi Pengukur Suhu sudah dapat digunakan dan dapat berinteraksi dengan Arduino.
Instalasi Aplikasi selesai
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.
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.
Tampilan awal aplikasi desktop
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, 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.
Interaksi Arduino dengan aplikasi desktop
Pada Gambar 4.10. terlihat suhu berada pada ºC yang di ambil pada tanggal 8 September 2013 pukul 12.42 siang.
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.
Tampilan aplikasi desktop ketika sensor suhu dipanaskan
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.
Tampilan aplikasi desktop ketika sensor suhu didinginkan
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.
Informasi suhu yang disimpan di basis data
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:
Nilai tegangan input yang tidak stabil. Sehingga, mengubah nilai konstanta waktu yang didapat dan menghasilkan kesalahan pengukuran karena nilai konversi menjadi tidak sesuai.
Delay pada pengiriman data dari Arduino ke Aplikasi Desktop.
Hasil pengukuran suhu waktu per detik
9/7/2013 7:29
9/7/2013 7:30
9/7/2013 9:06
0
29.54
29.43
30.5
1
29.54
29.43
30.4
2
29.54
29.43
30.4
3
29.43
30.4
4
29.43
29.43
5
29.43
29.54
30.5
6
29.43
29.54
30.61
7
29.54
29.54
30.4
8
29.43
29.54
30.4
9
29.54
30.5
10
29.43
29.54
30.4
11
29.65
29.43
30.4
12
29.54
29.54
30.4
13
29.54
29.54
30.5
14
29.43
29.54
30.4
15
29.43
29.54
30.4
16
29.54
29.65
30.4
17
29.43
29.54
30.4
18
29.43
29.65
30.29
19
29.43
29.54
30.4
20
29.43
29.54
30.4
21
29.43
30.4
22
29.43
29.54
23
29.43
29.65
30.4
24
29.32
29.65
30.29
25
29.43
29.65
30.29
26
29.43
29.65
30.29
27
29.65
30.29
28
29.43
29.43
30.29
29
29.32
29.54
30.4
30
29.32
29.54
30.4
31
29.32
29.54
30.29
32
29.32
29.54
30.4
33
29.43
29.54
30.4
34
29.43
29.54
30.29
35
29.32
29.65
30.29
36
29.32
29.54
30.29
37
29.32
29.54
30.29
38
29.32
30.29
39
29.32
29.54
40
29.22
29.54
30.29
41
29.32
29.54
30.29
42
29.32
29.43
30.4
43
29.32
29.54
30.29
44
29.43
29.54
30.4
45
29.43
30.4
46
29.43
29.54
30.29
47
29.43
29.54
30.4
48
29.43
29.54
30.4
49
29.43
29.43
30.4
50
29.43
29.54
30.4
51
29.32
29.43
30.5
52
29.43
29.54
30.4
53
29.43
29.43
30.4
54
29.22
29.43
30.4
55
29.43
29.43
30.4
56
29.43
30.5
57
29.43
29.54
58
29.43
29.54
30.29
59
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 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 data tidak tersimpan. Hal ini disebabkan karena delay dan konversi arduino maupun faktor lain yang membutuhkan waktu konversi agak lebih lama.
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.
Hasil perbandingan dengan termometer
Detik
Sistem Pengukur Suhu
Termometer
1
32.3
32.2
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
Kesimpulan
Dari penulisan tugas akhir ini tentang alat pengukur suhu ruangan dan hasil percobaan yang telah dilakukan maka penulis dapat mengambil kesimpulan sebagai berikut:
Dengan adanya alat pengukur suhu ruangan dapat memantau suhu dan sebagai pemutar kipas DC secara otomatis jika suhu telah melewati suhu yang telah didefinisikan.
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.
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.
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.
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:
Alat ini dapat dikembangkan lagi agar dapat digunakan via internet maupun melalui alat komunikasi lain.
Agar suhu ruangan menjadi cepat stabil seharusnya dibuatkan kontrol untuk motor DC sehingga pendingin suhu ruangan dapat diukur dengan waktu.
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.
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.
DAFTAR PUSTAKA
Afrie, Setiawan. 2011. 20 APLIKASI MIKROKONTROLER ATMega8535 dan ATMega16. Yogyakarta: ANDI
Banzi, Massimo. 2008. Getting Started with Arduino, First Edition. Sebastopol: O’Reilly
Dasar, Elektronika. 2012. Sensor Suhu IC LM35. From http://elektronika-dasar.web.id/komponen/sensor-tranducer/sensor-suhu-ic-lm35 ,25 Agustus 2013
Hamdani, Mohammad. 2010. Pengendali Kecepatan Putaran Motor DC Terhadap Perubahan Temperatur Dengan Sistem Modulasi Lebar Pulsa. Depok: Universitas Indonesia
McRoberts, Mike. 2009. Ardunio Starter Kit Manual – A Complete 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 and Electronic Principles, Third Edition. Oxford: Newnes
Sains, Insan. 2011. Sensor Suhu dengan Arduino. From http://www.geraicerdas.com/viewtag/25, 20 Februari 2013
Wikipedia. 2013. Darlington transistor. From http://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");
}
45
47
52
62
64
15
1
3
46
53
63
12
?
16