• Tidak ada hasil yang ditemukan

BAB IV ANALISA DATA. 4.1 Tampilan Awal Aktifasi Prototype. Gambar 4.1 Simulasi tampilan awal aktifasi prototype

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV ANALISA DATA. 4.1 Tampilan Awal Aktifasi Prototype. Gambar 4.1 Simulasi tampilan awal aktifasi prototype"

Copied!
33
0
0

Teks penuh

(1)

66 BAB IV

ANALISA DATA

4.1 Tampilan Awal Aktifasi Prototype

Gambar 4.1 Simulasi tampilan awal aktifasi prototype

Gambar 4.2 Hardware tampilan awal aktifasi prototype

1 2 Switch Aktifasi Aktif Aktif Aktif Aktif Aktif 1 2 Aktif Aktif Aktif Aktif Aktif

(2)

67

Disaat pertama kali prototype ini diaktifkan yaitu dengan memindahkan selector lock switch dari “off” menjadi “on” maka akan tampil seven segment monitoring produksi, rotary lamp running, dan seven segment timer menjadi aktif, seperti yang dijelaskan pada gambar 4.1 dan 4.2 diatas. Berikut akan dijelaskan satu persatu proses aktifasi awal prototype ini.

4.1.1 Tampilan Awal Monitoring Produksi

Gambar 4.3 Simulasi tampilan awal monitoring produksi

Gambar 4.4 Hardware tampilan awal monitoring produksi

Aktif

Tampilan Nol (0)

Aktif Nol (0)

(3)

68

Tampilan awal untuk monitoring produksi ini adalah semua seven segment di-set pada angka nol (0) dan rotary lamp running aktif. Ilustrasi untuk menampilkan angka pada seven segment dapat kita lihat pada gambar dibawah ini.

Gambar 4.5 Ilustrasi menampilkan angka seven segment

Program yang dibuat pada mikrokontroler akan memberikan instruksi pada driver. Sesuai dengan instruksi tersebut driver akan mengaktifkan LED-LED pada seven segment hingga membentuk sebuah angka. Program untuk tampilan seven segment (misal angka 0) adalah

int PLAN=0; //angka plannig diset 0

long COUNTER=0; //angka counter (actual) diset 0

void digit0 () //program fungsi untuk menampilkan angka

0 pada seven segment {

digitalWrite(A, LOW); //aktifkan LED a seven segment

digitalWrite(B, LOW); //aktifkan LED b seven segment

digitalWrite(C, LOW); //aktifkan LED c seven segment

digitalWrite(D, LOW); //aktifkan LED d seven segment

digitalWrite(E, LOW); //aktifkan LED e seven segment

digitalWrite(H, LOW); //aktifkan LED f seven segment

digitalWrite(G, HIGH); //off-kan LED g seven segment

};

void showdigit (int digit) //program fungsi pemilihan angka

{

switch (digit) //pilih digit

{

case 0: //angka 0

digit0 (); //pilih digit 0

break; //keluar dari fungsi

default: break; }; }; Program Mikrokontroler Arduino Driver Seven

(4)

69

void showdigits (int number, char digit_on) //program fungsi untuk

menampilkan angka berapa dan digit keberapa pada seven segment

{

showdigit(number); //menampilkan angka sesuai request

if (digit_on&1) //jika mengaktifkan seven segment digit

pertama

{digitalWrite(ANODE4, HIGH);} //aktifkan seven segment digit pertama

delay (1); //selama 1ms

digitalWrite(ANODE4, LOW); //off-kan seven segment digit pertama

};

void loop () {

Achiev = (COUNTER*1000)/PLAN; //angka persentase 0 karena angka

planning dan angka counter 0 if (set_digit==0)

{

showdigits (PLAN,0x0F); //tampilkan seven segment planning

showdigits2 (COUNTER,0x0F); //tampilkan seven segment counter

showdigits3 (Achiev,0x0F); //tampilkan seven segment persentase

}; };

Program untuk menampilkan angka 1 ~ 9 hampir sama dengan program diatas, hanya merubah settingan angka dan set nama fungsi pada program.

Berdasarkan program diatas mikrokontroler memberikan instruksi ke driver untuk mengaktifkan seven segment. Cara kerja driver dapat kita simulasikan dalam sebuah aplikasi simulator komputer yang bernama Crocodile. Simulator ini dapat menghitung secara otomatis tegangan dan arus yang digunakan dalam suatu rangkaian, sehingga mempermudah dalam proses analisa maupun menetapkan suatu nilai tegangan, arus, maupun beban. Gambar 4.6 dibawah ini akan menjelaskan tentang cara kerja driver mengaktifkan angka nol (0) pada seven segment.

(5)

70

Gambar 4.6 Simulasi driver menampilkan angka nol (0) seven segment

Gambar 4.7 Seven segment tampil angka nol (0)

Switch pada simulator Crocodile merupakan inputan dari mikrokontroler. Untuk menampilkan angka nol (0) mikrokontroler memberi instruksi pin a ~ f dan pin common anoda aktif kecuali pin g, maka LED a ~ f aktif kecuali g. Pada gambar 4.7 dapat dilihat jika semua LED aktif kecuali LED g, maka akan terbentuk sebuah angka nol (0). Untuk menampilkan angka 1 ~ 9 prosesnya hampir sama, hanya merekayasa LED-LED yang aktif.

Pin a Pin b Pin c Pin d Pin e Pin f Pin g LED 7Seg

(6)

71

Contoh diatas merupakan proses aktifasi seven segment untuk menampilkan angka-angka pada satu segment. Dalam monitoring produksi ini terdapat 12 segment yaitu dengan 84 LED seven segment. Tentunya perlu diperhatikan supply daya untuk setiap LED tersebut sehingga tampilan angka pada seven segment tidak redup atau LED pada seven segment tidak rusak.

Seperti yang diketahui bahwa LED pada prinsipnya sama dengan diode yang merupakan sebuah semikonduktor. Tegangan forward untuk LED adalah bernilai 1,7 hingga 2,2 Volt, seperti yang terlihat pada gambar 4.8 dibawah ini. Nilai absolute maximum arus LED yaitu pada nilai 25 mA. Jika arus lebih besar dari nilai absolut maksimum maka LED tersebut akan rusak. Untuk itu diperlukan sebuah resistor sebagai pembatas arus.

Gambar 4.8 Grafik karakteristik LED

Untuk amannya LED disupply dengan arus 20 mA berarti tegangan adalah 2 Volt, sedangkan supply tegangan seven segment adalah 12 Volt, maka nilai resistor yang digunakan adalah

(7)

72

Berdasarkan hasil perhitungan diatas dapat dipilih resistor dengan resistansi 4.7 KΩ atau arus maksimum menjadi 21.28 mA. Dengan memberikan arus proportional dengan pemilihan komponen yang tepat pada suatu rangkaian tentunya dapat mengefesiensi pemakaian daya dan membuat kerja unit atau komponen menjadi optimal.

Selanjutnya ilustrasi untuk mengaktifkan rotary lamp running dapat kita lihat pada gambar dibawah ini.

Gambar 4.9 Ilustrasi aktifasi rotary lamp running

Program pada mikrokontroler memberikan instruksi pada driver untuk mengaktifkan rotary lamp running. Program tersebut adalah

ISR(TIMER1_OVF_vect) //interrupt timer1 aktif

{

if (set_digit==0) //jika angka planning tidak dalam

kondisi setting

{digitalWrite(RUN, LOW);} //aktifkan rotary lamp running

};

Gambar simulasi crocodile dibawah ini akan menjelaskan tentang cara kerja driver rotary lamp running.

Program Mikrokontroler Arduino

Driver Rotary

(8)

73

Gambar 4.10 Simulasi driver aktifasi rotary lamp running

Switch pada simulator Crocodile merupakan inputan dari mikrokontroler. Untuk mengaktifkan rotary lamp running mikrokontroler memberi instruksi pin run aktif, maka transistor driver mendapat trigger sebesar arus Ib, sehingga sebelumnya transistor pada kondisi cut-off menjadi saturasi (open to close). Untuk lebih jelasnya dapat kita lihat pada pemahasan berikut ini.

Gambar 4.11 Kondisi transistor cut-off menjadi saturasi

Prinsip kerja trasistor sebagai saklar adalah memanfaatkan kondisi cut-off dan saturasi, dimana kedua kondisi ini bisa diperoleh dengan pengaturan besarnya arus yang melalui basis transistor. Kondisi cut-off diperoleh jika arus basis dilalui oleh arus yang sangat kecil atau mendekati nol ampere, sehingga transistor bekerja seperti saklar yang terbuka. Sedangkan kondisi saturasi (jenuh) akan diperoleh jika basis transistor diberi arus cukup besar sehingga transistor mengalami saturasi dan berfungsi seperti saklar yang tertutup.

Pin run Rotary lamp running Driver Aktif Ib = 0 Open Ib Close

(9)

74

Pada saat transistor dalam kondisi saturasi (saklar tertutup) maka relay mendapat supply tegangan sehingga saklar NO (normaly open) relay berubah menjadi close (saklar tertutup). Untuk lebih jelasnya dapat kita lihat pada pembahasan berikut ini.

Gambar 4.12 Kondisi saklar relay normaly open menjadi close

Relay adalah suatu komponen elektronika yang bekerja berdasarkan elektromagnetik untuk menggerakan sejumlah kontaktor (saklar) yang tersusun. Kontaktor akan tertutup (On) atau terbuka (Off) karena efek induksi magnet yang dihasilkan kumparan (induktor) ketika dialiri arus listrik.

Saklar (switch) relay normaly open (NO) dihubungkan ke rotary lamp running sehingga pada saat relay aktif rotary lamp running juga aktif karena mendapat tegangan 24 VDC.

4.1.2 Tampilan Awal Monitoring Loss Time

Gambar 4.13 Hardware tampilan awal monitoring loss time

Open Close OFF ON Aktif Aktif Tampilan Nol (0)

(10)

75

Gambar 4.14 Simulasi tampilan awal monitoring loss time

Tampilan awal untuk monitoring loss time ini adalah timer (detik, menit, dan jam) pada kondisi nol (0), lampu indikator pemisah waktu aktif, rotary lamp dte dan buzzer non aktif. Program yang di-eksekusi adalah

int detik=0; //detik diset 0

int menit=0; //menit diset 0

int jam=0; //jam diset 0

else {

digitalWrite(LAMP_ZONE1, HIGH); //rotary lamp DTE zone1 non aktif

digitalWrite(BUZZER1, HIGH); //buzzer DTE zone1 non aktif

}; else {

digitalWrite(LAMP_ZONE2, HIGH); //rotary lamp DTE zone2 non aktif

digitalWrite(BUZZER2, HIGH); //buzzer DTE zone2 non aktif

}; else {

digitalWrite(LAMP_ZONE3, HIGH); //rotary lamp DTE zone3 non aktif

digitalWrite(BUZZER3, HIGH); //buzzer DTE zone3 non aktif

};

void loop () {

showdigits6 (detik,0x0F); //tampilkan seven segment detik

showdigits5 (menit,0x0F); //tampilkan seven segment menit

showdigits4 (jam,0x0F); //tampilkan seven segment jam

};

Tampilan Nol (0)

(11)

76

Untuk proses tampilan seven segment telah dibahas pada pembahasan sebelumnya. Dan untuk mengaktifkan lampu indikator pemisah waktu cukup dengan memberi 2 buah LED dengan tegangan 5 VDC, seperti yang terlihat pada gambar simulasi dibawah ini.

Gambar 4.15 Simulasi lampu indikator pemisah waktu

4.2 Monitoring Progres Pencapaian Produksi

Gambar 4.16 Hardware monitoring progres pencapaian produksi

1a

2a

3

1b

(12)

77

Gambar 4.17 Simulasi monitoring progres pencapaian produksi

Dalam pembahasan monitoring progres pencapaian produksi dibagi menjadi 3 bagian, yaitu setting angka planning, counter produk, dan Perhitungan (kalkulasi) pencapaian produksi.

4.2.1 Setting Angka Planning

Gambar 4.18 Simulasi setting-an angka planning

1 2 3 Digit-1 Digit-3 Digit-4 Button-UP Button-DOWN Button SET DIGIT Indikator penunjuk digit

(13)

78

Gambar 4.19 Hardware setting-an angka planning

Tersusun dari 4 digit seven segment berarti dapat menyimpan atau menampilkan angka dengan nilai terbesar adalah 9999. Deretan angka tersebut pada aplikasinya adalah untuk mencatat settingan jumlah produksi oleh tim PPC (Production Planning Control) dalam sebuah pabrik. Untuk proses atau cara kerja setting angka planning ini dibagi menjadi 3 pembahasan yaitu proses up angka planning, down angka planning, dan set digit angka planning.

a. Up angka planning

Up angka planning maksudnya adalah menambah nilai angka untuk deretan digit angka planning. Seperti yang di-ilustrasikan pada gambar dibawah ini.

Gambar 4.20 Ilustrasi up angka planning

Jika push button-UP planning ditekan berdasarkan program yang dibuat maka mikrokontroler menambah nilai angka untuk deretan seven segment planning.

Mikrokontroler Arduino Program Button UP 1 2 3 Button-UP Button-DOWN Button SET DIGIT

(14)

79

Program untuk menambah nilai angka planning tersebut adalah

int PLAN=0; //setting awal angka planning 0000

ISR(TIMER1_OVF_vect) //interrupt timer1 aktif

{

if (digitalRead(UP_PLAN)== LOW) //Jika button-UP ditekan

{PLAN++;} //Tambah 1 nilai angka planning

if (PLAN>9999) //jika angka planning besar dari 9999

{PLAN=0;} //set angka menjadi 0000

};

void loop () {

TCCR1B=0x00; //non aktifkan timer1

if (!digitalRead(UP_PLAN)== LOW)//timer aktif apabila button-UP ditekan {TCCR1B=0x03;}

{TCCR1B=0x03;}

{TCCR1B=0x03;}; //delay satu cycle button-UP

showdigits (PLAN,0x0F); //tampilkan seven segment deretan angka

planning };

Fungsi timer pada program diatas adalah sebagai pengganti program delay. Keunggulan menggunakan timer dibanding delay yaitu meminimalisir kesibukan mikrokontroler pada bagian program fungsi loop, dengan demikian dapat meminimalisir terjadinya error pada mikrokontroler.

b. Down angka planning

Down angka planning maksudnya adalah mengurangi nilai angka untuk deretan digit angka planning. Seperti yang di-ilustrasikan pada gambar dibawah ini.

Gambar 4.21 Ilustrasi down angka planning

Mikrokontroler Arduino Program Button DOWN 1 2 3

(15)

80

Jika push button-DOWN planning ditekan berdasarkan program yang dibuat maka mikrokontroler mengurangi nilai angka untuk deretan seven segment planning. Program untuk mengurangi nilai angka planning tersebut adalah

int PLAN=0; //setting awal angka planning 0000

ISR(TIMER1_OVF_vect) //interrupt timer1 aktif

{

if (digitalRead(DOWN_PLAN)== LOW)//Jika button-DOWN ditekan

{PLAN--;} //Kurangi 1 nilai angka planning

if (PLAN<0) //jika nilai angka kurang dari 0000

{PLAN=9999;} //set angka menjadi 9999

};

void loop () {

TCCR1B=0x00; //non aktifkan timer1

if (!digitalRead(DOWN_PLAN)== LOW) //timer aktif apabila button-DOWN

ditekan {TCCR1B=0x03;}

{TCCR1B=0x03;}

{TCCR1B=0x03;}; //delay satu cycle button-DOWN

showdigits (PLAN,0x0F); //tampilkan seven segment planning

};

c. Set digit angka planning

Set digit angka planning adalah sebuah tombol yang berfungsi untuk memilih digit dari deretan angka planning antara digit 1 ~ 4.

Gambar 4.22 Ilustrasi set digit angka planning

Mikrokontroler Arduino Program Button set digit 1 2 3 Button UP Indikator digit-2 Indikator digit-3 Indikator digit-4

(16)

81

Tujuan dari tombol (button) set digit ini adalah mempermudah input (memasukkan) angka yang bernilai besar seperti 10, 200, atau 3000 ke dalam deretan angka planning. Cara kerja dari tombol ini adalah menggeser digit yang dapat di-setting (UP atau DOWN). Misalnya setting UP atau DOWN angka digit-2 atau setting UP atau DOWN angka digit-3 dan seterusnya. Disamping itu, sistem ini juga dilengkapi dengan lampu indikator yang bertujuan untuk memberi tanda digit mana yang dapat di-set.

Apabila digit angka planning dalam kondisi setting (digit 2, 3, atau 4) maka deretan angka counter, angka persentase, dan rotary lamp running akan non-aktif. Hal ini bertujuan untuk memberi tanda bahwa prorotype dalam kondisi setting bukan running.

Program yang bertugas menjalankan sistem ini adalah sebagai berikut.

char set_digit=0; //setting awal pada digit-1

ISR(TIMER1_OVF_vect) //interrupt timer1 aktif

{

if (set_digit==0) //jika angka planning tidak dalam

kondisi setting {

if (digitalRead(UP_PLAN)== LOW) //jika button-UP ditekan

{PLAN++;} //tambah 1 digit-1

if (digitalRead(DOWN_PLAN)== LOW //jika button-DOWN ditekan

{PLAN--;} //kurangi 1 digit-1

digitalWrite(RUN, LOW); //aktifkan rotary lamp running

digitalWrite(SET_PULUH, HIGH); //indikator penunjuk digit-2 non aktif

digitalWrite(SET_RATUS, HIGH); //indikator penunjuk digit-3 non aktif

digitalWrite(SET_RIBU, HIGH); //indikator penunjuk digit-4 non aktif

}

if (set_digit==1) //setting angka planning digit-2

{

if (digitalRead(UP_PLAN)== LOW) //jika button-UP ditekan

{PLAN+=10;} //tambah 1 digit-2

if (digitalRead(DOWN_PLAN)== LOW)//jika button-DOWN ditekan

{PLAN-=10;} //kurangi 1 digit-2

digitalWrite(RUN, HIGH); //rotary lamp running non aktif

digitalWrite(SET_PULUH, LOW); //aktifkan indikator penunjuk digit-2

digitalWrite(SET_RATUS, HIGH); //indikator penunjuk digit-3 non aktif

digitalWrite(SET_RIBU, HIGH); //indikator penunjuk digit-4 non aktif }

(17)

82

if (set_digit==2) //setting angka planning digit-3

{

if (digitalRead(UP_PLAN)== LOW) //jika button-UP ditekan

{PLAN+=100;} //tambah 1 digit-3

if (digitalRead(DOWN_PLAN)== LOW)//jika button-DOWN ditekan

{PLAN-=100;} //kurangi 1 digit-3

digitalWrite(RUN, HIGH); //rotary lamp running non aktif

digitalWrite(SET_PULUH, HIGH); //indikator penunjuk digit-2 non aktif

digitalWrite(SET_RATUS, LOW); //aktifkan indikator penunjuk digit-3

digitalWrite(SET_RIBU, HIGH); //indikator penunjuk digit-4 non aktif

}

if (set_digit==3) //setting angka planning digit-4

{

if (digitalRead(UP_PLAN)== LOW) //jika button-UP ditekan

{PLAN+=1000;} //tambah 1 digit-4

if (digitalRead(DOWN_PLAN)== LOW)//jika button-DOWN ditekan

{PLAN-=1000;} //kurangi 1 digit-4

digitalWrite(RUN, HIGH); //rotary lamp running non aktif

digitalWrite(SET_PULUH, HIGH); //indikator penunjuk digit-2 non aktif

digitalWrite(SET_RATUS, HIGH); //indikator penunjuk digit-3 non aktif

digitalWrite(SET_RIBU, LOW); //aktifkan indikator penunjuk digit-4

}

if (digitalRead(SET)== LOW) //jika Button SET DIGIT ditekan

{set_digit++;} //pilih digit 1-4

if (set_digit>=4) //jika pilihan lebih besar dari digit4

{set_digit=0;} //setting kembali ke digit-1

};

void loop () {

if (set_digit==0) //jika angka planning tidak dalam

kondisi setting {

showdigits (PLAN,0x0F); //tampilkan seven segment planning

showdigits2 (COUNTER,0x0F); //tampilkan seven segment counter

showdigits3 (Achiev,0x0F); //tampilkan seven segment persentase

};

if (set_digit==1) //setting angka planning digit-2

{

showdigits (PLAN,0x0F); //tampilkan seven segment planning

showdigits2 (COUNTER,0x00); //non aktifkan seven segment counter

showdigits3 (Achiev,0x00); //non aktifkan seven segment

persentase };

if (set_digit==2) //setting angka planning digit-3

{

showdigits (PLAN,0x0F); //tampilkan seven segment planning

showdigits2 (COUNTER,0x00); //non aktifkan seven segment counter

showdigits3 (Achiev,0x00); //non aktifkan seven segment ersentase

};

if (set_digit==3) //setting angka planning digit-4

{

showdigits (PLAN,0x0F); //tampilkan seven segment planning

showdigits2 (COUNTER,0x00); //non aktifkan seven segment counter

showdigits3 (Achiev,0x00); //non aktifkan seven segment

persentase };

(18)

83 4.2.2 Counter Produk

Gambar 4.23 Simulasi counter produk

Gambar 4.24 Hardware counter produk

Sama halnya dengan angka planning yaitu tersusun dari 4 digit seven segment yang dapat menghitung (counter) dengan nilai 9999. Pada aplikasinya digunakan untuk menghitung jumlah produk yang dihasilkan di suatu line produksi. Cara kerja dari counter produk ini dibagi menjadi 2 bagian yaitu proses counter, dan up - down dan reset counter.

Counter-UP Counter-DOWN Counter-RESET Indikator running Sensor Produk Digit-1 Digit-3 Digit-4 Digit-2 Indikator running Sensor Produk Counter-UP Counter-DOWN Counter-RESET

(19)

84 a. Proses counter

Proses counter adalah proses penghitungan jumlah produk yang dihasilkan di suatu line produksi dengan menggunakan sebuah sensor.

Gambar 4.25 Ilustrasi proses counter

Sensor counter produk yang digunakan pada prototype ini adalah infrared sensor, seperti yang terlihat pada gambar dibawah ini.

Gambar 4.26 Cara kerja infrared sensor

Pada sensor terdapat 2 komponen yaitu transmitter dan receiver dimana transmitter berfungsi untuk memancarkan cahaya dan receiver adalah sebuah komponen yang peka terhadap cahaya. Jika cahaya yang dipancarkan transmitter terhalang oleh suatu benda maka cahaya tersebut dipantulkan kembali dan diterima oleh receiver, yang menyebabkan sistem dalam sensor aktif.

Mikrokontroler Arduino Sensor Counter Produk 1 2 3 1 Cycle 1 Cycle 1 Cycle

(20)

85

Setiap kali sensor terhalang oleh suatu benda (sensor aktif), dalam hal prototype ini adalah produk yang dihasilkan oleh tim produksi, maka mikrokontroler memerintahkan angka counter (tampilan actual produksi) bertambah satu. Dan pada kondisi ini (counter beroperasi) rotary lamp running aktif.

Program untuk sistem diatas adalah

volatile int state = 0; //variable counter

long COUNTER=0; //angka counter (actual) diset 0

ISR(TIMER1_OVF_vect) //interrupt timer1 aktif

{

if (set_digit==0) //jika angka planning tidak dalam kondisi

setting

{digitalWrite(RUN, LOW);} //lampu rotary lamp running aktif

if (set_digit==1) //setting angka planning digit-2

{digitalWrite(RUN, HIGH);} //lampu rotary lamp running non-aktif

if (set_digit==2) //setting angka planning digit-3

{digitalWrite(RUN, HIGH);} //lampu rotary lamp running non-aktif

if (set_digit==3) //setting angka planning digit-4

{digitalWrite(RUN, HIGH);} //lampu rotary lamp running non-aktif

if (COUNTER>9999) //jika angka counter besar dari 9999

{COUNTER=0;} //set angka menjadi 0000

if (COUNTER<0) //jika angka counter kecil dari 0000

{COUNTER=9999;} //set angka menjadi 9999

};

ISR(INT0_vect) //jika button Interrupt0 aktif

{

state = !state;

COUNTER++; //angka counter tambah 1

}

void loop () {

if (set_digit==0) //jika angka planning tidak dalam kondisi

setting

{showdigits2 (COUNTER,0x0F);}; //tampilkan seven segment counter

if (set_digit==1) //setting angka planning digit-2

{showdigits2 (COUNTER,0x00);}; //seven segment counter non-aktif

if (set_digit==2) //setting angka planning digit-3

{showdigits2 (COUNTER,0x00);}; //seven segment counter non-aktif

if (set_digit==3) //setting angka planning digit-4

{showdigits2 (COUNTER,0x00);}; //seven segment counter non-aktif };

(21)

86

Rotary lamp running aktif apabila angka planning tidak dalam kondisi setting. Pin untuk sensor produk terhubung ke interrupt0 mikrokontroler, yaitu bertujuan untuk selalu menambah angka counter bilangan 1, tidak bergantung seberapa lama sensor tersebut aktif atau terhalangi oleh satu produk. Berbeda jika tidak menggunakan interrupt yaitu counter terus mencacah selama sensor aktif. Misalnya sensor aktif (produk menghalangi sensor) dalam 1 menit, jika delay pada program disetting 1 detik maka counter akan menambah angka sebanyak 60 hitungan. Untuk ilustrasi dapat dilihat pada gambar dibawah ini.

Gambar 4.27 Perbandingan siklus interrupt

b. Up-Down dan reset counter

Dalam pembahasan ini difokuskan pada reset counter karena proses atau cara kerja Up-Down counter sama dengan Up-Down planning yang telah dibahas pada pembahasan sebelumnya. Reset counter maksudnya mengembalikan settingan angka counter menjadi 0 (settingan awal).

Gambar 4.28 Ilustrasi reset counter 1 Menggunakan Interrupt = +1 1 1 1 1 1 Tanpa Interrupt = +5 Mikrokontroler Arduino Program Button RESET 1 2

(22)

87

Program yang dieksekusi adalah

long COUNTER=0; //angka counter (actual) diset 0

ISR(TIMER1_OVF_vect) //interrupt timer1 aktif

{

if (set_digit==0) //jika angka planning tidak dalam

kondisi setting {

if (digitalRead(UP_COUNT)== LOW) //jika counter-UP ditekan

{COUNTER++;} //angka counter tambah 1

if (digitalRead(DOWN_COUNT)== LOW)//jika counter-DOWN ditekan

{COUNTER--;} //angka counter kurangi 1

} };

void loop () {

if (digitalRead(RESET)== LOW) //jika counter-RESET ditekan

{COUNTER=0;}; //set angka menjadi 0000

showdigits2 (COUNTER,0x0F); //tampilkan seven segment counter

};

4.2.3 Kalkulasi Pencapaian Produksi

Gambar 4.29 Simulasi perhitungan (kalkulasi) pencapaian produksi

Planning

Actual

(23)

88

Gambar 4.30 Hardware perhitungan (kalkulasi) pencapaian produksi

Gambar 4.31 Ilustrasi up angka planning

Perhitungan (kalkulasi) pencapaian produksi adalah perbandingan angka planning dengan actual (counter) untuk mendapatkan hasil persentase dari kedua angka tersebut, seperti yang terlihat pada gambar 4.31 diatas. Dalam aplikasinya sistem perhitungan diatas dimanfaatkan untuk mengukur progres pencapaian produksi, artinya jumlah produk yang dihasilkan oleh tim produksi dibagi dengan jumlah planning produksi yang disetting oleh tim PPC (Production Planning Control) sehingga didapatkan nilai persentase dari pencapaian tim produksi tersebut. Program yang digunakan dalam perhitungan ini adalah

Mikrokontroler Arduino Program Planning Actual Hasil Bagi KOMA

(24)

89

void loop () {

Achiev = (COUNTER*1000)/PLAN; //Perbandingan angka counter dengan angka planning

if (set_digit==0) //jika angka planning tidak dalam kondisi

setting {

showdigits (PLAN,0x0F); //tampilkan seven segment planning

showdigits2 (COUNTER,0x0F); //tampilkan seven segment counter showdigits3 (Achiev,0x0F); //tampilkan seven segment persentase };

};

Pada program diatas, angka counter dikali 1000 bertujuan untuk mendapatkan satu angka di belakang koma, karena type data yang digunakan untuk kalkulasi pada program ini menggunakan integer (bilangan genap). Angka 1000 sama artinya dengan 100 x 10, angka 10 penulis setting sebagai satu angka dibelakang koma pada display persentase, bertujuan agar perhitungan lebih presisi. Sebagai contoh, Angka planning = 70, Angka counter = 67, Perbandingan = (67*1000)/70 = 957. Satu angka terakhir di-setting menjadi angka di belakang koma, atau sama dengan 95,7.

4.3 Monitoring Loss Time Mesin

Gambar 4.32 Simulasi monitoring loss time mesin

1

3

(25)

90

Gambar 4.33 Hardware monitoring loss time mesin

Dalam pembahasan monitoring loss time dibagi menjadi 3 bagian, yaitu aktifasi DTE zone, alarm DTE zone, dan timer loss time.

4.3.1 Aktifasi DTE zone

Gambar 4.34 Simulasi aktifasi dte zone

3 1

2

Switch DTE Zone-1 Switch Buzzer DTE Zone-1

Switch DTE Zone-2

Switch DTE Zone-3 Switch Buzzer DTE Zone-2

Switch Buzzer DTE Zone-3

(26)

91

Gambar 4.35 Hardware aktifasi dte zone

Gambar 4.36 Ilustrasi aktifasi dte zone

Aktifasi DTE (Down Time Equipment) adalah 2 buah selector switch yang berfungsi untuk mengaktifkan rotary lamp, timer loss time dan buzzer. Untuk aplikasinya telah dijelaskan pada pembahasan sebelumnya yaitu pada gambar 3.3 dimana switch diaktifkan secara manual oleh operator produksi, yaitu bertujuan memanggil tim maintenance untuk melakukan perbaikan terhadap mesin yang terjadi abnormal. DTE ini dibagi menjadi 3 area (3 DTE Zone) bertujuan agar inditifikasi area abnormal lebih spesifik.

Switch DTE Zone

Switch Buzzer DTE Zone-3 Mikrokontroler Arduino Program Switch DTE & Buzzer

(27)

92 4.3.2 Alarm DTE zone

Gambar 4.37 Simulasi alarm dte zone

Gambar 4.38 Hardware alarm dte zone

Gambar 4.39 Ilustrasi aktifasi dte zone

Buzzer DTE Zone- 1, 2, 3

Rotary Lamp DTE Zone- 1, 2, 3 Rotary Lamp DTE Zone- 1, 2, 3 Buzzer DTE Zone- 1, 2, 3 Mikrokontroler Arduino Program Selector Switch DTE Zone

(28)

93

Alarm DTE zone adalah sebuah pemberitahuan untuk tim maintenance bahwa adanya mesin yang abnormal dalam suatu area line produksi. Alarm DTE diaktifkan oleh aktifasi DTE seperti yang dijelaskan pada pembahasan diatas, juga terbagi menjadi 3 alarm untuk 3 area di line produksi. Program untuk mengaktifkan alarm tersebut adalah

ISR(TIMER2_OVF_vect) //interrupt timer2 aktif

{

if (digitalRead(SWITCH_ZONE1)==LOW) //jika switch DTE zone1 aktif

{

if (WAKTU<=245/2) //perioda 0 ~ 0.5 detik pertama

{digitalWrite(LAMP_ZONE1, LOW);} //rotary lamp DTE zone1 aktif

if (WAKTU>=245/2) //perioda 0 ~ 0.5 detik kedua

{digitalWrite(LAMP_ZONE1, HIGH);} //rotary lamp DTE zone1 non aktif if (digitalRead(RESET_ZONE1)==LOW) //jika Reset buzzer DTE zone1 aktif

{digitalWrite(BUZZER1, HIGH);} //buzzer DTE zone1 non aktif

Else //jika Reset buzzer DTE tidak aktif

{

if (DETAK<=245) //perioda 1 detik pertama

{digitalWrite(BUZZER1, LOW);} //buzzer DTE zone1 aktif

if (DETAK>=245) //perioda 1 detik kedua

{digitalWrite(BUZZER1, HIGH);} //buzzer DTE zone1 non aktif };

}

Else //kondisi default

{

digitalWrite(LAMP_ZONE1, HIGH); //rotary lamp DTE zone1 non aktif

digitalWrite(BUZZER1, HIGH); //buzzer DTE zone1 non aktif

};

if (digitalRead(SWITCH_ZONE2)==LOW) //jika switch DTE zone2 aktif

{

if (WAKTU<=245/2) //perioda 0 ~ 0.5 detik pertama

{digitalWrite(LAMP_ZONE2, LOW);} //rotary lamp DTE zone2 aktif

if (WAKTU>=245/2) //perioda 0 ~ 0.5 detik kedua

{digitalWrite(LAMP_ZONE2, HIGH);} //rotary lamp DTE zone2 non aktif

if (digitalRead(RESET_ZONE2)==LOW) //jika Reset buzzer zone2 aktif

{digitalWrite(BUZZER2, HIGH);} //buzzer DTE zone2 non aktif

Else //jika Reset buzzer tidak aktif

{

if (DETAK<=245) //perioda 1 detik pertama

{digitalWrite(BUZZER2, LOW);} //buzzer DTE zone2 aktif

if (DETAK>=245) //perioda 1 detik kedua

{digitalWrite(BUZZER2, HIGH);} //buzzer DTE zone2 non aktif };

}

Else //kondisi default

{

digitalWrite(LAMP_ZONE2, HIGH); //rotary lamp DTE zone2 non aktif

digitalWrite(BUZZER2, HIGH); //buzzer DTE zone2 non aktif

};

if (digitalRead(SWITCH_ZONE3)==LOW) //jika switch DTE zone3 aktif

{

if (WAKTU<=245/2) //perioda 0 ~ 0.5 detik pertama

(29)

94

if (WAKTU>=245/2) //perioda 0 ~ 0.5 detik kedua

{digitalWrite(LAMP_ZONE3, HIGH);} //rotary lamp DTE zone3 non aktif

if (digitalRead(RESET_ZONE3)==LOW) //jika Reset buzzer zone3 aktif

{digitalWrite(BUZZER3, HIGH);} //buzzer DTE zone3 non aktif

Else //jika Reset buzzer tidak aktif

{

if (DETAK<=245) //perioda 1 detik pertama

{digitalWrite(BUZZER3, LOW);} //buzzer DTE zone3 aktif

if (DETAK>=245) //perioda 1 detik kedua

{digitalWrite(BUZZER3, HIGH);} //buzzer DTE zone3 non aktif };

}

Else //kondisi default

{

digitalWrite(LAMP_ZONE3, HIGH); //rotary lamp DTE zone3 non aktif

digitalWrite(BUZZER3, HIGH); //buzzer DTE zone3 non aktif

};

if (++WAKTU==245) //overflow 1 detik

{ WAKTU=0;}; //reset waktu overflow menjadi 0

if (++DETAK==245*2) //overflow 2 detik

{DETAK=0;}; //reset waktu overflow menjadi 0

};

Program diatas menjelaskan yaitu apabila kedua switch (DTE zone dan buzzer) tidak aktif maka rotary lamp dan buzzzer juga tidak aktif. Akan tetapi jika switch DTE zone diaktifkan maka rotary lamp akan berkedip dengan perioda 1 detik dan jika switch buzzer diaktifkan maka buzzer akan berbunyi dengan perioda 2 detik.

4.3.3 Timer Loss Time

Gambar 4.40 Simulasi timer loss time

Detik Menit

Jam

(30)

95

Gambar 4.41 Hardware timer loss time

Gambar 4.42 Ilustrasi timer loss time

Timer loss time ini sama halnya dengan jam digital yang difungsikan sebagai stopwatch. Pada prototype ini aplikasi timer digunakan untuk mencatat waktu loss time yang terjadi di suatu line produksi, seperti yang telah dibahas pada pembahasan perancangan software maupun hardware.

Program untuk mengaktifkan timer ini adalah

int WAKTU=0; //waktu overflow diset 0

int detik=0; //detik diset 0

int menit=0; //menit diset 0

int jam=0; //jam diset 0

ISR(TIMER2_OVF_vect) //interrupt timer2 aktif

Menit Jam Detik Mikrokontroler Arduino Program Selector Switch DTE Zone Aktif

(31)

96

{

if (digitalRead(SWITCH_ZONE1)==LOW || //jika switch DTE zone1 aktif atau digitalRead(SWITCH_ZONE2)==LOW || //jika switch DTE zone2 aktif atau digitalRead(SWITCH_ZONE3)==LOW) //jika switch DTE zone3 aktif atau {

if (++WAKTU==245) //overflow 1 detik

{

if (++detik==60) //counter detik hingga 60

{

detik=0; //reset detik menjadi 0

if(++menit==60) //counter menit hingga 60

{

menit=0; //reset menit menjadi 0

if(++jam==24) //counter jam hingga 24

{

jam=0; //reset jam menjadi 0

} } }

WAKTU=0; //reset waktu overflow menjadi 0

}; }; };

void setup() {

TIMSK2=0x01; //aktifkan interrupt global dan

timer2 overflow TCCR2B = 0x05; //prescaler dibagi 128 TCNT2 = 0; //TCNT2 dimulai dari 0 }; void loop () {

showdigits6 (detik,0x0F); //tampilkan seven segment detik

showdigits5 (menit,0x0F); //tampilkan seven segment menit

showdigits4 (jam,0x0F); //tampilkan seven segment jam

};

Timer loss time akan aktif apabila switch DTE zone-1 atau switch DTE zone-2 atau switch DTE zone-3 diaktifkan. Timer loss time ini dibuat menggunakan program interrupt timer2. Timer ini dapat direkayasa untuk mendapatkan nilai 1 detik, yaitu dengan perhitungan seperti dibawah ini:

fOC2 = fclk_I/O 2 x N x (1 + OCR2) fOC2 = 16 x 106 Hz 2 x 128 x (1 + 255) fOC2 = 244.141 Hz

(32)

97

Keterangan :

fOC2 = Frekuensi Overflow Compare_2 fclk_I/O = Frekuensi clock chip

N = Prescaler

OCR2 = Overflow Compare Register_2 ( =TCNT2)

TOC2 = Waktu Overflow Compare_2

Settingan program = Pengali yang disetting pada program untuk memperoleh hitungan 1 detik

Berdasarkan hasil pengujian terhadap akurasi timer loss time atau jam digital ini yaitu untuk 1 jam timer (01:00:00’00) pembacaan pada jam kondisi real adalah 00:59:58’50, artinya timer lebih cepat 1.5 detik yaitu setara dengan 0.0417 %.

Gambar 4.43 Pengujian waktu timer vs waktu real TOC2 = 1 fOC2 TOC2 = 1 244.141 Hz TOC2 = 4.096 ms

Set Time = TOC2 x settingan program

Set Time = 4.096 ms x 245 Set Time =

1.00352 sec

(33)

98

Jika timer ini diaktifkan selama 1 hari (24 jam) dan dibandingkan dengan waktu real maka timer ini akan lebih cepat selama 36 detik ((24x3600) x 0.0417% = 36.03 detik). Hal ini tentunya timer tidak baik digunakan dalam waktu yang lama karena mempunyai perbedaan waktu yang signifikan terhadap waktu real. Akan tetapi pada aplikasi prototype ini DTE (Down Time Equipment) maksimal yang mungkin terjadi dalam 1 hari produksi dalam suatu line paling lama adalah 2 jam. Berarti error waktu yang terjadi adalah maksimal 3.0 detik, tentunya error waktu tersebut dapat diabaikan karena nilai yang kecil.

Jadi timer loss time ini dapat digunakan sebagai penghitung waktu DTE dalam suatu line produksi, disamping pembuatan yang lebih mudah juga ditunjang oleh cost (biaya) yang lebih murah, karena tidak menggunakan komponen tambahan seperti RTC (Real Time Clock) dan sebagainya.

Selisih waktu = Waktu timer – Waktu real Selisih waktu = 01:00:00’00 – 00:59:58’50 Selisih waktu = 1.50 detik

Persentase Error = Selisih waktu Waktu 1 jam x 100 % Persentase Error = 1.50 detik 3600 detik x 100 % Persentase Error = 0.0417 %

Gambar

Gambar 4.2 Hardware tampilan awal aktifasi prototype 1 2 Switch Aktifasi Aktif Aktif Aktif Aktif Aktif 1 2 Aktif Aktif  Aktif Aktif Aktif
Gambar 4.3 Simulasi tampilan awal monitoring produksi
Gambar 4.5 Ilustrasi menampilkan angka seven segment
Gambar 4.7 Seven segment tampil angka nol (0)
+7

Referensi

Dokumen terkait

Sedang pada proses testing, langkah pertama adalah cropping image obyek yang akan dideteksi dari citra landsat, selanjutnya melakukan preproses pada data image obyek

Pada bank-bank go public menerapkan PSAK 60 penyesuaian 2012 dalam laporan keuangan adalah penting, dimana tujuan PSAK 60 adalah mengatur entitas untuk memberikan

1. Nilai koefisien variabel biaya distribusi yang positif memberikan arti bahwa biaya distribusi berpengaruh positif terhadap volume penjualan PT. Sinar Niaga

Dalam pelaksanaan aktualisasi nilai-nilai dasar profesi PNS Dosen di Jurusan Teknik Sipil Politeknik Negeri Ujung Pandang, ada beberapa kendala yang mungkin terjadi dan

&lt;#&gt; Risk Assessment (4.3.1) Penetapan Pengendalian Risiko (4.3.3) Penetapan Tujuan, Sasaran dan Program Manajemen K3 (4.4.5) Pengendalian dokumen (4.4.6) Pengendalian

(3) Kepriye gegayutan antara nilai moral ing tembang dolanan kasebut tumrap kompetensi sikape siswa ing sekolah dhasar?. Gegayutan karo underane panliten sing wis dirumusake

proses fermentasi secara immobilized cell kemungkinan ragi yang terbawa serta ke aliran produk (wash out) sangat kecil sehingga jumlah ragi di dalam kolom fermentor tidak

Asosiasi digunakan untuk mengetahui hu- bungan antara pohon damar asam dengan vegetasi lain di sekitarnya, dalam penelitian ini indeks asosiasi dengan vegetasi