LISTING PROGRAM
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd1(0x27, 20, 4);
LiquidCrystal_I2C lcd2(0x26, 20, 4);
int ftv = 6;
int dutycycle = 5;
int dcmono = 255;
int dcbipo = 255;
int pbcutbipo, pbcoagbipo; pbcutmono, pbcoagmono;
int dayaupmono, dayadownmono; dayaupbipo, dayadownbipo;
int relayhvmono; relayhvbipo; relaycut; relaycoag;
int dayamono = 1;
int dayabipo = 1;
int modemono = 0;
int modebipo = 0;
int frekuensimono = 400;
int frekuensibipo = 200;
void setup() {
// put your setup code here, to run once:
[Link](9600);
[Link]();
[Link]();
[Link]();
[Link]();
pinMode(A0, INPUT); //daya up bipo
pinMode(A1, INPUT); //daya down bipo
pinMode(A2, INPUT); //pb cut bipo
pinMode(A3, INPUT); //pb coag bipo
pinMode(2, INPUT); //daya up mono
pinMode(4, INPUT); //daya down mono
pinMode(5, OUTPUT); //dutycycle
pinMode(6, OUTPUT); //ftv
pinMode(7, INPUT); //pb cut mono
pinMode(8, INPUT); //pb coag mono
pinMode(9, OUTPUT); //relay
pinMode(10, OUTPUT); //relay
pinMode(11, OUTPUT); //relayhvmono
pinMode(12, OUTPUT); //relayhvbipo
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
}
void (*resetprogramcuy)(void) = 0;
void toneftvmono()
{ if (dayamono == 1) {frekuensimono = 300;}
if (dayamono == 2) {frekuensimono = 400;}
if (dayamono == 3) {frekuensimono = 700;}
if (dayamono == 4) {frekuensimono = 0;}
}
void toneftvbipo()
{ if (dayabipo == 1) {frekuensibipo = 280;}
if (dayabipo == 2) {frekuensibipo = 350;}
if (dayabipo == 3) {frekuensibipo = 600;}
if (dayabipo == 4) {frekuensibipo = 0;}
}
void dtcmono()
{ if (modemono == 1)
{dcmono = 0;
relaycut = 9;
relayhvmono = 11;}
if (modemono == 2)
{dcmono = 240;
relaycoag = 10;
relayhvmono = 11;}
if (modemono == 3)
{dcmono = 255;}
}
void dtcbipo()
{ if (modebipo == 1)
{dcbipo = 0;
relaycut = 9;
relayhvbipo = 12;}
if (modebipo == 2)
{dcbipo = 240;
relaycoag = 10;
relayhvbipo = 12;}
if (modebipo == 3)
{dcbipo = 255;}
}
void bottommono()
{
dayaupmono = digitalRead(2);
dayadownmono = digitalRead(4);
pbcutmono = digitalRead(7);
pbcoagmono = digitalRead(8);
if (pbcutmono == HIGH) {modemono = 1;}
if (pbcoagmono == HIGH) {modemono = 2;}
if (dayaupmono == HIGH) {dayamono++;}
if (dayadownmono == HIGH) {dayamono--;}
if (dayamono < 1) {dayamono = 3;}
if (dayamono > 3) {dayamono = 1;}
}
void bottombipo()
{
dayaupbipo = digitalRead(A0);
dayadownbipo = digitalRead(A1);
pbcutbipo = digitalRead(A2);
pbcoagbipo = digitalRead(A3);
if (pbcutbipo == HIGH) {modebipo = 1;}
if (pbcoagbipo == HIGH) {modebipo = 2;}
if (dayaupbipo == HIGH) {dayabipo++;}
if (dayadownbipo == HIGH) {dayabipo--;}
if (dayabipo < 1) {dayabipo = 3;}
if (dayabipo > 3) {dayabipo = 1;}
}
void safety () {
if (pbcutmono == HIGH && pbcutbipo == HIGH)
{modemono = 3;
modebipo = 3;
dayamono = 4;
dayabipo = 4;
[Link]();
[Link]();
delay(1000);
[Link](7, 1);
[Link]("ERROR");
[Link](7, 1);
[Link]("ERROR");
delay(1000);
[Link](4, 2);
[Link]("RESETTING ESU");
[Link](4, 2);
[Link]("RESETTING ESU");
delay(3000);
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
resetprogramcuy();
}
else if (pbcutmono == HIGH && pbcoagbipo == HIGH)
{
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
modemono = 3;
modebipo = 3;
dayamono = 4;
dayabipo = 4;
[Link]();
[Link]();
delay(1000);
[Link](7, 1);
[Link]("ERROR");
[Link](7, 1);
[Link]("ERROR");
delay(1000);
[Link](4, 2);
[Link]("RESETTING ESU");
[Link](4, 2);
[Link]("RESETTING ESU");
delay(3000);
resetprogramcuy();
}
else if (pbcoagmono == HIGH && pbcutbipo == HIGH)
{
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
modemono = 3;
modebipo = 3;
dayamono = 4;
dayabipo = 4;
[Link]();
[Link]();
delay(1000);
[Link] (7, 1);
[Link]("ERROR");
[Link](7, 1);
[Link]("ERROR");
delay(1000);
[Link](4, 2);
[Link]("RESETTING ESU");
[Link](4, 2);
[Link]("RESETTING ESU");
delay(3000);
resetprogramcuy();
}
else if (pbcoagmono == HIGH && pbcoagbipo == HIGH)
{
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
modemono = 3;
modebipo = 3;
dayamono = 4;
dayabipo = 4;
[Link]();
[Link]();
delay(1000);
[Link](7, 1);
[Link]("ERROR");
[Link](7, 1);
[Link]("ERROR");
delay(1000);
[Link](4, 2);
[Link]("RESETTING ESU");
[Link](4, 2);
[Link]("RESETTING ESU");
delay(3000);
resetprogramcuy();
}
else if (pbcutmono == HIGH && pbcoagmono == HIGH)
{
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
modemono = 3;
modebipo = 3;
dayamono = 4;
dayabipo = 4;
[Link]();
[Link]();
delay(1000);
[Link](7, 1);
[Link]("ERROR");
[Link](7, 1);
[Link]("ERROR");
delay(1000);
[Link](4, 2);
[Link]("RESETTING ESU");
[Link](4, 2);
[Link]("RESETTING ESU");
delay(3000);
resetprogramcuy();
}
else if (pbcutbipo == HIGH && pbcoagbipo == HIGH)
{
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
modemono = 3;
modebipo = 3;
dayamono = 4;
dayabipo = 4;
[Link]();
[Link]();
delay(1000);
[Link](7, 1);
[Link]("ERROR");
[Link](7, 1);
[Link]("ERROR");
delay(1000);
[Link](4, 2);
[Link]("RESETTING ESU");
[Link](4, 2);
[Link]("RESETTING ESU");
delay(3000);
resetprogramcuy();
}
}
void tampilanmono()
{[Link](0, 0);
[Link]("ELECTROSURGERY UNIT");
[Link](5, 1);
[Link]("MONOPOLAR");
if (modemono == 1)
{ [Link](2, 2);
[Link](">CUTTING");
[Link](12, 2);
[Link](" COAG");}
if (modemono == 2)
{ [Link](2, 2);
[Link](" CUTTING");
[Link](12, 2);
[Link](">COAG");}
if (dayamono == 1)
{ [Link](1, 3);
[Link](">LOW");
[Link](6, 3);
[Link](" MEDIUM");
[Link](14, 3);
[Link](" HIGH");}
if (dayamono == 2)
{ [Link](1, 3);
[Link](" LOW");
[Link](6, 3);
[Link](">MEDIUM");
[Link](14, 3);
[Link](" HIGH");}
if (dayamono == 3)
{ [Link](1, 3);
[Link](" LOW");
[Link](6, 3);
[Link](" MEDIUM");
[Link](14, 3);
[Link](">HIGH");}
}
void tampilanbipo() {
[Link](0, 0);
[Link]("ELECTROSURGERY UNIT");
[Link](6, 1);
[Link]("BIPOLAR");
if (modebipo == 1)
{ [Link](2, 2);
[Link](">CUTTING");
[Link](12, 2);
[Link](" COAG");}
if (modebipo == 2)
{ [Link](2, 2);
[Link](" CUTTING");
[Link](12, 2);
[Link](">COAG");}
if (dayabipo == 1) {
[Link](1, 3);
[Link](">LOW");
[Link](6, 3);
[Link](" MEDIUM");
[Link](14, 3);
[Link](" HIGH");}
if (dayabipo == 2) {
[Link](1, 3);
[Link](" LOW");
[Link](6, 3);
[Link](">MEDIUM");
[Link](14, 3);
[Link](" HIGH");}
if (dayabipo == 3) {
[Link](1, 3);
[Link](" LOW");
[Link](6, 3);
[Link](" MEDIUM");
[Link](14, 3);
[Link](">HIGH");}
}
void loop() {
// put your main code here, to run repeatedly:
tampilanmono();
tampilanbipo();
toneftvmono();
toneftvbipo();
dtcmono();
dtcbipo();
bottommono();
bottombipo();
safety();
[Link](dcmono);
if (pbcutmono == HIGH && modemono == 1)
{ tone(ftv, frekuensimono);
analogWrite(dutycycle, dcmono);
digitalWrite(relaycut, LOW);
digitalWrite(relaycoag, HIGH);
digitalWrite (relayhvmono, LOW);
digitalWrite (relayhvbipo, HIGH);
}
else if (pbcoagmono == HIGH && modemono == 2)
{ tone(ftv, frekuensimono);
analogWrite(dutycycle, dcmono);
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, LOW);
digitalWrite (relayhvmono, LOW);
digitalWrite (relayhvbipo, HIGH);
}
else if (pbcutbipo == HIGH && modebipo == 1)
{ tone(ftv, frekuensibipo);
analogWrite(dutycycle, dcbipo);
digitalWrite(relaycut, LOW);
digitalWrite(relaycoag, HIGH);
digitalWrite (relayhvmono, HIGH);
digitalWrite (relayhvbipo, LOW);
}
else if (pbcoagbipo == HIGH && modebipo == 2)
{ tone(ftv, frekuensibipo);
analogWrite(dutycycle, dcbipo);
digitalWrite(relaycut, HIGH);
digitalWrite(relaycoag, LOW);
digitalWrite (relayhvmono, HIGH);
digitalWrite (relayhvbipo, LOW);
}
else {
noTone(ftv);
analogWrite(dutycycle, 255);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(relayhvmono, HIGH);
digitalWrite(relayhvbipo, HIGH);
}
}
/*analogWrite(3,240);//coagulant
analogWrite(3,191);//Blend3
analogWrite(3,153);//Blend2
analogWrite(3,128);//Blend1
analogWrite(3,255);//cutting
analogWrite(3,1);*/