#Define LVD1 11
#Define LVD1 11
#define LVD2 12
#define SW 10
#define buz 5
#define red 7
#define green 6
#define LVD2 12
#define OUTPUT_PIN 47
#define timeouts 5000
#define TO 2000
int CekLoop = 0;
void setup() {
pinMode(SW, INPUT_PULLUP);
pinMode(LVD1, INPUT_PULLUP);
pinMode(LVD2, INPUT_PULLUP);
pinMode(OUTPUT_PIN, OUTPUT);
pinMode(buz, OUTPUT);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
digitalWrite(green, HIGH);
Serial.begin(9600);
Serial1.begin(9600, SERIAL_8N1, 18, 17);
delay(200);
attachInterrupt(SW, openalb, FALLING);
}
void loop()
{
if (INT)
{
digitalWrite(buz, HIGH);
digitalWrite(green, LOW);
delay(500);
digitalWrite(buz, LOW);
digitalWrite(green, HIGH);
Serial.println("... OPEN ALB");
digitalWrite(OUTPUT_PIN, HIGH);
delay(2000);
if ((millis() - PrevMillis > timeouts) && (digitalRead(LVD1) == HIGH &&
digitalRead(LVD2) == HIGH))
{
PrevMillis = millis();
digitalWrite(OUTPUT_PIN, LOW);
blinks = false;
INT = false;
isReceiving = false;
}
}
if (blinks)
{
blink();
}
// blink=true;
Serial1.print('s');
Serial.println("sudah kirim s");
Status status = receiveSerialData(8);
if (status == VALID)
{
Serial1.print("l00AA4A4D2D4D4959");
Serial.println("sudah kirim keylogin");
Status status = receiveSerialData(1);
Serial.println(receivedData);
Serial1.print("r01");
Serial.println("sudah kirim r01");
Status status = receiveSerialData(32);
Serial.println(receivedData);
}
}
else
{
Serial.println("data tidak valid");
digitalWrite(red, HIGH);
for (int i = 0; i < 2; i++)
{
digitalWrite(buz, HIGH);
delay(1000);
digitalWrite(buz, LOW);
delay(1000);
}
digitalWrite(red, LOW);
}
}
if (id)
{
if ((digitalRead(LVD1) == LOW) || (digitalRead(LVD2) == LOW))
{
PrevMillis = millis();
}
else
{
if (millis() - PrevMillis > 4000) {
digitalWrite(OUTPUT_PIN, LOW);
digitalWrite(red, LOW);
for (int i = 0; i < 5; i++)
{
digitalWrite(green, LOW);
delay(100);
digitalWrite(green, HIGH);
delay(100);
}
isReceiving = false;
blinks = false;
id = false;
}
}
}
}
void blink()
{
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= 100)
{
previousMillis = currentMillis;
if (ledstate == LOW) {
ledstate = HIGH;
} else {
ledstate = LOW;
}
digitalWrite(green, ledstate);
}
}
else {
data += c; // Menambahkan karakter ke buffer
}
}
}
return TIMEOUT; // Jika waktu habis
}