BAB II LANDASAN TEORI Sebelum membuat sebuah alat, diperlukan landasan-landasan teori dari setiap komponen yang akan dipergunakan sehingga dapat diketahui karakteristik dari alat tersebut serta prinsip dari alat yang dipergunakan sehingga menghasilkan keluaran sesuai yang diharapkan. Pada bab ini menjelaskan teori komponen yang digunakan pada rangkaian. Namun teori tersebut tidak dijelaskan secara keseluruhan, melainkan hanya sebagian kecil yang berkaitan dengan rangkaian yang dibuat. Di bawah ini merupakan penjelasan dari beberapa komponen yang dipergunakan dalam membuat “ Perancangan Sistem Data Logger Untuk Mesin Produksi Berbasis Arduino ”. 2.1 Perekam Data Perekam data atau juga disebut datalogger merupakan suatu instrumen elektronik yang memiliki kemampuan untuk membaca besaran pada alam (misal temperatur, kecepatan angin, kadar gas, arus dan tegangan listrik, dsb) yang dibaca oleh sensor elektronik maupun elektromekanik, kemudian menuliskan nilai besaran yang terbaca tersebut ke dalam memori. Perekaman dapat dilakukan 6 http://digilib.mercubuana.ac.id/ 7 dalam rentang waktu tertentu, baik harian, bulanan, bahkan tahunan dengan waktu sampling yang dapat diatur [4]. Secara umum perekam data sederhana terdiri dari mikrokontroller, sensor dan media penyimpanan. Mikrokontroller merupakan bagian dari perekam data yang mengatur komunikasi antar perangkat. Sensor berfungsi untuk memberikan inputan ke mikrokontroler untuk melakukan perekaman. Gambar 2.1 Bentuk Fisik Micro SD dan Modul SD Card[5] https://www.tindie.com/products/mmm999/micro-sd-card-reader-module-forarduino/ ( Diakses pada 2 Desember 2016 ). Gambar diatas menunjukan bentuk fisik dari modul SD card yang biasa dipakai dan memori micro SD beserta SD adapter yang akan dipakai sebagai media penyimpanan data. Alat akan dirancang agar memiliki fitur data logger, yaitu fitur yang berfungsi sebagai penyimpanan semua data-data kondisi dari tahun,bulan tanggal jam menit dan detik. Kemudian Data ini nantinya akan tersimpan didalam media penyimpanan yaitu memory Card. Pada perancangan ini jenis memory Card yang akan digunakan adalah micro SD (Secure Digital) dengan kapasitas 4 GB. http://digilib.mercubuana.ac.id/ 8 2.2 Mikrokontroller ATmega328P Menurut Heri Susanto,dkk,(2013), Mikrokontroller adalah sebuah sistem mikroprosesor dimana didalamnya sudah terdapat CPU, Read Only Memory (ROM), Random Accsess Memory (RAM), Input-Output, timer, interrupt, Clock dan peralatan internal lainnya yang sudah saling terhubung dan terorganisasi dengan baik dalam satu chip yang siap dipakai. Gambar 2.2 Struktur Pin Mikrokontroller ATmega328P http://www.learningaboutelectronics.com/Articles/Atmega328-pinout.php ( Diakses pada 2 Desember 2016 ). Mikrokontroller ATmega328P memberikan beberapa fitur diantaranya 8 Kb system programmable flash dengan kemampuan read while write, 1 KB EEPROM, 2 KB SRAM, 8 Kb system programmable flash dengan kemampuan read while write, 23 general purpose I/O, 32 register serba guna, 3 buah timer/counter, Interrupt internal maupun eksternal, serial untuk pemograman dengan menggunakan USART, peripheral interface (SPI), two wire interface (I2C), 6 port PWM (Pulse Width Modulation), 6 port 10 bit ADC dan Watchdog Timer dengan osilator internal. http://digilib.mercubuana.ac.id/ 9 2.3 Arduino Uno R3 Arduino Uno R3 merupakan board sistem minimum berbasis mikrokontroller ATmega328P jenis AVR. Arduino Uno R3 memiliki 14 digital input/output (6 diantaranya dapat digunakan untuk PWM output), 6 analog input, 16 MHz osilator kristal, USB connection, power jack, ICSP header dan tombol reset. Gambar 2.3 Board Arduino Uno https://www.arduino.cc/en/uploads/Hacking/Uno-front-DFU-reset.png ( Diakses pada 4 Desember 2016 ). Gambar diatas merupakan Bentuk board Arduino Uno R3 tampak atas secara kelistrikan boar ini memiliki karekteristik sebagai berikut: • Operating voltage 5 VDC. • Rekomendasi input voltage 7-12 VDC • Batas input voltage 6-20 VDC. • Memiliki 14 buah input/output digital. • Memiliki 6 buah input analog. • DC Current setiap I/O Pin sebesar 40mA. • DC Current untuk 3.3V Pin sebesar 50mA. • Flash memory 32 KB. • SRAM sebesar 2 KB. http://digilib.mercubuana.ac.id/ 10 • EEPROM sebesar 1 KB. • 11 Clock Speed 16 MHz. Selain itu Boar Arduino UNO juga memiliki fitur-fitur sebagai berikut: ∑ Pin out 1.0: ditambah pin SDA dan SCL yang dekat dengan pin AREF dan dua pin baru lainnya yang diletakkan dekat dengan pin RESET, IOREF yang memungkinkan shield-shield untuk menyesuaikan tegangan yang disediakan dari board. Untuk ke depannya, shield akan dijadikan kompatibel/cocok dengan board yang menggunakan AVR yang beroperasi dengan tegangan 5V dan dengan Arduino Due yang beroperasi dengan tegangan 3.3V. Yang ke-dua ini merupakan sebuah pin yang tak terhubung, yang disediakan untuk tujuan kedepannya. ∑ Sirkit RESET yang lebih kuat. ∑ Atmega16U2 menggantikan Atmega8U2. 2.3.1 Sumber Daya Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal. Sumber daya dipilih secara otomatis. Untuk sumber daya eksternal (non-USB) dapat berasal baik dari adaptor AC-DC atau baterai. Adaptor ini dapat dihubungkan dengan memasukkan 2.1mm jack DC ke colokan listrik board. Baterai dapat dimasukkan pada pin header Gnd dan Vin dari konektor DAYA. Board dapat beroperasi pada pasokan eksternal dari 6 sampai 20 volt. Jika menggunakan tegangan kurang dari 6 volt mungkin tidak akan stabil. Jika menggunakan lebih dari 12V, regulator tegangan bisa panas dan merusak papan. Rentang yang dianjurkan adalah 7 sampai 12 volt. Pin listrik yang tersedia adalah sebagai berikut: http://digilib.mercubuana.ac.id/ 11 ∑ VIN. Input tegangan ke board Arduino ketika menggunakan sumber daya eksternal. Dapat menyediakan tegangan melalui pin ini, atau, jika ingin memasok tegangan melalui colokan listrik, gunakan pin ini. ∑ 5V. Pin ini merupakan output 5V yang telah diatur oleh regulator papan Arduino. Board dapat diaktifkan dengan daya, baik dari colokan listrik DC (7 - 12V), konektor USB (5V), atau pin VIN board (7-12V). Jika memasukan tegangan melalui pin 5V atau 3.3V secara langsung (tanpa melewati regulator) dapat merusak papan Arduino. ∑ Tegangan pada pin 3V3. 3.3Volt dihasilkan oleh regulator onon-board. Menyediakan arus maksimum 50 mA. ∑ GND. Pin Ground. ∑ IOREF. Pin ini di papan Arduino memberikan tegangan referensi ketika mikrokontroler beroperasi. Sebuah shield yang dikonfigurasi dengan benar dapat membaca pin tegangan IOREF sehingga dapat memilih sumber daya yang tepat agar dapat bekerja dengan 5V atau 3.3V. 2.3.2 Memori MikrokontrolerATmega2560 memiliki 256 KB flash memory untuk menyimpan kode (8 KB bootloader), 8 KB SRAM dan 4 KB EEPROM (yang dapat dibaca dan ditulis dengan library EEPROM). 2.3.3 Input dan Output Masing-masing dari 14 pin digital Uno dapat digunakan sebagai input atau output, menggunakan fungsi pinMode(), digitalWrite(), dan digitalRead(). Mereka 10 beroperasi pada tegangan 5 volt. Setiap pin dapat memberikan atau http://digilib.mercubuana.ac.id/ 12 menerima maksimum 40 mA dan memiliki resistor pull-up internal (terputus secara default) dari 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi spesial: ∑ Serial: pin 0 (RX) dan 1 (TX) Digunakan untuk menerima (RX) dan mengirimkan (TX) data serial TTL. Pin ini terhubung dengan pin ATmega8U2 USB-to-Serial TTL. ∑ Eksternal Interupsi: Pin 2 dan 3 dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah (low value), rising atau falling edge, atau perubahan nilai. Lihat fungsi attachInterrupt() untuk rinciannya. ∑ PWM: Pin 3, 5, 6, 9, 10, dan 11 Menyediakan 8-bit PWM dengan fungsi analogWrite(). ∑ SPI: pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) mendukung komunikasi SPI dengan menggunakan perpustakaan SPI. ∑ LED: pin 13. Built-in LED terhubung ke pin digital 13. LED akan menyala ketika diberi nilai HIGH. Arduino Uno memiliki 6 input analog, berlabel A0 sampai A5, yang masing-masing menyediakan resolusi 10 bit (yaitu 1024 nilai yang berbeda). Secara default mereka mengukur dari ground sampai 5 volt, perubahan tegangan maksimal menggunakan pin AREF dan fungsi analogReference(). Selain itu, beberapa pin tersebut memiliki spesialisasi fungsi, yaitu TWI: pin A4 atau SDA dan A5 atau SCL mendukung komunikasi TWI menggunakan perpustakaan Wire. Ada beberapa pin lainnya yang tertulis di board: ∑ AREF. Tegangan referensi untuk input analog. Dapat digunakan dengan fungsi analogReference(). http://digilib.mercubuana.ac.id/ 13 ∑ Reset. Gunakan LOW untuk me-reset mikrokontroler. Biasanya digunakan untuk menambahkan tombol reset. 2.3.4 Komunikasi Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan computer, Arduino lain, atau mikrokontroler lainnya. ATMega328 menyediakan UART TTL (5V) komunikasi serial, yang tersedia pada pin digital 0 (Rx) dan 1 (Tx). Pada ATMega16U2 saluran komunikasi serial melalui USB dan muncul sebagai com port virtual untuk perangkat lunak pada computer. Firmware 16U2 menggunakan standar driver USB COM, dan tidak ada driver eksternal diperlukan. Namun, pada Windows, diperlukan file .inf . Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data tekstual sederhana akan dikirim ke dan dari papan Arduino. Rx dan Tx LED di papan akan berkedip ketika data sedang dikirim melalui chip USB-to-Serial dan koneksi USB computer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). ATMega328 juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat lunak Arduino termasuk Library Wire.h berfungsi menyederhanakan penggunaan bus I2C,sedangkan untuk komunikasi SPIdigunakan library SPI.h. 2.3.5 Perlindungan Arus USB USB Arduino Uno memiliki polyfuse reset yang melindungi port pada USB computer dari arus pendek atau berlebih. Meskipun kebanyakan computer memberikan perlindungan internal sendiri, sekering menyediakan lapisan perlindungan tambahan. Jika lebih dari 500 mA, sekering otomatis bekerja. http://digilib.mercubuana.ac.id/ 14 2.3.6 Pemrograman Arduino memiliki basic bahasa program menggunakan bahasa C++ yang telah dipermudah melalui library. Arduino mengunakan software processing yang digunakan untuk menulis program kedalam arduino. Processing sendiri merupakan penggabungan antara bahasa C++ dan Java. Gambar 2.4 Contoh Program Arduino 16.9 Gambar diatas merupakan screenshot tampilan software Arduino1.6.9 sebelum diberi perintah program. Struktur perintah pada arduino secara garis besar terdiri dari 2 (dua) bagian yaitu void setup dan void loop. Void setup berisi perintah yang akan dieksekusi hanya satu kali sejak arduino dihidupkan sedangkan void loop berisi perintah yang akan dieksekusi berulang-ulang saat arduino dinyalakan. Software ini dapat di-install di berbagai operating sistem http://digilib.mercubuana.ac.id/ 15 (OS) seperti: LINUX, Mac OS dan Windows. Secara garis besar software ini memiliki tiga bagian utama yaitu : 1. Edittor program, untuk menulis dan mengedit program dalam bahasa processing. Listing pada arduino disebut sketch. 2. Compiler, modul yang berfungsi mengubah bahasa processing (kode program) kedalam kode biner karena kode biner adalah satu-satunya bahasa program yang dipahami oleh microcontroler. 3. Uploader, modul yang berfungsi memasukan kode biner ke memori mikrokontroler. 2.3.7 Otomatis Software Reset Tombol reset Arduino Uno dirancang untuk menjalankan program yang tersimpan di dalam mikrokontroler dari awal. Tombol reset terhubung ke ATMega328 melalui kapasitor 100 nf. Setelah tombol reset ditekan cukup lama untuk me-reset chip, software IDE Arduino dapat juga berfungsi untuk mengupload program dengan hanya menekan tombol upload pada software IDE Arduino. 2.4 Arduino Data Logging Shield Data logger shield merupakan shield yang digunakan untuk melakukan penyimpanan data (data logging) pada SD Card, dimana shield ini kompetibel dengan Arduino Uno, Duemilanove, Diecimila, Leonardo, Mega R3/Mega ADK. Selain modul SD Card Shield ini juga terpasang modul RTC (Real Time Clock) yang digunakan untuk mengetahui waktu penyimpanan data dilakukan dan baterai jenis LIR2032 yang berfungsi sebagai backup power RTC agar tetap menyimpan data waktu tanpa supply dari luar. Dua buah LED yang dilengkapi dengan resisitor penahan arus http://digilib.mercubuana.ac.id/ 16 disediakan pada board ini untuk keperluan indikator tambahan. Lubang- lubang yang terdapat pada board adalah area prototype untuk memudahkan dalam penambahan komponen sebagai input atau output. Gambar 2.5 Board Data Logging Shield http://arduino-home.webnode.cz/news/dil-9-data-logger-shield-vynikajici/ ( Diakses pada 4 Desember 2016 ). Gambar diatas menunjukan tampilan board datalogger shield tampak atas. Board ini dibuat menyerupai breadboard sehingga dapat memudahkan dalam meletakkan sensor, resistor, transistor, IC, atau komponen lain di saat sedang membuat sebuah perangkat. Fitur yang dimiliki board ini diantaranya adalah sebagai berikut : ∑ Modul kartu SD bekerja dengan format FAT16 dan FAT32. ∑ Tegangan kerja 3.3v. ∑ Memiliki Real time clock (RTC) DS1307. ∑ Memiliki area prototype. ∑ Batray untuk menjaga memori RTC. http://digilib.mercubuana.ac.id/ 17 2.4.1 Bagian – Bagian Arduino Data Logging Shield Untuk lebih memahami hardware yang dimiliki shield ini,maka akan dijelaskan bagian bagianya sebagai berikut: ∑ Kiri Atas. Pada kiri atas terdapat real time clock (RTC) yang memiliki kristal, dan baterai cadangan hingga 7 tahun. ∑ Kiri Tengah. Sebuah 3.3V regulator on-board ,perisai ini menjaga agar tegangan tameng bagian 3V berjalan lancar. ∑ Tengah Atas. Pemegang kartu SD besar dapat digunakan sebagai penyimpanan SD / MMC sampai 32G,untuk menggunakanya cukup dorong atau tarik kartu ke dalam slot ini. ∑ Kanan Atas. - Dua LED dengan pull –up resistor,menghubungkan kabel dari pin digital Arduino ke L1 atau L2 untuk menggunakan LED1 atau LED2. - Tombol reset akan me-reset seluruh Arduino, berguna untuk ketika Anda ingin me-restart papan Arduino. 2.4.2 Terminal Tambahan. Shield Arduino ini memiliki terminal tambahan yang berada di sekelilingnya,diantaranya adalah sebagai berikut: ∑ 3V - ini adalah 3V keluaran dari regulator. Ini adalah teganan referensi 3.3V berkualitas baik yang dapat digunakanuntuk sensor dengan arus hingga 50mA. ∑ SQ - ini adalah squarewave ,merupakan keluaran opsional dari RTC. Untuk menggaktifkanya harus dengan mengirim perintah tertentu Pembuat RTC biasanya menggunakannya untuk pengujian. http://digilib.mercubuana.ac.id/ 18 ∑ WP - ini adalah Write Protect pada kartu SD, terminal ini dapat digunakan untuk mendeteksi posisi write-protect pada kartu . ∑ CD - ini adalah Card Detect pada kartu SD. Ketika kartu SD dimasukan pin ini akan terhubung ke Ground.. ∑ CS - ini adalah Chip Select pin untuk kartu SD. Jika perlu mengunakan pin lain sebagai CS karena pin 10 bermasalah, terminal ini dapat disolder ke pin digital lain pada arduino. ∑ L2 dan L1 - ini adalah LED tambahan. Untuk menggunakanya adalah dengan menghubungkan pin ini ke pin digital arduino,terminal ini memiliki pull-up 470 ohm resistor secara seri. 2.4.3 Real Time clock RTC (Real time clock) DS1307 adalah jam elektronik berupa chip yang dapat menghitung waktu (mulai detik hingga tahun) dengan akurat dan menjaga/menyimpan data waktu tersebut secara real time. Karena jam tersebut bekerja real time, maka setelah proses hitung waktu dilakukan output datanya langsung disimpan atau dikirim ke device lain melalui sistem antarmuka. Secara umum Chip RTC dapat dijumpai pada setiap motherboard PC yang biasanya terletak didekat chip BIOS. Semua komputer menggunakan RTC untuk menyimpan informasi jam terkini dari komputer yang bersangkutan. RTC dilengkapi dengan baterai sebagai pensuplai daya pada chip, sehingga jam akan tetap up-to-date walaupun komputer dimatikan. RTC dinilai cukup akurat sebagai pewaktu (timer) karena menggunakan osilator kristal http://digilib.mercubuana.ac.id/ 19 Gambar 2.6 SkemaKomunikasi Serial I2C RTC DS1307 https://pccontrol.wordpress.com/2011/06/27/pengetahuan-dasarpemrograman-rtc-ds1307dengan-bahasa-c-codevision-untuk-avr/( Diakses pada 5 Desember 2016 ). Gambar diatas menujukan skema komunikasi RTC dengan mikrokontroler melalui protokol komunikasi I2C. Komunikasi ini umumnya digunakan untuk proses inisialisasi RTC, penyetingan data waktu dan pengambilan data waktu berupa tahun,bulan,tanggal,jam,menit,dan detik. . Sedangkan daftar pin RTC DS1307 adalah sebagai berikut: 1. VCC – Primary Power Supply. 2. X1, X2 – 32.768 kHz Crystal Connection. 3. VBAT – +3V Battery Input. 4. GND – Ground. 5. SDA – Serial Data. http://digilib.mercubuana.ac.id/ 20 2.4.4 Modul SD Card Didalam mendesain suatu sistem yang mampu menyimpan data,proses penyimpanan dan ukuran data yang dapat disimpan menjadi suatu hal yang penting. Semakin banyak data yang ingin diambil akan semakin besar media penyimpanan yang dibutuhkan. Untuk menyimpan data,dapat digunakan beberapa media diantaranya flashdisk,kartu SD, hardisk dan lainsebagainya. Untuk sistem penyimpanan data logger,kartu SD lebih sesuai karena memiliki ukuran yang kecil sehingga dapat memperkecil ruang yang dibutuhkan untuk menyimpan data. Pada sistem data logger yang dibuat,tidak semua kartu SD dapat digunakan sebagai penyimpan data. Beberapa kartu SD memiliki arsitektur dan tegangan input yang berbeda. Untuk kartu SD yang ingin digunakan harus sesuai dengan sistem yang diranncang,salah satunya adalah tegangan minimum agar dapat beoperasi. Didalam perkembanganya kartu SD terus mengalami perubahan dalam segi bentuk dan jumlah data yang dapat disimpan. Kecenderunganya adalah memoryCard memiliki ukuran yang kecil akan tetapi memiliki ukuran penyimpanan yang semakin besar. Modul SD Card dapat berfungsi untuk membaca dan menulis data ke/ dari SD Card. Modul ini memiliki interfacing menggunakan komunikasi SPI. Tegangan kerja dari modul ini dapat menggunakan level tegangan 3.3 V DC atau 5V DC, yang dapat digunakan salah satunya. http://digilib.mercubuana.ac.id/ 21 Gambar 2.7 Letak Modul kartu SD Pada Data Logger Shield Lingkaran merah pada gambar diatas menujukan modul kartu SD yang terletak di dataloger shield. Modul ini cocok digunakan untuk membuat pirantipiranti yang membutuhkan suatu penyimpanan bersifat non-volatile (data akan tetap tersimpan walaupun tidak mendapatkan supply tegangan) dengan kapasitas besar, hingga mencapai Gigabyte. Modul ini banyak digunakan untuk pembuatan perekaman medis, perekam dan playback musik, data logger dan juga untuk pembuatan basis data. http://digilib.mercubuana.ac.id/