DOSEN PENGAMPU :
WINDA WIRASA, ST, MT.
DISUSUN OLEH :
DILA NURKHALIFAH (P2.31.38.1.17.017)
DWI LIANA AFANTI (P2.31.38.1.17.018)
ELVITA (P2.31.38.1.17.019)
ERWIN DHANUASMORO (P2.31.38.1.17.020)
FANDY ERI DEWANTARA (P2.31.38.1.17.021)
FAUZI RAMADANI (P2.31.38.1.17.022)
HANIF MUSTHOFA AKHYAR (P2.31.38.1.17.023)
KOMANG PANDE NEOBAGUS (P2.31.38.1.17.024)
1
III. PEMBAHASAN
1. Daftar Komponen
a. Power Supply
No Nama komponen Jumlah
1. Trafo step down 1
2. Dioda 4
3. Kapasitor non polar 100 Nf 4
4. Kapasitor polar 2200 µF 25 volt 2
5. Transistor 78xx 2
6. Transistor 79xx 2
b. HTT
No Nama komponen Jumlah
1. Trafo step down 110 V 60 Watt 1
2. Dioda bridge 30 A 1
3. Kapasitor polar 220 µF 160 V 1
4. Kapasitor polar 470 µF 250 V 2
5. Relay 5V 3
6. Dioda 3
7. Transistor NPN D400 3
8. Resistor
c. Komponen tambahan
No Nama komponen Jumlah
1. LCD 1
2. LED 1
3. Push button 6
4. Buzzer 1
5. Arduino uno 1
6. Saklar 1
2
2. Blok diagram
3. Wiring Diagram
a. Rangkaian PSU
3
b. Rangkaian HTT
c. Rangkaian tombol
4
4. Listing program
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define ON 1
#define OFF 0
#define BUZZon digitalWrite(buzzer, HIGH)
#define BUZZoff digitalWrite(buzzer, LOW)
int up, down, enter, charge, discharge, expose;
int Rcharge = 8, Rdischarge = 9, Rexpose = 10, buzzer = 11;
int detector = A1;
int s1=2,s2=3,s3=4,s4=5,s5=6,s6=7;
LiquidCrystal_I2C lcd(0x27,16,2);
int menu, mainmenu, setKV, nilai;
int nilaiKV[6]={20,40,60,80,100,110};
void setup()
{
lcd.init();
lcd. backlight();
pinMode(s1, INPUT_PULLUP);
pinMode(s2, INPUT_PULLUP);
pinMode(s3, INPUT_PULLUP);
pinMode(s4, INPUT_PULLUP);
pinMode(s5, INPUT_PULLUP);
pinMode(s6, INPUT_PULLUP);
pinMode(Rcharge, OUTPUT);
pinMode(Rdischarge, OUTPUT);
pinMode(Rexpose, OUTPUT);
pinMode(buzzer, OUTPUT);
alloff();
BUZZoff;
lcd.setCursor(2,0);
5
lcd.print("CONDENSATOR");
lcd.setCursor(3,1);
lcd.print("DISCHARGE");
delay(3000);
lcd.clear();
lcd.setCursor(3,0);
lcd.print(" BISMANIAA ");
lcd.setCursor(0,1);
lcd.print("----- 2017 ---- ");
delay(3000);
lcd.clear();
}
void readBUTTON()
{
up = digitalRead(s1);
down = digitalRead(s2);
enter = digitalRead(s3);
charge = digitalRead(s4);
discharge = digitalRead(s5);
expose = digitalRead(s6);
}
int readADC()
{
int x = analogRead(detector);
float y = (float)x*135/1024;
int readADC = y;
return (int)y;
}
void loop()
{
6
readBUTTON();
if (mainmenu == 0)
{
lcd.setCursor(0,0);
lcd.print("Setting kV: ");
if (up == LOW)
{
BUZZon;
setKV++;
if (setKV>5) setKV = 5;
delay(200);
}
if (down == LOW)
{
BUZZon;
setKV--;
if (setKV<0) setKV = 0;
delay(200);
}
lcd.setCursor(12,1);
lcd.print(nilaiKV[setKV]);
lcd.print("kV ");
if (enter == LOW)
{
BUZZon;
lcd.clear();
mainmenu = 13;
delay(150);
}
BUZZoff;
}
if (mainmenu == 13)
7
{
lcd.setCursor(0,0);
lcd.print("Charge >> Next ");
lcd.setCursor(0,1);
lcd.print("");
if (charge == LOW)
{
BUZZon;
lcd.clear();
mainmenu = 1;
delay(150);
BUZZoff;
}
}
if (mainmenu == 1)
{
lcd.setCursor(0,0);
lcd.print("Proses Pengisian");
lcd.setCursor(0,1);
lcd.print("Kapasitor ");
if (readADC()<100)
lcd.print("0");
if (readADC()<10)
lcd.print("0");
8
mainmenu = 2;
lcd.clear();
}
else digitalWrite(Rcharge, HIGH);
if (discharge == LOW)
{
digitalWrite(Rcharge, LOW);
mainmenu = 11;
lcd.clear();
delay(150);
BUZZoff;
}
}
if (mainmenu == 2)
{
lcd.setCursor(0,0);
lcd.print("Ready for Expose");
lcd.setCursor(0,1);
lcd.print(">>>>>>>>>>");
if (readADC()<100)
lcd.print("0");
if (readADC()<10)
lcd.print("0");
9
}
else digitalWrite(Rcharge, HIGH);
if (expose == LOW)
{
mainmenu = 3;
lcd.clear();
}
if (discharge == LOW)
{
BUZZon;
digitalWrite(Rcharge, LOW);
mainmenu = 11;
delay(150);
lcd.clear();
}
}
if (mainmenu == 3)
{
BUZZon;
digitalWrite(Rexpose, HIGH);
digitalWrite(Rcharge, LOW);
lcd.setCursor(0,0);
lcd.print("----EXPOSED-----");
lcd.setCursor(0,1);
lcd.print("<<<<<<<<>>>>>>>>");
delay(4000);
BUZZoff;
delay(2000);
digitalWrite(Rexpose, LOW);
delay(500);
digitalWrite(Rdischarge, HIGH);
delay(4000);
10
digitalWrite(Rdischarge, LOW);
mainmenu = 0;
alloff();
lcd.clear();
}
if (mainmenu == 11)
{
BUZZoff;
lcd.setCursor(0,0);
lcd.print("Proses Discharge");
lcd.setCursor(0,1);
lcd.print("<<<<<<<<<<");
if (readADC()<100)
lcd.print("0");
if (readADC()<10)
lcd.print("0");
lcd.print(readADC());
lcd.print("kV ");
if (readADC()< 1)
{
digitalWrite(Rdischarge, LOW);
mainmenu = 0;
lcd.clear();
BUZZon;
delay(100);
BUZZoff;
delay(50);
BUZZon;
delay(100);
BUZZoff;
delay(50);
11
}
else digitalWrite(Rdischarge, HIGH);
delay(1000);
}
}
void alloff()
{
digitalWrite(Rcharge, LOW);
digitalWrite(Rdischarge, LOW);
digitalWrite(Rexpose, LOW);
digitalWrite(buzzer, HIGH);
}
12