From 7a208da1b85662c17851053b97ebed16337430b6 Mon Sep 17 00:00:00 2001 From: HaiMD Date: Fri, 1 Nov 2019 14:04:57 +0700 Subject: [PATCH] Firt project --- Lock/Lock.ino | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 Lock/Lock.ino diff --git a/Lock/Lock.ino b/Lock/Lock.ino new file mode 100644 index 0000000..3f9d031 --- /dev/null +++ b/Lock/Lock.ino @@ -0,0 +1,78 @@ +#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(); + // } +}