Mikrokontroller Pengembangan sistem monitoring vibrasi pada kipas pendingin menggunakan accelerometer ADXL345 dengan metode FFT berbasis labview

19 ∫ .......................................... 2 Dimana XF merupakan nilai hasil dari transformasi fourier, x t ialah nilai atau fungsi sinyal dalam domain waktu, merupakan persamaan bentuk sinyal eksponensial kompleks dengan nilai k = 0, ±1 , ±2,… FFT pada dasarnya merupakan alih ragam Fourier tapi untuk komponen diskrit. FFT merupakan DFT discrete fourier transform yag memiliki jumlah komputasi lebih sedikit disbanding komputasi DFT biasa. DFT akan menghasilkan jumlah komputasi sebesar N 2 sedangkan FFT akan menghasilkan jumlah komputasi sebesar Nlog2N. Perhitungan FFT menggunakan butterfly Radix-2 menghasilkan jumlah komputasi lebih sedikit yakni N2log 2 N. Jumlah titik dalam ketika menggunakan FFT juga memenuhi syarat 2 N . Implementasi dari FFT antara lain dalam bidang medis, stastistik, pengolahan citra, suara, telekomunikasi dan lain-lain. FFT juga digunakan untuk menentukan frekuensi mana saja yang akan di filter menggunakan lowpass, highpass, bandpass dan bandstiop filter. Murray, 1986

2.4. Mikrokontroller

Seiring dari perkembangan zaman kebutuhan manusia akan teknologi kian kompleks, dibutuhkan sebuah teknologi yang serupa komputer namun lebih efisien dan juga terjangkau harganya. Maka sebuah teknologi muncul untuk dapat melengkapi sebuah computer untuk menjalankan sebuah instruksi yang sedehana, mudah dan dengan harga yang terjangkau. Mikrokontroler muncul sebagai solusi tersebut, mikrokontroler merupakan perkembangan dari sebuah komputer 20 Kebutuhan pasar dan perkembangan teknologi menjadi 2 faktor utama yang membuat mikrokontroler kian dibutuhkan dan diminati. Kebuthan akan perangkat elektronik sebagai alat kontrol dan pemroses data serta kemajuan teknologi pada semikonduktor dan pembuatan chip dengan kemampuan yang tinggi serta murah merupakan penjelasan dari 2 faktor tersebut. Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian elektronik dan umumnya dapat menyimpan program di dalamnya, didalamnya juga terdapat sistem mikroprosessor yang digunakan untuk sistem pengontrolan. Mikrokontroler umumnya terdiri dari CPU Central Processing Unit, memori, IO tertentu dan unit pendukung lainnya seperti ADC Analog-to- Digital Converter yang sudah terintegrasi di dalamnya. Namun tidak seperti mikroprosesor pada computer, mikrokontroler ini hanya bisa digunakan untuk suatu aplikasi tertentu saja. Mikrokontroller juga bekerja sebagai alat yang mengerjakan intruksi – Instruksi yang diberikan pada mikrokontroller tersebut. Oleh karena itu, hal penting dalam mikrokontroller ialah program yang ada didalamnya yang digunakan untuk memberi instruksi-instruksi untuk dijalankan oleh mikrokontroller. Perangkat elektronik yang menggunakan mikrokontroller dalam sistemnya memiliki beberapa kelebihan yaitu : 1. Membutuhkan daya yang rendah 2. Ukuran yang tentunya lebih kecil 21 3. Mempunyai kemampuan yang tinggi serta mudah untuk berinteraksi dengan komponen lain 4. Biaya produksi lebih rendah karena tidak membutuhkan komponen yang banyak. 5. Pembuatan juga tidak memakan waktu yang banyak 6. Terdapat fasilitas tambahan untuk pengembangan memori dan IO untuk kebutuhan sistem

2.4.1. Arduino UNO

Arduino UNO merupak salah satu keluarga dari anggota mikrokontroler arduino. Sebuah perangkat mini yang dirancang untuk bekerja sebagai perangkat yang bisa bekerja secara sendiri. Nama “UNO” berasal dari bahasa Italia yang berarti satu, untuk menandai peluncuran Arduino 1.0. UNO dan versi 1.0 akan menjadi versi referensi dari arduino. UNO adalah yang terbaru dalam serangkaian board USB arduino, dan sebagai model referensi untuk platform arduino. Arduino adalah board mikrokontroler berbasis ATmega328P. memiliki 14 pin dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 Mhz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan cukup hanya menggunakan board arduino UNO ke komputer dengan menggunakan kabel USB atau listrik AC ke adaptor DC atau menggunakan baterai untuk menjalankannya. 22 Arduino UNO berbeda dengan semua board sebelumnya dalam hal koneksi USB-to-serial yaitu menggunakan fitur atmega8U216U2 yang diprogram sebagai konverter USB-to-serial, hal ini berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial. Fitur-fitur yang dimiliki Arduino UNO ini adalah sebagai berikut : 1. Mikrokontroler ATmega328P 2. Operasi daya 5V 3. Input tegangan 7-12V 4. Input tegangan batas 6-20V 5. Digital IO pins 14 dimana 6 memberikan output PWM 6. Analog Input pin 6 7. Arus DC setiap IO pin 40mA 8. Arus DC untuk 3,3V pin 50mA 9. Flash memory 32 KB 10. SRAM 2 KB 11. EEPROM 1 KB 12. Clock Speed 16Mhz 13. Memiliki ATmega 8U216U2 yang digunakan sebagai konverter USB-to-serial 14. Memiliki sirkuit reset 15. Memiliki pin out : menambahkan SDA dan SCL pin yang dekat ke pin Aref dan dua pin baru lainnya ditempatkan dekat ke pin reset, 23 dengan IO REF yang memungkinakan sebagai buffer untuk beradaptasi dengan tegangan yang disediakan oleh board sistem. 16. Mempunyai komunikasi data I2C dan SPI Gambar II.6. Arduino UNO Gambar II.7. Deskripsi Arduino UNO dan skematik Arduno UNO 24 Arduino UNO dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber listrik dipilih secara otomatis. Eksternala non-USB dapat berupa baik AC-DC atau baterai. Adaptor ini dapat dihubungkan dengan cara menghubungkan plug pusat – positif 2,1 mm ke dalam board colokan listrik. Sedangkan untuk baterai dapat dihubungkan ke dalam header pin GND dan Vin dari konektor power. Board dapat beroperasi pada pasokan daya dari 6- 20 volt. Jika diberikan dengan kurang ari 7V, bagaimanapun, pin 5V dapat menyuplai kurang dari 5V dan board mungkin tidak stabil. Jika menggunakan lebih dari 12V, regulator bisa panas dan merusak board. Rentang yang dianjurkan adalah 7V-12V. Pin pada Ardino UNO memiliki fungsinya masing-masing adalah sebagai berikut: Tabel II.2. Deskripsi Pin Arduino UNO NO PIN KETERANGAN 1 RX Receiver 0 Pin RX ini berfungsi sebagai pin untuk menerima data TTL serial yang terhubung ke pin yang sesuai dari chip ATmega8U2 USB to serial TTL 2 TX Transmitter 1 Pin TX ini berfungsi sebagai pin untuk megirim data TTL serial yang terhubung ke pin yang sesuai dari chip ATmega8U2 USB to serial TTL 3 Eksternal Interupsi 2 Pin ini dapat dikonfigurasi untuk 25 dan 3 memicu interupsi pada nlai yang rendah, tepi naik atau jatuh, atau perubahan nilai 4 PWM 3,5,6,9,10,dan11 Menyediakan 8-bit output PWM dengan analogWrite fungsi 5 SPI 10SS, 11MOSI, 12MISO, 13SCK Pin ini mendukung komunikasi SPI menggunakan library SPI 6 LED 13 Ada built-in LED terhubung ke pin digital 13. Ketika pin dalam keadaan nilai tinggi Led menyala, ketika pin rendah mati 7 I2C A4 SDO dan A5 SCL Berfungsi sebagai pendukung omunikasi I2C 8 Vin Tegangan masukkan kepada board arduino ketika menggunakan sumber daya eksternal 9 GND Berfungsi sebagai Ground 10 5V Catu daya yang digunakan untuk daya mikrokontroler dan koponen lainnya 11 3v3 Berfungsi sebagai pasokan 3,3 volt dihasilkan oleh regulator onboard 12 Reset Berfungsi untuk mereset mikrokontroler 13 IOref Referensi tegangan untuk input analog. Digunakan untuk analogReference 26 Arduino UNO memiliki 6 input analog diberi label A0 sampai A5, masing masing menyediaan 10 bit resolusi 1024 nilai yang berbeda. Secara default sistem mengukur dari Ground sampai 5 Volt, meskipun mungkin untuk mengubah ujung atas rentang menggunakan pin IOref dan fungsi analogReference. Arduino UNO memiliki sejumlah fasilitas untuk berkomunikasi dengan computer, arduino atau mikrokontroler lainnya. Pada arduino UNO ini terdapat mikrokontroler ATmega328P yang menyediakan UART TTL 5V komunikasi serial yang tersedia di pin digital 0 RX dan 1 TX. Sebuah AT mega8U216U2 pada board ini berfungs sebagai komunikasi serial melalui USB dan muncul sebagai com port virtual pada computer. Firmware ATmega8U216U2 menggunakan USB driver standar COM, dan tidak dibutuhkn driver eksternal yang diperlukan. Namun pada windows diperlukan file Inf. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data sederhana yang akan dikirim ke board arduino. RX dan TX di board LED akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dan koneksi USB ke computer tetapi tidak untuk omunikasi serial pada pin0 dan1. Fungsi ini digunakan untuk melakukan komunikasi interface pada sistem. ATmega 328P juga mendukung komunikasi I2C dan juga SPI. Arduino menggunakan pemrograman dengan bahasa C. setiap program Arduino sketch mmpunyai dua buah fungsi yang harus ada, yaitu : 1. void setup { } 27 Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijlankan untuk pertama kalinya. 2. void loop { } Fungsi ini akan dijalankan setelah setup fungsi void setup selesai. Setelah dijalankan satu kali fungsi ini akan dijalnkan lagi, dan lagi secara terus menerus sampai power dilepaskan Berikut ini adalah elemen bahasa C yang dibutuhkan untuk format penulisan, yaitu: 1. komentar satu baris Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakngnya akan diabaikan oleh program 2 komentar banyak baris Jika ada banyak catatan, maka hal itu dapat dituliskan pada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua symbol tersebut akan diabaikan oleh program. 3. { }kurung kurawal Digunakan untuk mendefinisikan kapan blog program mulai dan berakhir digunakan juga pada fungsi dan pengulangan 4. ;titik koma Setiap baris kode harus diakhiri tanda titik koma jika ada titik koma yang hilang maka program tidak akan bisa dijalankan 28 Sebuah program secara garis baris dapat didefinisikan sebagai intruksi untuk memindahkan angka dengan cara yang cerdas. Variabel inilah yang digunakan untuk memindahkannya. 1. int integer Digunakan untuk menyimpan angka dalam 2 byte 16bit. Tidak mempunyai angka decimal dan menyimpan nilai dari -32,768 dan 32,767 2. long long digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte 32bit dari memori RAM dan mempunyai rentang dari - 2,147,483,648 dan 2,147,483,647. 3. boolean Boolean variabel sederhana yang digunakan untuk menyimpan nilai TRUE benar atau FALSE salah. Sangat berguna karena hanya menggunakan 1 bit dari RAM. 4. float float Digunakan untuk angka decimal floating point. Memakai 4 byte 32 bit dari RAM dan mempunyai rentang -3.4028235E+38 dan 3.4028235+38. 5. Char character Menyimpan 1 karakter menggnakan kode ASCII misalnya „A‟ =65. Hanya memakai 1 byte 8bit dari RAM 29 Operator yang digunakan untuk manipulasi angka bekerja seperti matematika yang sederhana. 1. = Membuat sesuatu menjadi sama dengan nilai yang lain misalnya: x = 10 2, x sekarang nlainya sama dengan 20. 2. Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain misalnya: 12 10, ini akan menghasilkan angka 2 3. + Penjumlahan 4. Perkalian 5. - Pengurangan 6. Pembagian Operator pembanding digunakan untuk membandingkan nilai logika 1. = Sama dengan misalnya 12 == 10 adalah FALSE salah atau 12==12 adalah TRUE benar 2. = 30 Tidak sama dengan misalnya 12 = 12 adalah FALSE salah 3. Lebih kecil dari misalnya 12 10 adalah FALSE atau 12 12 adalah FALSE atau 12 14 adalah TRUE 4. Lebih besar dari misalnya 12 10 adalah TRUE atau 12 12 adalah FALSE atau 1214 adalah FALSE Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah beberapa elemen dasar pengaturan

1. if..else, dengan format sebagai berikut ini :

if kondisi { } else if {kondisi} else { } dengan struktur tersebut program akan menjalankan kode yang ada di dalam kurung kurawal jika kondisinya TRUE, dan jika FALSE maka akan diperiksa apakah kondisi pada else if dan jika kondisinya FALSE maka kode pada else yang akan dijalankan.

2. for, dengan format seperti berikut ini:

for int i = 0; I pengulangan; i++ { } digunakan apabila ingin melakukan pengulangan kode di dalam kurung kurawal beberapa kali, ganti pengulangan dengan jumlah 31 pengulangan yang diinginkan. Melakukan penghitungan ke atas dengan i++ atau ke bawah dengan i-- untuk digital ada beberapa elemen dasar pengaturan diantaranya sebagai berikut:

1. pinMode pin,mode

digunakan untuk menetapkan mode dari suatu pin, pin adalah nomer pin yang akan digunakan dari 0-19 pin analog 0-5 adalah 14-19. Mode yang bisa digunakan adalah INPUT atau OUTPUT

2. digitalWrite pin,value

ketika sebuah pin ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH ditarik menadi 5 volt atau LOW diturunkan mejadi ground. 3. digitalReadpin ketika sebuah pin ditetapkan sebagai INPUT maka kita dapat menggunakan kode ini untuk mendapatkan nilai pin tersebut apakah HIGH ditarik menjadi 5 volt atau LOW diturunkan menjadi ground. Arduino adalah mesin digital tetapi mempunyai kemampuan untuk beroperasi diadalam analog. Berikut adalah elemen dasar pengaturannya : 1. analogWritepin,value beberapa pin pada arduino mendukung PWM pulse width modulation yaitu 3, 5, 6, 9, 10, 11. Ini dapat meruah pin hidup on atau mati off dengan cepat sehinggaa mambuatnya dapat 32 berfungsi layaknya keluaran analog, value pada format kode tersebut adalah angka antara 0 0 duty cycle ~ 0V dan 255 100 duty cycle ~ 5V 2. analogReadpin ketika pin analog ditetapkan sebagai INPUT anda dapat membaca keluaran voltasenya. Keluaran berupa angka antara 0 untuk 0 volts dan 1024 untuk 5 volts Anonim, Arduino

2.4.2. Spesifikasi Atmega 328P

Dalam arduino UNO dilengkapi atau diintegrasikan dengan mikrokontroler ATmega328P. mikrokontroler ATmega328P merupakan 8 bit mikrokontroler dari keluarga Atmel yang memiliki daya rendah dan arsitektur RISC reduce Instruction Set Computer yang mmiliki kecepatan yang lebi cepat daripada arsitektur CISC Completed Instruction Set Computer. Mikrokontroler ini memberikan instrksi dalam satu kali siklus clock dengan 131 macam instruksi dengan menggabungkan instruksi dengan 32 register utama yang bekerja. Semua regiter ini kana langsung berhubungan dengan Arithmetic Logic Unit ALU. Dalam mikrokontroller Atmega 328P memiliki spesifikasi yang berbeda dengan mikrokontroller jenis lainnya. Berikut ialah spesifikasi dari mikrokontroller Atmega 328P : 1. Memiliki kemampuan yang tinggi namun membutuhkan daya yang rendah 33 2. Memiliki 131 instruksi yang kebanyakan dijalankan dalam satu siklus clock 3. 32 x 8 bit dengan fungsi register serbaguna 4. 32 K Bytes flash memory 5. 1 K Bytes EEPROM 6. 2 K Bytes Internal SRAM 7. Siklus penulisan sebanyak 10.000 flash dan penghapusan 100.000 EEPROM 8. Dapat mengingat atau menyimpan data selama 20 tahun pada 85 oC 100 tahun pada 25 oC 9. Menggunakan komunikasi serial data SPI atau I2C, baik sebagai master maupun slave. 10. Memiliki operasi voltase sebesar 1,8 – 5,5 Gambar II.8. Deskripsi pin ATmega 328P 34 Deskripsi Mikrokontroller ATMega 328P 1. VCC: Digital Power Supply 2. GND: Ground 3. Port B: Berfungsi sebagai bidirectional port IO sebanyak 8 bit. PB6 dapat digunakan sebagai input menuju inverting amplifier dan input menuju internal clock sistem operasi. PB7 juga dapat digunakan sebagai output dari inverting amplifier. 4. Port C : Berfungsi sebagai bidirectional port IO sebanyak 7 bit. PC5…0 berfungsi sebagai output yang memiliki 5. RESET: Apabila RSTDISBL telah di program PC6 digunakan sebagai pin IO and apabila RSTDISBL tidak deprogram, maka PC6 digunakan sebagai input RESET 6. PortD PD7:0: Berfungsi sebagai bidirectional port IO sebanyak 8-bit.

7. AVCC :

Digunakan sebagai pin power supply untuk analog digital converter. Apabila menggunakan ADC, maka AVCC harus dikoneksikan dengan VCC melewati low-pass filter. Apabila tidak menggunakan ADC, AVCC juga harus dikoneksikan dengan VCC.

8. AREF:

AREF ialah pin referensi analog untuk Analog Digital Converter.

9. ADC7:6:

ADC7:6 berfungsi sebagai pin input analog menuju Analog Digital Converter. Anonim, Analog Device 35

2.5. Komunikasi Data