Laporan Arduino Pendeteksi Temperatur [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Laboratorium Komputer Teknik Mesin Universitas Brawijaya



54 Kelompok 24



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



2.1.2 Tujuan Praktikum a.



Mengenalkan fungsi dasar dan alur pembuatan algoritma serta flowchart dalam penyelesaian suatu masalah



b.



Mengenalkan Arduino secara umum.



c.



Mengenalkan bagian serta fungsi dari tiap – tiap komponen dalam Arduino.



d.



Menjelaskan alur pembuatan secara sederhana melalui Arduino.



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



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



55 Kelompok 24



2.2 Dasar Teori 2.2.1 Lingkungan Arduino Uno



Gambar 2.1 Papan Arduino Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik Universitas Brawijaya (2018) Bagian-bagian arduino : 1.



Quartz Crystal Oscillator (Q1 – Kristal) Jika microcontroller dianggap sebagai sebuah otak, maka kristal adalah jantungnya karena komponen ini menghasilkan detak-detak yang dikirim kepada microcontroller agar melakukan sebuah operasi untuk setiap detak-nya. Kristal ini menghasilkan detak 16 juta kali per detik (16MHz).



2.



Power Jack (Sumber Daya Eksternal) Jika hendak dihubungkan dengan sumber daya ekternal, papan Arduino Uno dapat diberikan tegangan DC antar 9-12V.



3.



Pin RESET Digunakan untuk menambahkan komponen pengganti reset button secara eksternal kepada Arduino.



4.



Pin 3,3V Pin yang menghasilkan keluaran berupa tegangan 3,3 volt.



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya 5.



56 Kelompok 24



Pin 5V Pin yang menghasilkan keluaran berupa tegangan 5 volt. Sebagaian besar komponen yang digunakan papan Arduino bekerja dengan baik pada tegangan 3,3 volt dan 5 volt.



6.



Pin GND (Ground) Ada beberapa pin GND pada Arduino yang digunakan untuk menghubungkan ground rangkaian. Untuk komponen sederhana atau hanya memiliki 2 kaki merupakan tempat terhubungnya kaki minus.



7.



Pin VIn Pin yang digunakan untuk menghubungkan sumber daya eksternal pada papan Arduino Uno (DC 9-12V).



8.



6 Pin Input Analog (A0-A5) Pin ini digunakan untuk membaca tegangan yang dihasilkan oleh sensor analog, seperti sensor suhu. Program dapat membaca nilai sebuah pin input antara 0 – 1023, dimana hal itu mewakili nilai tegangan 0 – 5V.



9.



Microcontroller ATMega (IC) Komponen utama dari papan Arduino Uno. Di dalamnya terdapat CPU, ROM, dan RAM.



10. In-Circuit Serial Programming (ICSP) Port ICSP memungkinkan pengguna untuk memprogram microcontroller secara langsung, tanpa melalui bootloader. Umumnya pengguna Arduino tidak melakukan ini sehingga ICSP tidak terlalu dipakai walaupun disediakan. 11. Reset Button Untuk memulai ulang papan sehingga program akan mulai lagi dari awal. Perhatikan bahwa tombol reset ini bukan untuk menghapus program atau mengosongkan microcontroller. 12. 14 pin I/O digital (0-13) Berfungsi sebagai input atau output, yang dapat diatur oleh program. Khusus untuk 6 buah pin 3, 5, 6, 9, 10 dan 11, dapat juga berfungsi sebagai pin analog output dimana tegangan output-nya dapat diatur. Nilai sebuah pin output analog dapat diprogram antara 0 – 255, dimana hal itu mewakili nilai tegangan 0 – 5V.



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



57 Kelompok 24



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



15. USB Berfungsi untuk memuat program dari komputer ke dalam papan, jalur komunikasi serial antara papan dan komputer, serta sebagai sumber daya listrik papan arduino.



2.2.2 LCD



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



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



58 Kelompok 24



Tabel 2.1 Daftar Pin LCD



Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik Universitas Brawijaya (2018) 2.2.3 Sensor LM35 LM35 merupakan IC sensor suhu dengan bentuk yang mirip dengan transistor, kaki IC ini hanya ada tiga, yaitu VCC, Output, dan GND.



Gambar 2.3 Sensor Suhu (LM35) Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik Universitas Brawijaya (2018)



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



59 Kelompok 24



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



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



Lenght (bit)



Data Range



Int



16



-32,767 to 32,767



Unsigned int



16



0 to 65,535



Long



32



-2147483648 s/d 2147483647



Unsigned long



32



0 s/d 4294967295



Float



32



1E-37 to 1E+37 with six digits of precision



Double



64



1E-37 to 1E+37 with ten digits of precision



Char



8



-127 to 127



Unsigned char



8



0 to 255



Byte



8



0 to 255



Short



16



-32,767 to 32,767



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



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



60 Kelompok 24



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



int pin = 13 void setup() {pinMode(pin, OUTPUT);} void loop() {digitalWrite(pin, HIGH);}



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



61 Kelompok 24



2.2.6 Operator a.



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



b. Jenis – Jenis Operator 1.



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



Tabel 2.3 Operator Aritmatika Operator



Fungsi



+



Penjumlahan



-



Pengurangan



*



Perkalian



/



Pembagian



%



Sisa hasil pembagian



2.



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



Tabel 2.4 Operator Perbandingan Operator



Fungsi



!=



Tidak sama dengan








Lebih besar



>=



Lebih besar sama dengan



50) { // do something here } Tes program untuk melihat apakah beberapa variabel lebih besar dari 50. Jika ya, program ini mengambil tindakan tertentu. Dengan kata lain, jika pernyataan dalam kurung adalah benar, pernyataan di dalam kurung dijalankan. Jika tidak, program melompat dari kode. Kurung dapat dihilangkan setelah pernyataan if. Jika hal ini dilakukan, baris berikutnya (didefinisikan oleh titik koma) menjadi satusatunya pernyataan kondisional. if (x > 120) {digitalWrite(LEDpin, HIGH);} if (x > 120) {digitalWrite(LEDpin, HIGH);} if (x > 120) {digitalWrite(LEDpin, HIGH);} If(x



>



120)



{digitalWrite(LEDpin1,



HIGH);



digitalWrite(LEDpin2, HIGH);} // all are correct B. If / Else If / Else memungkinkan kontrol yang lebih besar aliran kode daripada dasar jika pernyataan, dengan memungkinkan beberapa tes yang harus dikelompokkan bersama. Sebagai contoh, input analog dapat diuji dan satu tindakan yang diambil jika input kurang dari 500, dan tindakan lain yang diambil jika input adalah 500 atau lebih besar. Kode akan terlihat seperti ini: if(pinFiveInput < 500) { // action A } Else { // action B }



Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



64 Kelompok 24



Selain dapat melanjutkan perintah lain saat testing, sehingga beberapa tes secara eksklusif dapat dijalankan pada waktu yang sama. Setiap tes akan melanjutkan ke yang berikutnya sampai nilai didapatkan true. Ketika nilai true ditemukan, blok yang terkait kode dijalankan, dan program kemudian melompat ke baris berikut seluruh jika / lain. Jika ada tes bernilai true, maka default blok kode lain dijalankan, dan menetapkan perilaku default. if(pinFiveInput < 500) { // do thing A } Elseif (pinFiveInput >=1000) {



//



do



thing



B }



Else { // do thing C }



Perhatikan bahwa lain halnya jika blok dapat digunakan dengan atau tanpa mengakhiri blok lain dan sebaliknya. Jumlah yang tidak terbatas seperti yang lain dapat dilakukan jika cabang diperbolehkan. C.



For Statement Untuk pernyataan digunakan untuk mengulang blok pernyataan yang diapit oleh kurung keriting. Counter kenaikan biasanya digunakan untuk peningkatan dan mengakhiri loop. Untuk pernyataan ini berguna untuk setiap operasi berulang, dan sering digunakan dalam kombinasi dengan array untuk beroperasi pada koleksi data / pin. Ada tiga bagian dalam looping yaitu : For(initialization;condition;increment) {//statement(s);}



Gambar 2.4 Bagian dalam looping Sumber : Modul Praktikum Laboratorium Komputer Teknik Mesin Fakultas Teknik Universitas Brawijaya (2018) Laporan Praktikum Pemrograman Komputer Semester Genap Tahun Ajaran 2017/2018



Arduino



Laboratorium Komputer Teknik Mesin Universitas Brawijaya



65 Kelompok 24



Inisialisasi terjadi pertama kali dan harus tepat. Setiap kali melalui loop, Kondisi ini diuji; jika itu bernilai true, blok pernyataan dan kenaikan dijalankan, ketika kondisi



diuji lagi. Ketika kondisi menjadi salah, loop berakhir. Contoh : // Dim an LED using a PWM pin int PWMpin = 10; // LED in series with 470 ohm resistor on pin 10 void setup() {// no setup needed} void loop() { for (int i=0; i