Mikrokontroler Sensor Arus TEORI DASAR

5 tipe dan mendoping fosfor untuk membuat tipe n dengan suhu antara 800 o C dan 900 o C[3]. 2. Polycrystalline silicon cells Silikon dileburkan kedalam wadah kuarsa dan dituangkan ke sebuah wadah berbentuk kubus. Melalui pemanasan dan pendinginan yang dikontrol, dan pendinginan secara merata dalam satu arah. Dengan tujuan untuk membentuk ukuran yang lebih kecil. Lempengan digergaji mengunakan gergaji. Penggerjajian menyebabkan hilangnya beberapa silikon dalam bentuk serbuk gergaji. Setelah pembersihan dan pendopingan posfor, lapisan anti reflektif dipasang[3].

2.1 Mikrokontroler

ATMega328 adalah mikrokontroller keluaran dari atmel yang mempunyai arsitektur RISC Reduce Instruction Set Computer yang dimana setiap proses eksekusi data lebih cepat dari pada arsitektur CISC Completed Instruction Set Computer. Mikrokontroller ATmega 328 memiliki arsitektur Harvard, yaitu memisahkan memori untuk kode program dan memori untuk data. Instruksi – instruksi dalam memori program dieksekusi dalam satu alur tunggal, dimana pada saat satu instruksi dikerjakan instruksi berikutnya sudah diambil dari memori program. Konsep inilah yang memungkinkan instruksi – instruksi dapat dieksekusi dalam setiap satu siklus clock. 32 x 8-bit register serba guna digunakan untuk mendukung operasi pada ALU Arithmatic Logic unit yang dapat dilakukan dalam satu siklus. 6 dari register serbaguna ini dapat digunakan sebagai 3 buah register pointer 16-bit pada mode pengalamatan tidak langsung untuk mengambil data pada ruang memori data[4]. Ketiga register pointer 16-bit ini disebut dengan register X gabungan R26 dan R27, register Y gabungan R28 dan R29 , dan register Z gabungan R30 dan R31 . Hampir semua instruksi AVR memiliki format 16-bit. Setiap Universitas Sumatera Utara 6 alamat memori program terdiri dari instruksi 16-bit atau 32-bit. Selain register serba guna di atas, terdapat register lain yang terpetakan dengan teknik memory mapped IO selebar 64 byte. Beberapa register ini digunakan untuk fungsi khusus antara lain sebagai register control Timer Counter, Interupsi, ADC, USART, SPI, EEPROM dan fungsi IO lainnya. Gambar 2.1 merupakan bentuk fisik ATmega328[4]. Gambar 2.1 Bentuk fisik ATmega328

2.2 Arduino Uno

Arduino adalah sebuah board mikrokontroller yang berbasis ATmega328. Arduino memiliki 14 pin inputoutput yang mana 6 pin dapat digunakan sebagai output PWM, 6 analog input, crystal osilator 16 MHz, koneksi USB, jack power, kepala ICSP, dan tombol reset. Arduino mampu men-support mikrokontroller; dapat dikoneksikan dengan komputer menggunakan kabel USB. Arduino Uno dapat dilihat seperti pada Gambar 2.2 [5]. Gambar 2.2 Arduino UNO Universitas Sumatera Utara 7

2.2.1 Daya

Arduino dapat diberikan power melalui koneksi USB atau power supply. Powernya dipilih secara otomatis. Power supply dapat menggunakan adaptor DC atau baterai. Adaptor dapat dikoneksikan dengan mencolok jack adaptor pada koneksi port input supply. Board arduino dapat dioperasikan menggunakan supply dari luar sebesar 6 - 20 volt. Jika supply kurang dari 7V, kadangkala pin 5V akan menyuplai kurang dari 5 volt dan board bisa menjadi tidak stabil. Jika menggunakan lebih dari 12 V, tegangan di regulator bisa menjadi sangat panas dan menyebabkan kerusakan pada board. Rekomendasi tegangan adalah 7 volt sampai 12 volt. Penjelasan pada pin power adalah sebagai berikut [5] : - Vin Tegangan input ke board arduino ketika menggunakan tegangan dari luar seperti yang disebutkan 5 volt dari koneksi USB atau tegangan yang diregulasikan. Pengguna dapat memberikan tegangan melalui pin ini, atau jika tegangan suplai menggunakan power jack, aksesnya menggunakan pin ini. - 5V Regulasi power supply digunakan untuk power mikrokontroller dan komponen lainnya pada board. 5V dapat melalui Vin menggunakan regulator pada board, atau supply oleh USB atau supply regulasi 5V lainnya. - 3V3 Suplai 3.3 volt didapat oleh FTDI chip yang ada di board. Arus maximumnya adalah 50mA. - Pin Ground Berfungsi sebagai jalur ground pada Arduino.

2.2.2 Memori

ATmega328 memiliki 32 KB flash memori untuk menyimpan kode, juga 2 KB yang digunakan untuk bootloader. ATmega328 memiliki 2 KB untuk SRAM dan 1 KB untuk EEPROM. Universitas Sumatera Utara 8

2.2.3 Input dan Output

Setiap 14 pin digital pada arduino dapat digunakan sebagai input atau output, menggunakan fungsi pinMode, digitalWrite, dan digitalRead. Inputoutput dioperasikan pada 5 volt. Setiap pin dapat menghasilkan atau menerima maximum 40 mA dan memiliki internal pull-up resistor disconnected oleh default 20-50 KOhms. Beberapa pin memiliki fungsi sebagai berikut [5] : - Serial: 0 RX dan 1 TX. Digunakan untuk menerima RX dan mengirim TX TTL data serial. Pin ini terhubung pada pin yang koresponding dari USB FTDI ke TTL chip serial. - Interupt eksternal: 2 dan 3. Pin ini dapat dikonfigurasikan untuk trigger sebuah interap pada low value, rising atau falling edge, atau perubahan nilai. - PWM: 3, 5, 6, 9, 10, dan 11. Mendukung 8-bit output PWM dengan fungsi analogWrite. - SPI: 10 SS, 11 MOSI, 12 MISO, 13 SCK. Pin ini mensuport komunikasi SPI, yang mana masih mendukung hardware, yang tidak termasuk pada bahasa arduino. - LED: 13. Ini adalah dibuat untuk koneksi LED ke digital pin 13. Ketika pin bernilai HIGH, LED hidup, ketika pin LOW, LED mati.

2.2.4 Piranti Komunikasi Arduino

Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lain. ATmega328 ini menyediakan UART TTL 5V komunikasi serial, yang tersedia pada pin digital 0 RX dan 1 TX. Sebuah ATmega16U2 pada saluran board ini komunikasi serial melalui USB dan muncul sebagai com port virtual untuk perangkat lunak pada komputer. Firmware 16U2 menggunakan USB driver standar COM dan tidak ada driver eksternal yang dibutuhkan. Perangkat lunak Arduino termasuk monitor serial yang memungkinkan data tekstual sederhana yang akan dikirim ke dan dari papan Arduino. RX dan TX LED di papan akan berkedip ketika data sedang dikirim Universitas Sumatera Utara 9 melalui chip USB-to-serial dan koneksi USB ke komputer tetapi tidak untuk komunikasi serial pada pin 0 dan 1. Sebuah perpustakaan SoftwareSerial memungkinkan untuk komunikasi serial pada setiap pin digital Uno itu. ATmega328 ini juga mendukung komunikasi I2C TWI dan SPI. Perangkat lunak Arduino termasuk perpustakaan Kawat untuk menyederhanakan penggunaan dari bus I2C.

2.2.5 Pemrograman Arduino

Arduino board merupakan perangkat yang berbasiskan mikrokontroler. Perangkat lunak software merupakan komponen yang membuat sebuah mikrokontroller dapat bekerja. Arduino board akan bekerja sesuai dengan perintah yang ada dalam perangkat lunak yang ditanamkan padanya. Bahasa pemrograman arduino adalah bahasa pemrograman yang umum digunakan untuk membuat perangkat lunak yang ditanamkan pada arduino board. Bahasa pemrograman arduino menggunakan bahasa pemrograman C sebagai dasarnya. Karena menggunakan bahasa pemrograman C sebagai dasarnya, bahasa pemrograman arduino memiliki banyak sekali kemiripan, walaupun beberapa hal telah berubah. Arduino Uno dapat diprogram menggunakan software Arduino IDE yang bersifat opensource [6].

2.2.5.1 Struktur

Semua program Arduino harus memiliki dua fungsi utama untuk bekerja dengan baik, yaitu setup dan loop. Fungsi setup dipanggil ketika sketsa dimulai. Struktur ini berguna untuk menginisialisasi variabel, mode pin, memulai menggunakan library, dan lain-lainya. Fungsi setup hanya akan berjalan sekali, yaitu setiap pertama kali board dihidupkan atau saat restart board Arduino. Fungsi loop berguna untuk melaksanakanmengeksekusi perintah program yang telah dibuat. Fungsi ini akan secara aktif mengontrol board Arduino baik membaca input atau merubah output. Fungsi loop merupakan tugas utama dari arduino board. Universitas Sumatera Utara 10

2.2.5.2 Variabel

Variabel adalah nama yang dibuat dan disimpan di dalam memori mikrokontroller. Variabel ini mempunyai nilai dan nilainya dapat diubah sewaktu- waktu pada saat program dijalankan. Variabel memiliki nilai dan tipe data tertentu[7]. - int integer Digunakan untuk menyimpan angka dalam 2 byte 16 bit. Tidak mempunyai angka desimal dan menyimpan nilai dari -32,768 dan 32,767. - long long Digunakan ketika integer tidak mencukupi lagi. Memakai 4 byte 32 bit dari memori RAM dan mempunyai entang dari -2,147,483,648 dan 2,147,483,647. - boolean boolean Variabel sederhana yang digunakan untuk menyimpan nilai TRUE benar atau FALSE salah. Sangat berguna karena hanya menggunakan 1 bit dari RAM. - float float - Digunakan untuk angka desimal floating point. Memakai 4 byte 32 bit dari RAM dan mempunyai rentang dari -3.4028235E+38 dan 3.4028235E+38. - char character Menyimpan 1 karakter menggunakan kode ASCII misalnya ‘A’ = 65. Hanya memakai 1 byte 8 bit dari RAM.

2.2.5.3 Operator Matematika

Operator yang digunakan untuk memanipulasi angka bekerja seperti matematika yang sederhana[7]. - = Membuat sesuatu menjadi sama dengan nilai yang lain misalnya: x = 10 2, x sekarang sama dengan 20. Universitas Sumatera Utara 11 - Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain misalnya: 12 10, ini akan menghasilkan angka 2. - + Penjumlahan - - Pengurangan - Perkalian - Pembagian

2.2.5.4 Operator Reasional

Digunakan untuk membandingkan nilai logika. - == Sama dengan misalnya: 12 == 10 adalah FALSE salah atau 12 == 12 adalah TRUE benar - = Tidak sama dengan misalnya: 12= 10 adalah TRUE benar atau 12 = 12 adalah FALSE salah - Lebih kecil dari misalnya: 12 10 adalah FALSE salah atau 12 12 adalah FALSE salah atau 12 14 adalah TRUE benar - Lebih besar dari misalnya: 12 10 adalah TRUE benar atau 12 12 adalah FALSE salah atau 12 14 adalah FALSE salah. Universitas Sumatera Utara 12

2.3 Sensor Arus

Pengukuran arus biasanya membutuhkan sebuah resistor shunt yaitu resistor yang dihubungkan secara seri pada beban dan mengubah aliran arus menjadi tegangan. Tegangan tersebut biasanya diumpankan ke current transformer terlebih dahulu sebelum masuk ke rangkaian pengkondisi signal [8]. Teknologi Hall effect yang diterapkan oleh Allegro menggantikan fungsi resistor shunt dan current transformer menjadi sebuah sensor dengan ukuran yang relatif jauh lebih kecil. Aliran arus listrik yang mengakibatkan medan magnet yang menginduksi bagian dynamic offset cancellation dari ACS712. bagian ini akan dikuatkan oleh amplifier dan melalui filter sebelum dikeluarkan melalui kaki 6 dan 7, modul tersebut membantu penggunaan untuk mempermudah instalasi arus ini ke dalam system. Hall effect allegro ACS712 merupakan sensor yang presisi sebagai sensor arus AC atau DC dalam pembacaan arus didalam dunia industri, otomotif, komersil dan sistem-sistem komunikasi. Pada umumnya aplikasi sensor ini biasanya digunakan untuk mengontrol motor, deteksi beban listrik, switched-mode power supplies dan proteksi beban berlebih [8]. Sensor ini memiliki pembacaan dengan ketepatan yang tinggi, karena didalamnya terdapat rangkaian low-offset linear Hall dengan satu lintasan yang terbuat dari tembaga. cara kerja sensor ini adalah arus yang dibaca mengalir melalui kabel tembaga yang terdapat didalamnya yang menghasilkan medan magnet yang di tangkap oleh integrated Hall IC dan diubah menjadi tegangan proporsional [8]. Ketelitian dalam pembacaan sensor dioptimalkan dengan cara pemasangan komponen yang ada didalamnya antara penghantar yang menghasilkan medan magnet dengan hall transducer secara berdekatan. Persisnya, tegangan proporsional yang rendah akan menstabilkan Bi CMOS Hall IC yang didalamnya yang telah dibuat untuk ketelitian yang tinggi oleh pabrik. Bentuk fisik sensor arus ACS712 diperlihatkan seperti Gambar 2.3. Adapun fungsi dari pin-pin dari sensor arus diperlihatkan pada Tabel 2.1 [8]. Universitas Sumatera Utara 13 Gambar 2.3. Bentuk fisik sensor arus Tabel 2.1 Fungsi pin Sensor Arus ACS712 Pin Sensor Fungsi IP + Terminal yang mendeteksi arus, terdapat sekring didalamnya IP - Terminal yang mendeteksi arus, terdapat sekring didalamnya GND Terminal sinyal ground Filter Terminal untuk kapasitor ekternal yang berfungsi sebagai pembatas bandwith V iout Terminal untuk keluaran sinyal analog Vcc Terminal masukan catu daya Pembacaan sensor arus, dirumuskan seperti pada Persamaan 2.1. I = analogReadanalogCurrentPin0.0048876-2.50.066 2.1

2.4 Sensor Tegangan