Rabu, 26 Oktober 2016

OCR 1 Fasa dengan Arduino dan Sensor Tranformer TA12-100 Part 3

Alhamdulilah akhirnya masuk juga ke liburan setelah 5 hari bekerja di shift 1, yang mana hal tersebut membuat saya males sekali untuk mengetik dan melakukan aktifitas lainnya hehehe. Ok mari kita lanjutkan tutorial OCR 1 Fasa dengan arduinonya, jika kalian belum baca postingan sebelumnya sebaiknya jangan langsung baca postingan kali ini. Nah disini saya akan melanjutkan ke alur kerja program sebagai lanjutan bahasan kemarin mengenai akuisisi data sensor dan metode perhitungan timer relay menggunakan rumus OCR. untuk memudahkan silahkan lihat flowchart dibawah ini.


Program diawali dengan inisialisasi input dan output pada bagian 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
 digitalWrite(relay,off); // mematikan relay 

Kemudian setelah semua pin terinisialisasi program akan melakukan pengecekan secara terus menerus apakah nilai OC status bernilai 2. kenapa 2? karena pada program saya menggunakan variabel OC status untuk penanda masing masing level dari Over Current yang terjadi.Berikut adalah OC status dan artinya
OC status = 0 >> keadaan normal belum ada overcurrent
OC status = 1 >> Terjadi Overcurrent namun belum melebihi limit waktunya
OC status = 2 >> Terjadi overcurrent Relay sudah trip

Bila kita perhatikan flowchart program semua step program dieksekusi  berdasar kondisi status dari OC status mulai dari Looping pertama yang melakukan pengecekan apakah OC status = 2 

Kemudian arduino melakukan pembacaan sensor arus dan membandingkannya dengan setingan OCR yang dimilikinya. oh ya setingan disimpan di variabel sett_OCR , jika ingin melakukan perubahan nilai bisa diganti nilai OCRnya , hehe sebenernya akan lebih praktis jika sett OCR bisa diubah ubah menggunakan keypad atau mungkin menggunakan serial , namun kali ini saya lebih memilih manual saja untuk menghemat memori arduinonya

Setelah pengecekan Sensor jika terjadi overcurrent maka arduino akan menyalakan timer internalnya kemudian membandingkan secara terus menerus sampai timernya lebih dari perhitungan periode OCR seperti yang kita bahas pada postingan sebelumnya.

Dan selesailah ulasan kita mengenai program kita... sebenernya program ini masih memiliki potensi lain untuk dikembangkan, seperti penambahan ethernet atau wifi untuk log secara online, atau menambahkan keypad. semua tergantung kreativitas anda dalam membuat tugas akhir hehehe.

Senin, 17 Oktober 2016

OCR 1 Fasa dengan Arduino dan Sensor Tranformer TA12-100 Part 2

Oke ..... pulang shift 3 dan belum bisa tidur juga daripada insom gak jelas mending saya lanjutin postingan kemarin tentang OCR 1 Fasa Part 1 . Jika kemarin kita sudah mengenal wiring, cara kerja sensor dan sedikit teori tentang sensor TA12-100 maka postingan kali ini saya akan membahas lebih lanjut mengenai sketch dan seluk beluk penggunaan sensor TA12-100.
Ok langsung saja kita mulai bahasan yang pertama yaitu mengenai akuisisi data dari sensor, sensor TA12-100 adalah sensor tegangan AC sementara arduino merupakan alat yang hanya membaca tegangan DC. terus gimana donk? alatnya gagal? ...hmmmm kalo kalian menyerah sudah pasti gagal, tapi berhubung ini dulu proyek yang dibayar ya saya gak menyerah donk hehehe... umtuk mengatasi perbedaan jenis tegangan yang dihasilkan bisa dilakukan dengan 2 cara, yang pertama akuisisi data secara software atau modifikasi output sensor dengan AC - DC Converter. nah kali ini saya akan menggunakan metode yang pertama, karena selain lebih hemat juga lebih praktis. Sebelum kita lanjut perhatikan gambar dibawah ini.

pada gambar diatas, kita bisa melihat bahwa satu siklus tegangan AC terdiri atas 2 kurva sinusoidal. kurva positif dan kurva negatif. pada kurva positif kita bisa melihat ada average atau tegangan rata-rata, RMS atau tegangan efektif dan Peak atau tegangan puncak. Nah untuk akuisisi data pada sensor TA 12 -100 ini kita bisa memanfaatkan tegangan puncak untuk mendapatkan nilai tegangan Rms yang bisa kita proses untuk melakukan pembacaan arus yang lewat pada sensor. oke mari kita lihat sketch untuk melakukan hal tersebut.

 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;  
     }  
   }  
   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;  
  }  

pada bagian kode diatas fungsi getcurrent memiliki alur proses sebagai berikut
1. selama 1 detik arduino akan melakukan sampling data untuk menghasilkan v max
2. setelah itu data hasil akan disimpan di variable result
3. variable result akan dikonversi dari data digital ke format tegangan 5v
4. lalu konversi tegangan adc ke arus max dalam mA
5. konversi arus max ke arus efektif
6. konversi ke arus efektif aktual
7.konversi ke arus aktual dalam Ampere

Cukup panjang juga ya alur proses akuisisi datanya hehehe....oke mari kita lanjut ke blok fungsi selanjutnya.
 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:  
  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;  
  }   
 }  
 else if (adcOCR <= settOCR){  
  interval = 0;  
  num = interval *1000;  
 }  
 return num;  
 }  

Fungsi diatas digunakan untuk melakukan perhitungan delay sebelum relay off pada arduino, nah perhitungannya menggunakan rumus yang biasa dipakai di OCR berdasarkan type karakternya yaitu
1.Normaly Inverse
2.Very Inverse
3.Extremely Inverse
4.Long Inverse

untuk penjelasaan masing masing karakter akan saya bahas lain kali... hehehe males ngalor ngidul soalnya. oke kembali ke topik. pada fungsi diatas pertama kali arduino akan mengecek apakah nilai arus sensor sudah melebihi setingan , jika ya maka arduino akan mengecek type karakter yang dipakai lalu melakukan perhitungan. Namun jika ternyata arus tidak melebihi setingan maka periode delay yang dihasilkan adalah 0. gimana sudah paham 2 blok utama program ini ? kalo sudah saya tutup pos ini ya... soalnya sudah ngantuk hehehehe kita lanjut dipos berikutnya


Minggu, 16 Oktober 2016

OCR 1 Fasa dengan Arduino dan Sensor Tranformer TA12-100 Part 1

Pada postingan kali ini saya ingin membuat sedikit tutorial membuat OCR atau Over Current Relay digital dengan memanfaatkan prinsip delay without blinking. pada dasarnya OCR yang saya buat kali ini tidak jauh berbeda dengan OCR yang ada dipasaran. OCR yang akan kita buat akan menggunakan rumus rumus dasar timer OCR.

Ok lanjut.... hal hal yang dibutuhkan

1. Arduino (mega/uno/mini/pro/due)
2.Keypad 4x4 ( Opsional)
3.LCD dengan 12C backapack
4.Relay
5.Sensor TA12-100

Lalu untuk wiringnya adalah sebagai berikut , pada contoh kali ini saya menggunakan arduino uno.


Wiring OCR digital
jika gambar kurang jelas berikut pinout dari arduinonya

Sensor Arus TA12 - 100
+ ==> Not Connect
- ==> GND arduino
S ==> A0 arduino

LCD + I2c
+ ==> +5v
- ==> GND
SDA ==> SDA arduino / A4 arduino
SCL ==> SCL arduino / A5 Arduino

Relay Module
+ ==> 5V
- ==> gnd
in ==> pin 13

 Setelah selesai dengan wiringnya saatnya kita belajar sedikit teori tentang sensor TA 100, pada dasarnya sensor TA12 100 adalah sebuah transformer nah setiap transformer pasti memiliki perbandingan antara gulungan primer dan sekundernya, sensor TA 100 memiliki perbandingan 1000: 1 sehingga arus yang akan terukur pada bagian sekundernya akan memiliki nilai 1/1000
TA12-100
 Nah dibagian output terdapat resistor yang digunakan untuk menghasilkan tegangan, INGAT TEGANGAN, karena pin analog arduino hanya dapat mengukur tegangan, lalu kenapa harus resistor? ingat kembali rumus V = I. R nah karena kita memiliki I yang berasal dari pengukuran maka untuk menghasilkan tegangan kita membutuhkan R. kemudian untuk perhitungannya kita bisa melihat dari persamaan dibawah ini.

I output : I input = 1:1000
maka Ioutput = Iinput / 1000
untuk menghasilkan tegangan maka kita kalikan dengan R bawaan sensor yaitu 200 Ohm
maka Voutnya = (Iinput/1000 )* 200

untuk sketchnya sebagai berikut

penjelasan code mungkin kita sambung di post berikutnya


Rabu, 12 Oktober 2016

IOT dan Pondasi Masa Depan Teknologi

Tags
IOT atau internet of things adalah teknologi yang menyatukan perangkat atau things melalui internet sebagai media dasarnya. kunci dasar dari IOT sendiri adalah konektivitas, karena konsep dasar iot sendiri adalah terintegrasinya suatu sistem yang stabil untuk melakukan monitoring, eksekusi dan pengolahan data demi tercapainya suatu tujuan tertentu.
IOT sendiri tidak membatasi dirinya pada ranah tertentu dalam pengaplikasiannya. IOT selalu mempunyai tempat disetiap perkembangan teknologi seperti contoh berikut ini :
IOT Agriculture


Dibidang pertanian IOT memiliki tempat tersendiri sebagai media untuk melakukan monitoring tanaman, eksekusi pengairan dan mungkin kedepannya dibidang ini IOT akan dibuat memiliki kecerdasan buatan sehingga memungkinkan seorang petani untuk membuat suatu sistem dimana pertaniannya dapat melakukan semua kegiatannya secara mandiri berdasarkan masukan masukan yang didapat dari sensor perangkat IOTnya.
IOT Medical
Di bidang kesehatan, IOT memungkinkan aplikasi yang sangat membantu melalui berbagai media yang sangat dekat dengan orang - orang saat ini seperti smartphone yang telah memiliki sensor detak jantung, gyro yang bisa mendeteksi aktivitas langkah seseorang serta kecanggihan kamera yang memungkinkan kita untuk mendeteksi penyakit secara dini.

Jadi bisa dibayangkan kan? kemungkinan yang tak terbatas dari penerapan IOT ini, dengan perkembangan teknologi kita yang terus bergerak cepat bisa dipastikan kedepannya IOT akan menjadi pondasi teknologi dunia .