MENU

Khóa số điện tử sử dụng arduino

KHÓA SỐ SỬ DỤNG ARDUINO

Khóa số hay khóa số điện tử là một loại khóa sử dụng các chữ số / ký tự hoặc cả hai để mở khóa. Dưới đây chúng ta sẽ thiết kế một mạch khóa số điện tử đơn giản bằng cách sử dụng arduino. Ở đây mã bao gồm sự kết hợp của các chữ số từ 1 đến 6 với các chữ cái A, B, C, D. Có các khóa riêng biệt để khóa và mở khóa hệ thống. Hệ thống có thể được mở khóa bằng cách nhấn nút mở khóa sau khi nhập tổ hợp chữ số chính xác. Bàn phím hex được sử dụng làm thiết bị đầu vào. Chỉ có hai hàng đầu tiên của khóa (1, 2, 3, A, 4, 5, 6, B) được sử dụng trong mạch này. A được sử dụng để khóa hệ thống và B được sử dụng để mở khóa hệ thống. Sơ đồ mạch của khóa số điện tử sử dụng arduino được hiển thị trong hình dưới đây.

Sơ đồ mạch

Các chân từ R1 đến R4 được nối với các chân từ 6 đến 9 của arduino. Các chân C1 đến C4 được nối với các chân 10 đến 13 của arduino. Chân số 3 của arduino được cấu hình là ngõ ra để phát tín hiệu điều khiển cho khóa điện từ. Chương trình và mạch được thiết kế để khóa khi tín hiệu đầu vào ở mức thấp và mở khóa khi tín hiệu đầu vào mức cao. Và nó được thể hiện thông qua Led, mạch khóa khi Led tắt và mở khi led sáng.

 

Chương trình

int p[6]; //mảng lưu giá trị mật khẩu

int c[6]; // mảng lưu trữ mã đầu vào

int n;

int a=0;

int i=0;

int lock=3;

int r1=6;

int r2=7;

int r3=8;

int r4=9;

int c1=10;

int c2=11;

int c3=12;

int c4=13;

int colm1;

int colm2;

int colm3;

int colm4;

 

void setup()

{

pinMode(r1,OUTPUT);

pinMode(r2,OUTPUT);

pinMode(r3,OUTPUT);

pinMode(r4,OUTPUT);

pinMode(c1,INPUT);

pinMode(c2,INPUT);

pinMode(c3,INPUT);

pinMode(c4,INPUT);

pinMode(lock,OUTPUT);

Serial.begin(9600); //thiết lập tốc độ truyền là 9600

digitalWrite(c1,HIGH);

digitalWrite(c2,HIGH);

digitalWrite(c3,HIGH);

digitalWrite(c4,HIGH);

digitalWrite(lock,LOW);

p[0]=1; // Cài đặt số thứ nhất của mật khẩu

p[1]=2; // Cài đặt số thứ hai của mật khẩu

p[2]=3; // Cài đặt số thứ ba của mật khẩu

p[3]=4; // Cài đặt số thứ tư của mật khẩu

p[4]=5; // Cài đặt số thứ năm của mật khẩu

p[5]=6; // Cài đặt số thứ sáu của mật khẩu

}

void loop()

{

digitalWrite(r1,LOW);

digitalWrite(r2,HIGH);

digitalWrite(r3,HIGH);

digitalWrite(r4,HIGH);

colm1=digitalRead(c1);

colm2=digitalRead(c2);

colm3=digitalRead(c3);

colm4=digitalRead(c4);

if(colm1==LOW)

{ n=1;

a=1;

Serial.println("1");

delay(200);}

else

{

if(colm2==LOW)

{ n=2;

a=1;

Serial.println("2");

delay(200);}

else

{

if(colm3==LOW)

{Serial.println("3");

n=3;

a=1;

delay(200);}

else

{

if(colm4==LOW)

{Serial.println("LOCKED");

digitalWrite(lock,LOW); //khóa

i=0;

delay(200);}

}}}

 

digitalWrite(r1,HIGH);

digitalWrite(r2,LOW);

digitalWrite(r3,HIGH);

digitalWrite(r4,HIGH);

colm1=digitalRead(c1);

colm2=digitalRead(c2);

colm3=digitalRead(c3);

colm4=digitalRead(c4);

if(colm1==LOW)

{Serial.println("4");

n=4;

a=1;

delay(200);}

else

{

if(colm2==LOW)

{Serial.println("5");

n=5;

a=1;

delay(200);}

else

{

if(colm3==LOW)

{Serial.println("6");

n=6;

a=1;

delay(200);}

else

{

if(colm4==LOW)

{

if(c[0]==p[0]&&c[1]==p[1]&&c[2]==p[2]&&c[3]==p[3]&&c[4]==p[4]&&c[5]==p[5])

{digitalWrite(lock,HIGH); //Mở khóa

Serial.println("UNLOCKED");

c[5]=9;}

else

{Serial.println("WRONG PASSWORD");}

delay(200);}

}}}

if(a==1) // kiểm tra phím a đã được nhấn chưa

{

c[i]=n; // lưu giá trị vừa nhập vào mảng c

i=i+1;

a=0;}

}

 

Mật khẩu của hệ thống là “123456” được lưu trữ trong mảng “p”. Khi nhấn phím, chúng sẽ được lưu trong mảng “c”. Khi nhấn nút mở khóa, nội dung trong cả hai mảng được so sánh với nhau và nếu chúng giống nhau thì ngõ ra sẽ được set lên mức cao. Sau đó, dữ liệu lưu trong mảng “c” sẽ được reset lại. Nhấn B để mở khóa. Nếu không đúng, bạn sẽ nhấn lại (A) để tiếp tục nhập lại lần nữa. Nhấn nút (A) ngõ ra ở mức thấp. Nút khóa (A) phải được nhấn trước mỗi lần bạn nhập mật khẩu.

Hệ thống có thể được kết nối với PC thông qua USB và các phím được nhấn có thể được xem qua cửa sổ màn hình của arduino như hình bên dưới.

 

Khi nhấn nút khóa (A), cửa sổ màn hình sẽ hiển thị LOCKED. Mã đã nhập cũng sẽ được hiển thị trên cửa sổ. Khi nhấn nút mở khóa (B), cửa sổ màn hình sẽ hiển thị UNLOCKED. Nếu mã được nhập sai, cửa sổ màn hình sẽ hiển thị WRONG PASSWORD.

Ghi chú

  • Đối với mạch trên chỉ cần nguồn từ máy tính thông qua USB

  • Số chữ trong mật khẩu có thể tăng thêm bằng cách sửa đổi chương trình.

Hỗ trợ liên kết
0979466469
0899909838
0938128290
0899909838
Khiếu nại: 0964238397
0979466469

Hotline: 0979 466 469

Thương hiệu nổi bật