• Tidak ada hasil yang ditemukan

DAFTAR PUSTAKA. Rele Gangguan Tanah (GFR) Sistem Proteksi Kota Padang. Universitas Bung. [2] Abdul Kadir BUKU PANDUAN PRAKTIS MEMPELAJARI APLIKASI

N/A
N/A
Info

Unduh

Protected

Academic year: 2021

Membagikan "DAFTAR PUSTAKA. Rele Gangguan Tanah (GFR) Sistem Proteksi Kota Padang. Universitas Bung. [2] Abdul Kadir BUKU PANDUAN PRAKTIS MEMPELAJARI APLIKASI"

Copied!
18
1
0
Menampilkan lebih banyak ( Halaman)

Teks penuh

(1)

DAFTAR PUSTAKA

[1] Rina. (2007). Perencanaan Sistem Koordinasi Rele Arus Lebih (OCR) Dengan Rele Gangguan Tanah (GFR) Sistem Proteksi Kota Padang. Universitas Bung Hatta: Skripsi S1.

[2] Abdul Kadir “BUKU PANDUAN PRAKTIS MEMPELAJARI APLIKASI MIKROKONTROLLER DAN PEMPROGRAMANNYA MENGGUNAKAN ARDUINO , Andi Publiser, 2013.

[3] Heru Dibyo Laksono, M. Nasir Sonni “PERANCANGAN DAN IMPLEMENTASI RELAY ARUS LEBIH SESAAT BERBASIS MICROCONTROLLER”. Jurusan Teknik Elektro, Univeristas Andalas Padang Sumatera Barat. September 2007.

[4] Zuhal. (1991). Dasar Tenaga Listrik. Institute Teknologi Bandung: Skripsi S1. [5] Desrizal. (2007). Studi Penentuan Karakteristik Waktu Tunda Dan Waktu

Kerja Over Current Relay (OCR) Dan Pemutus Balik Otomatis. Universitas Bung Hatta: Skripsi S1

[6] Ir. ILMANZA R.K., M.InfoTech.,17 Proyek Arduino.

[7] Massimo Banzi “GETTING STARTED WITH ARDUINO”, USA , 2009. [8] Operation and configuration instructions Datasheet vamp 40, Vamp LTD

Vaasa Finlandia

(2)

LAMPIRAN 1

Kode Program Mikrokontroler Arduino

#include <Wire.h>

#include <LiquidCrystal_I2C.h> #include <Keypad.h>

#define inSensor A0 #define relay 13 #define off HIGH

float settOCR,TMS,adcOCR; // SettOCR = Variabel setingan OCR, TMS = Time multiple setting OCR, adcOCR = variabel menyimpan hasil pembacaan sensor int type; //variabel type karakter OCR

int oc = 0; //variabel marker status OCR float k1 = 0.14; //konstanta pada N.inv float k2 = 13.5; // konstanta pada L.inv float k3 = 80; //Konstanta pada E.inv float k4 = 120; //konstanta pada L.inv

float curr = 0; // Variabel sementara perhitungan perbandingan I/Iset float expfactor1= 0.02;

float expfactor2= 2; float interval,interval2;

float amplitude_current; // Float amplitude current float effective_value; // Float effective current

(3)

unsigned long tim;

const byte ROWS = 4; //Setting Jumlah baris keypad const byte COLS = 4; //Setting Jumlah kolom Keypad

char keys[ROWS][COLS] = { // Mapping Karakter Keypad {'1','2','3','A'},

{'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','.'} };

byte rowPins[ROWS] = {0,1,2,3}; // pin pada arduino yang digunakan sebagai pin row

byte colPins[COLS] = { 4,5,6,7 }; // pin pada arduino yang digunakan sebagai pin row

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); //inisialisai Keypad

LiquidCrystal_I2C lcd(0x3f,16,4); //menuliskan alamat i2c dan type LCD void setup() {

lcd.init(); //inisialisasi LCD

lcd.backlight(); // fungsi menyalakan backlight

pinMode(inSensor,INPUT); // inisialisasi pin A0/insensor sebagai input pinMode(relay,OUTPUT); // inisialisasi pin 13/relay sebagai output

(4)

lcd.print("OCR Digital"); lcd.setCursor(0,1); lcd.print("Tugas Akhir"); lcd.setCursor (-4,2); lcd.print("Annisa Amy F"); delay(3000); initSetup(); lcd.print("OCR Start"); } void loop() { while(oc != 2){ adcOCR=getCurrent();

f (adcOCR < settOCR){ // Section ini untuk handling sensor terhadap perubahan dinamis dari sensor Ta12-100

oc = 0; interval = 0; }

if (adcOCR > settOCR && oc == 0 ){ // Section ini untuk trigger apabila terjadi overload

//interval2 = getInterval(); tim = millis();

oc = 1; }

(5)

if (oc == 1 && millis() - tim > getInterval() ){ // section ini adalah timer yang akan bekerja saat terjadi overload

digitalWrite(relay,LOW); oc = 2; } lcd.setCursor (0,0); lcd.print("ADC :"); lcd.print(adcOCR); lcd.setCursor (0,1); lcd.print("OCR :"); lcd.print(settOCR); lcd.setCursor (-4,2); lcd.print("TMS :"); lcd.print(TMS);

switch(type){ //section menuliskan type karakter dari OCR yang dipilih case 1: lcd.setCursor (7,2); lcd.print("N.Inv"); break; case 2: lcd.setCursor (7,2);

(6)

lcd.print("V.Inv"); break; case 3: lcd.setCursor (7,2); lcd.print("E.Inv"); break; case 4: lcd.setCursor (7,2); lcd.print("L.Inv"); break; } lcd.setCursor (-4,3); lcd.print("t :"); lcd.print(interval); } lcd.clear(); lcd.setCursor(0,0); lcd.print("TRIP"); lcd.setCursor(0,1); lcd.print("Press * to Reset"); lcd.setCursor (-4,2); lcd.print("Trip :");

(7)

lcd.print(interval); lcd.setCursor (-4,3); lcd.print("ADC :"); lcd.print(adcOCR);

char key = kpd.getKey(); if (key == '*'){ lcd.clear(); oc = 0; digitalWrite(relay,HIGH); } delay(200); } void initSetup(){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Enter I max"); lcd.setCursor (0,1); lcd.print("min : 0.1 "); lcd.setCursor (-4,2); lcd.print("max : 5 "); lcd.setCursor (-4,3); lcd.print("Enter : ");

(8)

settOCR = GetNumberFloat(5,0.1); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enter TMS"); lcd.setCursor (0,1); lcd.print("min : 0.1 "); lcd.setCursor (-4,2); lcd.print("max : 10 "); lcd.setCursor (-4,3); lcd.print("Enter : "); TMS = GetNumberFloat(10,0.1); lcd.clear(); lcd.setCursor(0,0); lcd.print("Enter Type"); lcd.setCursor (0,1); lcd.print("1.N.Inv"); lcd.setCursor (8,1); lcd.print("2.V.Inv"); lcd.setCursor (-4,2); lcd.print("3.E.Inv"); lcd.setCursor (4,2); lcd.print("4.L.Inv");

(9)

lcd.setCursor (-4,3); lcd.print("Enter : ");

type = GetNumberInt(4,1); }

float GetNumberFloat(float maximal,float minimal) // Fungsi pengolah data input keypad agar bisa digunakan sebagai masukan nilai integer pada variabel tertunjuk

{

float num = 0; float num2 = 0; int digit = LOW; int po = 0;

char key = kpd.getKey(); while(key != '#') { switch (key) { case NO_KEY: break;

case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': lcd.print(key);

(10)

po = po+1; num2 = (key -'0');

num2 = num2 /pow(10,po); num = num + num2;

} else{

num = num * 10 + (key - '0'); } break; case '.': lcd.print(key); digit= HIGH; break; case '*': num = 0; lcd.clear(); lcd.print("Enter:"); break; } key = kpd.getKey(); } if (num > maximal){ lcd.clear();

(11)

lcd.setCursor(0,0); lcd.print("Invalid Value"); lcd.setCursor(0,1); lcd.print("Max Value:"); lcd.print(maximal); delay(3000); lcd.clear(); num = maximal; }

else if (num < minimal){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Invalid Value"); lcd.setCursor(0,1); lcd.print("Min Value:"); lcd.print(minimal); delay(3000); lcd.clear(); num = minimal; } else { lcd.clear();

(12)

lcd.print("save data"); delay(1000); lcd.clear(); } return num; }

int GetNumberInt(int maximal,int minimal) // Fungsi pengolah data input keypad agar bisa digunakan sebagai masukan nilai integer pada variabel tertunjuk {

float num = 0; float num2 = 0; int digit = LOW; int po = 0;

char key = kpd.getKey(); while(key != '#') { switch (key) { case NO_KEY: break;

(13)

case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': lcd.print(key);

num = num * 10 + (key - '0'); break; case '*': num = 0; lcd.clear(); lcd.print("Enter:"); break; } key = kpd.getKey(); } if (num > maximal){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Invalid Value"); lcd.setCursor(0,1); lcd.print("Max Value:"); lcd.print(maximal); delay(3000); lcd.clear();

(14)

num = maximal; }

else if (num < minimal){ lcd.clear(); lcd.setCursor(0,0); lcd.print("Invalid Value"); lcd.setCursor(0,1); lcd.print("Min Value:"); lcd.print(minimal); delay(3000); lcd.clear(); num = minimal; } else { lcd.clear(); lcd.print("save data"); delay(1000); lcd.clear(); } return num; }

(15)

float getInterval(){

float num;// Fungsi Pengolah Interval delay aktifasi relay if ( adcOCR > settOCR){

switch(type){ case 1 :

curr = adcOCR / settOCR; curr = pow(curr,expfactor1); curr = curr - 1;

interval = TMS * k1; interval = interval / curr ; interval = interval * 1000; num = interval;

break; case 2 :

curr = adcOCR / settOCR; curr = curr - 1;

interval = TMS * k2; interval = interval / curr ; interval = interval * 1000; num = interval;

break; case 3:

(16)

curr = adcOCR / settOCR; curr = pow(curr,expfactor2); curr = curr - 1;

interval = TMS * k3; interval = interval / curr ; interval = interval * 1000; num = interval;

break; case 4:

curr = adcOCR / settOCR; curr = curr - 1;

interval = TMS * k4; interval = interval / curr ; interval = interval * 1000; num = interval; break; default: interval = 0; num = interval; break; } }

(17)

else if (adcOCR <= settOCR){ interval = 0; num = interval *1000; } return num; } float getCurrent() { float result;

int readValue; //value read from the sensor int maxValue = 0; // store max value here uint32_t start_time = millis();

while((millis()-start_time) < 1000) //sample for 1 Sec {

readValue = analogRead(A0); // see if you have a new maxValue if (readValue > maxValue) {

/*record the maximum sensor value*/ maxValue = readValue;

} }

(18)

result = (maxValue * 5.0)/1024.0; // Convert the digital data to a voltage result = (result/200) * 1000; //Use Ohms law to calculate current across resistor and express in mA

result = result * 0.707; // nilai I RMS dari hasil perhitungan

result = result * 1000; // ratio perbandingan 1000 : 1 pada CT sehingga nilai akhir sbb

result = result/1000; //nilai arus dalam A return result;

Referensi

Dokumen terkait

[r]

Penelitian ini bertujuan mempelajari pola ekspresi gen HbACO1 terhadap pengaruh pelukaan dan pemberian stimulan pada berbagai tahap perkembangan tanaman dengan hipotesis

Namun pemeliharaan ini akan memakan waktu pemberhentian peralatan ( alat tidak operasi ) biasanya cukup lama dan mahal karena penggantian komponen yang masih dalam kondisi baik bersama

Tampilan arsitektural seperti sayap, rosettes, dan potongan sel lebih sering muncul Kromatin nuclear kasar atau granular, seringkali tampak terbuka.. Nuclei mungkin lebih

- Bahwa pada awalnya saksi korban ANITA SUPSIANI Alias NITA yang masih berumur 12 tahun bersama dengan terdakwa BUDI DAROKO bersama dengan NURHIDAYATTULLAH Alias

Puji dan syukur disampaikan kehadirat Allah SWT yang telah melimpahkan nikmat dan rahmat-Nya sehingga penyusun dapat menyelesaikan skripsi ini yang berjudul: Pertumbuhan Tanaman

Hasil uji t tidak berpasangan tingkat kecemasan pada kelompok perlakuan dan kontrol menunjukkan nilai p&lt;0,001 yang menunjukkan bahwa terdapat perbedaan

Tugas Akhir ini dibuat untuk memenuhi salah satu syarat dalam menyelesaikan Pendidikan pada program Diploma III Program Studi Keuangan dan Perbankan Jurusan

Studi ini bertujuan untuk mengetahui pengaruh penambahan pemlastis polietilen glikol 400, dietilen glikol, dan dimetil ftalat terhadap kemampuan bioplastik

Dari hal yang telah diuraikan tersebut, diperlukan sebuah alat untuk memotong pipa diameter besar, dengan bentuk potongan lurus maupun bersudut untuk beveling

K omponen PAKET PNPM P2KP akan mengalokasikan dana stimulan yang dapat digunakan untuk keperluan membiayai kegiatan yang direncanakan secara partisipatif serta

Pada saat ini proses pendataan alumni pada STMIK U‟Budiyah Indonesia masih menggunakan sistem manual yaitu pendataannya masih menggunakan aplikasi microsoft office

Retribusi penggantian biaya cetak kartu tanda penduduk (KTP), kartu keluarga dan akta catatan sipil yang selanjutnya disebut retribusi adalah setiap pembayaran atas penggantian

Prinsip kerja relay arus lebih adalah berdasarkan adanya arus lebih yang dirasakan relay, baik disebabkan adanya gangguan hubung singkat atau overload (beban lebih) untuk

Ini menunjukkan bahwa adanya hubungan searah antara variabel Kompetensi (X) dengan Kinerja Karyawan (Y) yang di moderasi oleh variabel Motivasi (Z) pada

Oleh karena itu, proteksi cadangan (rele backup) dapat didefinisikan sebagai sistem proteksi yang dimaksudkan untuk melengkapi proteksi utama, dimana jika rele utama

Puji syukur penulis panjatkan kepada Allah SWT, atas segala Rahmat dan Karunia-Nya, sehingga penulis dapat menyelesaikan Laporan Akhir ini yang berjudul

Penurunan pressure drop sangat stabil, karena bilangan Reynolds kedua fase tidak mengalami perubahan (tetap pada kondisi laminer) sehingga parameter-parameter

Berdasarkan hasil analisis data dan pembahasan yang telah dikemukakan, maka kesimpulan yang dapat diambil dari penelitian ini adalah sebagai berikut : (1) Secara simultan

Mendapatkan setting dari koordinasi rele arus lebih dan rele gangguan ke tanah yang tepat pada sistem kelistrikan akibat penambahan beban Pabrik P2B dan generator

Untuk mencapai tujuan tersebut, Bank Indonesia menerapkan kerangka kebijakan moneter dengan inflasi sebagai sasaran utama kebijakan moneter (Inflation Targeting

Objek PPh yang dikenakan kepada Orang Pribadi adalah penghasilan, yaitu setiap tambahan kemampuan ekonomis yang diterima atau diperoleh oleh Orang Pribadi, baik yang berasal

Rumusan masalah yang dapat diajukan dalam penelitian ini adalah untuk mengetahui struktur komunitas mangrove yang meliputi jenis-jenis mangrove, keanekaragaman mangrove,