new version
This commit is contained in:
parent
c2e38e7de3
commit
342e88148d
90
Lock/lock_main_202407.ino
Normal file
90
Lock/lock_main_202407.ino
Normal file
|
@ -0,0 +1,90 @@
|
|||
|
||||
const int ledPin1 = 5; // Chân kết nối LED 1
|
||||
const int ledPin2 = 6; // Chân kết nối LED 2
|
||||
const int buttonPin1 = 7; // Chân kết nối nút nhấn 1
|
||||
const int buttonPin2 = 8; // Chân kết nối nút nhấn 2
|
||||
bool ledState1 = false; // Trạng thái của LED 1
|
||||
bool ledState2 = false; // Trạng thái của LED 2
|
||||
#define Light A1 // Led tro sang camera
|
||||
unsigned long previousMillis1 = 0; // Thời điểm lưu trữ cho LED 1
|
||||
unsigned long previousMillis2 = 0; // Thời điểm lưu trữ cho LED 2
|
||||
int timedelay= 5000;
|
||||
void setup() {
|
||||
pinMode(ledPin1, OUTPUT); // Thiết lập chân là OUTPUT cho LED 1
|
||||
pinMode(ledPin2, OUTPUT); // Thiết lập chân là OUTPUT cho LED 2
|
||||
pinMode(buttonPin1, INPUT_PULLUP); // Thiết lập chân là INPUT_PULLUP cho nút nhấn 1
|
||||
pinMode(buttonPin2, INPUT_PULLUP); // Thiết lập chân là INPUT_PULLUP cho nút nhấn 2
|
||||
digitalWrite(ledPin1, HIGH); // Make sure door is locked
|
||||
digitalWrite(ledPin2, HIGH); // Make sure door is locked
|
||||
digitalWrite(Light, LOW);
|
||||
Serial.begin(9600); // Bắt đầu kết nối Serial
|
||||
}
|
||||
|
||||
void loop() {
|
||||
checkserial();
|
||||
readbutton();
|
||||
checkrelay();
|
||||
|
||||
}
|
||||
void readbutton(){
|
||||
// Kiểm tra nếu nút nhấn 1 được nhấn
|
||||
if (digitalRead(buttonPin1) == LOW) {
|
||||
// Bật LED 1 và ghi lại thời điểm hiện tại
|
||||
digitalWrite(ledPin1, LOW);
|
||||
ledState1 = true;
|
||||
previousMillis1 = millis();
|
||||
}
|
||||
|
||||
// Kiểm tra nếu nút nhấn 2 được nhấn
|
||||
if (digitalRead(buttonPin2) == LOW) {
|
||||
// Bật LED 2 và ghi lại thời điểm hiện tại
|
||||
digitalWrite(ledPin2, LOW);
|
||||
ledState2 = true;
|
||||
previousMillis2 = millis();
|
||||
}
|
||||
}
|
||||
void checkserial(){
|
||||
if (Serial.available() > 0) {
|
||||
String input = Serial.readStringUntil('\n'); // Đọc từ Serial cho đến khi gặp ký tự xuống dòng
|
||||
input.trim(); // Loại bỏ các khoảng trắng và ký tự xuống dòng từ đầu và cuối chuỗi
|
||||
|
||||
if (input == "1") {
|
||||
// Bật LED 1 và ghi lại thời điểm hiện tại
|
||||
digitalWrite(ledPin1, LOW);
|
||||
Serial.println("open_1");
|
||||
ledState1 = true;
|
||||
previousMillis1 = millis();
|
||||
} else if (input == "2") {
|
||||
// Bật LED 2 và ghi lại thời điểm hiện tại
|
||||
digitalWrite(ledPin2, LOW);
|
||||
Serial.println("open_2");
|
||||
ledState2 = true;
|
||||
previousMillis2 = millis();
|
||||
}else if (input == "3"){
|
||||
digitalWrite(Light, HIGH);
|
||||
Serial.println("open_3");
|
||||
}else if (input == "4"){
|
||||
digitalWrite(Light, LOW);
|
||||
Serial.println("open_4");
|
||||
}else if (input.indexOf("tdoor")!= -1){
|
||||
int t = input.substring(5,7).toInt();
|
||||
Serial.println(t);
|
||||
if (t !=0 && t <=30){
|
||||
timedelay = t*1000;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
void checkrelay(){
|
||||
// Kiểm tra nếu LED 1 đã được bật và thời gian đã trôi qua 1000 ms (1 giây)
|
||||
if (ledState1 && (millis() - previousMillis1 >= timedelay)) {
|
||||
digitalWrite(ledPin1, HIGH); // Tắt LED 1
|
||||
ledState1 = false; // Đặt trạng thái LED 1 về false
|
||||
}
|
||||
// Kiểm tra nếu LED 2 đã được bật và thời gian đã trôi qua 1000 ms (1 giây)
|
||||
if (ledState2 && (millis() - previousMillis2 >= timedelay)) {
|
||||
digitalWrite(ledPin2, HIGH); // Tắt LED 2
|
||||
ledState2 = false; // Đặt trạng thái LED 2 về false
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user