#include <muTimer.h>
muTimer myTimer1 = muTimer();
int memory_timer_1;
void setup() {
pinMode(2, INPUT); //limit switch 1
pinMode(3, INPUT); //limit switch 2
pinMode(4, INPUT); //dip switch 1
pinMode(5, INPUT); // dip switch 2
pinMode(6, OUTPUT); //lock 1
pinMode(7, OUTPUT); // lampu lock 1
pinMode(8, OUTPUT); // lock 2
pinMode(9, OUTPUT); // lampu TL
pinMode(10, OUTPUT); //lampu uv
}
void loop()
{
int sensorValue = digitalRead(2);
int sensorValue2 = digitalRead(3);
int dipswitch1Value = digitalRead(4);
int dipswitch2Value = digitalRead(5);
int timer_value;
if (sensorValue2 == HIGH && sensorValue == LOW || memory_timer_1 == HIGH) {
digitalWrite(8, LOW);
}
else
{
digitalWrite(8, HIGH);
}
if (sensorValue == HIGH && sensorValue2 == LOW || memory_timer_1 == HIGH) {
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}
else
{
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
}
//Program tambahan untuk lampu TL
if (sensorValue2 == HIGH & sensorValue == LOW ) {
digitalWrite(9, LOW);
}
else if (sensorValue2 == LOW & sensorValue == HIGH ) {
digitalWrite(9, LOW);
}
else
{
digitalWrite(9, HIGH);
}
if (dipswitch1Value ==HIGH && dipswitch2Value == LOW)
{
timer_value=10000;
}
else if (dipswitch1Value == LOW && dipswitch2Value == HIGH)
{
timer_value=15000;
}
else if (dipswitch1Value ==HIGH && dipswitch2Value == HIGH)
{
timer_value=20000;
}
else
{
timer_value=5000;
}
if (myTimer1.delayOn(sensorValue==HIGH&sensorValue2==HIGH, timer_value))
{
digitalWrite(10, HIGH);//this variable use HIGH if you use relay active low, but if you use relay active high u must use variable LOW
memory_timer_1=LOW;
}
else if (sensorValue==LOW|sensorValue2==LOW)
{
digitalWrite(10, HIGH); //this variable use HIGH if you use relay active low, but if you use relay active high u must use variable LOW
memory_timer_1=LOW;
}
else
{
digitalWrite(10, LOW); //this variable use LOW if you use relay active low, but if you use relay active high u must use variable HIGH
memory_timer_1=HIGH;
}
}