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 những chữ số / ký tự hoặc cả hai để mở khóa. Dưới đây tất cả chúng ta sẽ phong cách thiết kế một mạch khóa số điện tử đơn thuần bằng cách sử dụng arduino. Ở đây mã gồm có sự tích hợp của những chữ số từ 1 đến 6 với những vần âm A, B, C, D. Có những khóa riêng không liên quan gì đến nhau để khóa và mở khóa mạng lưới hệ thống. Hệ thống hoàn toàn có thể được mở khóa bằng cách nhấn nút mở khóa sau khi nhập tổng hợp chữ số đúng chuẩn. Bàn phím hex được sử dụng làm thiết bị nguồn vào. Chỉ có hai hàng tiên phong 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 mạng lưới hệ thống và B được sử dụng để mở khóa mạng lưới 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 những chân từ 6 đến 9 của arduino. Các chân C1 đến C4 được nối với những chân 10 đến 13 của arduino. Chân số 3 của arduino được thông số kỹ thuật là ngõ ra để phát tín hiệu điều khiển và tinh chỉnh cho khóa điện từ. Chương trình và mạch được phong cách thiết kế để khóa khi tín hiệu nguồn vào ở mức thấp và mở khóa khi tín hiệu đầu vào mức cao. Và nó được bộc lộ trải 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 tàng 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 vận 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 ] và và c [ 1 ] = = p [ 1 ] và và c [ 2 ] = = p [ 2 ] và và c [ 3 ] = = p [ 3 ] và và c [ 4 ] = = p [ 4 ] và và 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 mạng lưới hệ thống là “ 123456 ” được tàng 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 đó, tài 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 ) để liên 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 hoàn toàn có thể được liên kết với PC trải qua USB và những phím được nhấn hoàn toàn có thể được xem qua hành lang cửa số màn hình hiển thị 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 trải qua USB
  • Số chữ trong mật khẩu hoàn toàn có thể tăng thêm bằng cách sửa đổi chương trình .
Alternate Text Gọi ngay