Lock_Arduino/Lock/Lock.ino
2019-11-01 14:04:57 +07:00

79 lines
1.5 KiB
C++

#define button A7
#define relay A5
#define time_hold 6000
int val = 0;
int i = 0;
long previousMillis;
long previousMillis2;
bool relay_stt = false;
bool relay_stt2 = false;
bool hold = true;
String input;
void setup() {
Serial.begin(9600);
pinMode(button, INPUT_PULLUP);
pinMode(relay, OUTPUT);
relay_stt = false;
}
void read_button()
{
val = analogRead(button);
//Serial.println(val);
if (val > 1010)
{
i++;
}
else if (val < 1010)
{
i = 0;
}
if (i > 500)
{
digitalWrite(relay, HIGH);
relay_stt = true;
relay_stt2 = true;
previousMillis = millis();
if (i == 503)
{
Serial.println("open");
}
}
}
void serial_read()
{
while (Serial.available() > 0) {
input = Serial.readStringUntil('\r');
Serial.println(input);
if (input == "1")
{
digitalWrite(relay, HIGH);
relay_stt = true;
previousMillis = millis();
Serial.println("open");
}
}
}
void loop()
{
//unsigned long currentMillis = millis();
read_button();
serial_read();
if ((millis() - previousMillis > time_hold) && relay_stt == true && val <1010)
{
relay_stt = false;
digitalWrite(relay, LOW);
Serial.println("close");
previousMillis = millis();
}
// if ((millis() - previousMillis2 > time_hold) && relay_stt2 == true)
// {
// relay_stt2 = false;
// digitalWrite(relay, LOW);
// Serial.println("Close door by usb");
// previousMillis2 = millis();
// }
}