Tải bản đầy đủ (.pdf) (33 trang)

Đồ án thiết kế hệ thống nhúng, học viện công nghệ bưu chính viễn thông (1)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.09 MB, 33 trang )

BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA KỸ THUẬT ĐIỆN TỬ 1

Nhóm 10
ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG
ĐỀ TÀI: Cửa khoá số điện tử

Giảng viên hướng dẫn: TS. Nguyễn Ngọc Minh
Nhóm sinh viên thực hiện:
Nguyễn Văn Xuân – B17DCDT219
Phạm Hoàng Linh – B17DCDT111
Bùi Minh Tuấn – B17DCDT199
Nguyễn Bá Vũ – B17DCDT215

Hà Nội, 06-2021

1


MỤC LỤC
Lời nói đầu .......................................................................................................................................... 3
CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI ................................................................................................. 4
1.

Giới thiệu ............................................................................................................................................4

2.

Chức năng của hệ thống ....................................................................................................................4


3.

Hoạt động của hệ thống.....................................................................................................................5

CHƯƠNG II: THIẾT KẾ HỆ THỐNG ........................................................................................... 6
1.

Sơ đồ khối tổng thể hệ thống ............................................................................................................6

2.

Các khối chức năng của hệ thống.....................................................................................................7

2.1.

Khối điều khiển ..............................................................................................................................7

2.1.1.

Một vài thông số của Arduino UNO R3...............................................................................7

2.1.2.

Các chân năng lượng .............................................................................................................8

2.1.3.

Bộ nhớ .....................................................................................................................................8

2.1.4.


Các cổng vào/ra ......................................................................................................................9

2.2.

Khối phím nhấn ...........................................................................................................................10

3.1.

Khối hiển thị .................................................................................................................................14

3.1.1.

Giới thiệu ..............................................................................................................................14

3.1.2.

Các thanh ghi .......................................................................................................................17

3.2.

Thiết bị chấp hành .......................................................................................................................18

3.2.1.

Giới thiệu ..............................................................................................................................18

3.2.2.

Lắp mạch ..............................................................................................................................19


3.2.3.

Lập trình điều khiển ............................................................................................................20

CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG .................................................................................. 21
1.

Nguyên lý hoạt động ........................................................................................................................21

2.

Lưu đồ thuật tốn ............................................................................................................................23

3.

Mã nguồn của chương trình ...........................................................................................................23

CHƯƠNG IV: KẾT LUẬN ............................................................................................................. 32
TÀI LIỆU THAM KHẢO................................................................................................................ 32
2


Lời nói đầu
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng
ta đã và đang một ngày thay đổi, văn minh và hiện đại hơn. Kỹ thuật vi điều khiển đã
được phát triển và ứng dụng rộng rãi trên thế giới trong rất nhiều lĩnh vực khác nhau,
khắc phục được những vấn đề về cơ khí. Ứng dụng kỹ thuật vi điều khiển là sự phát triển
cần thiết của một xã hội hiện đại.
Điện tử đang trở thành một ngành khoa học đa nhiệm vụ. Nó đã đáp ứng được

những nhu cầu cần thiết trong hoạt động đời sống hằng ngày.Một trong những nhu cầu
đó là vấn đề bảo mật. Mỗi một cá nhân, một gia đình, hay một cơ quan đều có các vấn đề
cần được bảo mật. Và để bảo mật được thì phải có một hệ thống bảo mật. Trước nhu cầu
đó khóa số bằng điện tử là một giải pháp dùng để bảo mật rất hiệu quả và tiện lợi.
Tuy chúng em đã cố gắng thực hiện đồ án tốt nhất có thể, nhưng vẫn khơng tránh
được thiếu sót, mong Thầy góp ý và thơng cảm cho những thiếu sót của chúng em.
Chúng em xin chân thành cảm ơn Thầy!!!

3


CHƯƠNG I: GIỚI THIỆU ĐỀ TÀI
1. Giới thiệu
Khóa số nói chung là loại khóa để bảo vệ thiết bị, tài sản….mà khi muốn mở ra thì
phải tác động đến số mà ta cài đặt trước. có 2 loại khóa số cơ bản hiện nay trên thị
trường có đó là khóa số cơ khí và khóa số điện tử.
- Khóa số cơ khí : khi mở khóa hay khóa lại thì ta phải xoay các vịng số trên
khóa sao cho một dãy các số nào đó cùng hợp với nhau thì mở được khóa
- Khóa số điện tử : khi mở khóa thì ta phải nhập đúng mật khẩu là một dãy
các số liên tiếp nhau, nếu nhập đúng các dãy số đó thì mở được khóa.
Ở đây chúng em xin giới thiệu về đề tài về khóa điện tử với một số yêu cầu cơ bản
của một thiết bị khóa thơng dụng:
- Tính an tồn: phải có chức năng bảo mật cao.
- Dễ sử dụng.
- Có thể thay đổi bảo mật khi cần thiết.
- Hệ thống vận hành ổn định, tuổi thọ cao.

2. Chức năng của hệ thống
Hệ thống gồm một chuổi mã số từ 0 đến 9, và độ dài mật mã khơng q 10 số chỉ
có người được phân quyền sử dụng mới biết được.

Có hệ thống phím gồm 16 phím, ngồi 10 số mật khẩu có các phím chức năng:
phím Enter, phím Đổi mã,..
Hệ thống hiển thị trực quan qua LCD 16x2A, có đèn chiếu sáng khi điều kiện mơi
trường tối.
Có chức năng thay đổi mật khẩu khi cần thiết, và mật khẩu mặc định ban đầu là
123456.
4


3. Hoạt động của hệ thống
 Bước Cài đặt - Bạn sẽ được yêu cầu nhập 5 chữ số làm mật khẩu khi khởi
động đặt lại thiết bị ban đầu. 5 chữ số đầu tiên bạn nhập khi cài đặt sẽ được
lưu dưới dạng SET PASSWORD. Thiết bị sẽ bị KHĨA sau khi cài đặt
PASSWORD.
 Phím A - để mở khóa thiết bị. Nhập mật khẩu chính xác và nhấn A để mở
khóa.
 Phím D - để khóa bất cứ lúc nào. Chỉ cần nhấn D và bạn sẽ thấy thơng báo
LOCKED.
 Phím B - để thay đổi mật khẩu. Nhập mật khẩu chính xác và nhấn A. Bạn sẽ
thấy thông báo yêu cầu ENTER MẬT KHẨU MỚI. Nhập 4 chữ số làm mật
khẩu. 4 chữ số đầu tiên bạn nhập sẽ được SAVED là PASSWORD MỚI.
 Phím C – bạn cần nhấn phím C để bắt đầu nhập mật khẩu.

5


CHƯƠNG II: THIẾT KẾ HỆ THỐNG
1. Sơ đồ khối tổng thể hệ thống

 Khối hiển thị thông tin : dùng để hiển thị thông tin (lấy từ khối điều khiển).

 Khối phím nhấn : nhập thơng tin gửi đến khối điều khiển.
 Khối điều khiển tiếp nhận các thông tin, và xử lý các thơng tin đó. Xuất tín hiệu
để điều khiển các thiết bị khác.
 Thiết bị chấp hành ở đây có thể là động cơ, có thể là rơle để điều khiển thiết bị
chính là cửa hoặc khóa.

6


2. Các khối chức năng của hệ thống
2.1. Khối điều khiển
Chức năng: Đóng vai trị đầu não của hệ thống,tiếp nhận tín hiệu từ bàn phím và
so sánh mã, hiển thị trên LCD.Từ đó đưa các tín hiệu điều khiển đến cho khối mạch
báo động tương ứng.
Sử dụng Arduino UNO R3

Arduino UNO R3

2.1.1.

Một vài thông số của Arduino UNO R3

Vi điều khiển
Điện áp hoạt động
Tần số hoạt động
Dòng tiêu thụ
Điện áp vào khuyên dùng
Điện áp vào giới hạn
Số chân Digital I/O
Số chân Analog

Dòng tối đa trên mỗi chân
I/O
Dòng ra tối đa (5V)
Dòng ra tối đa (3.3V)
Bộ nhớ flash
SRAM
EEPROM

ATmega328 họ 8bit
5V DC (chỉ được cấp qua cổng USB)
16 MHz
khoảng 30mA
7-12V DC
6-20V DC
14 (6 chân hardware PWM)
6 (độ phân giải 10bit)
30 mA
500 mA
50 mA
32 KB (ATmega328) với 0.5KB dùng
bởi bootloader
2 KB (ATmega328)
1 KB (ATmega328)
7


2.1.2.

Các chân năng lượng


 GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn dùng các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối
với nhau.
 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương
của nguồn với chân này và cực âm của nguồn với chân GND.
 IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở
chân này. Và dĩ nhiên nó ln là 5V. Mặc dù vậy bạn không được lấy nguồn 5V
từ chân này để sử dụng bởi chức năng của nó khơng phải là cấp nguồn.
 RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với
việc chân RESET được nối với GND qua 1 điện trở 10KΩ.

2.1.3.

Bộ nhớ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được
dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này
đâu.
 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo
khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ
nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ
mà bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory):
đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của
mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên
SRAM.


8


2.1.4.

Các cổng vào/ra

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2
mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân
đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328
(mặc định thì các điện trở này khơng được kết nối).

Một số chân digital có các chức năng đặc biệt như sau:
 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive
– RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác
thông qua 2 chân này. Kết nối bluetooth thường thấy nói nơm na chính là kết
nối Serial không dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng
2 chân này nếu không cần thiết
 Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ
phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm
analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở
chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những
chân khác.

9


 Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngồi các
chức năng thơng thường, 4 chân này còn dùng để truyền phát dữ liệu bằng

giao thức SPI với các thiết bị khác.
 LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm
nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân
số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0
→ 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board,
bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu
bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện
áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.

Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI
với các thiết bị khác.

2.2. Khối phím nhấn
Các nút nhấn trên bàn phím được sắp xếp theo hàng và cột. Bàn phím 3X4 có 4 hàng
và 3 cột và bàn phím 4X4 có 4 hàng và 4 cột:

10


Bên dưới mỗi phím là một màng cơng tắc. Mỗi công tắc trong một hàng được kết
nối với các công tắc khác trong hàng bằng một đường dẫn điện bên dưới miếng đệm.
Mỗi công tắc trong một cột được kết nối theo cùng một cách – một bên của công tắc
được kết nối với tất cả các công tắc khác trong cột đó bằng một đường dẫn điện. Mỗi
hàng và cột được đưa ra một chân duy nhất, có tất cả 8 chân đối với bàn phím 4X4:

Khi một nút nhấn được nhấn sẽ đóng cơng tắc giữa một cột và đường dẫn điện
một hàng, cho phép dòng điện chạy giữa một chân cột và một chân hàng.
Sơ đồ bàn phím 4X4 cho thấy cách các hàng và cột được kết nối:


11


Arduino phát hiện nút nhấn nào được nhấn bằng cách phát hiện chân hàng và cột mà
được kết nối với nút nhấn.
Điều này xảy ra trong bốn bước:
1. Đầu tiên, khi khơng có nút nào được nhấn, tất cả các chân cột được giữ ở mức CAO
và tất cả các chân hàng được giữ ở mức THẤP:

2. Khi một nút được nhấn, chân cột được kéo xuống THẤP vì vậy dòng điện từ cột mức
CAO chảy sang chân hàng mức THẤP:

3. Arduino bây giờ biết nút nhấn nào nằm trong cột, vì vậy bây giờ nó chỉ cần tìm hàng
của nút nhấn đó. Nó thực hiện điều này bằng cách chuyển đổi từng chân của hàng
CAO, đồng thời đọc tất cả các chân cột để phát hiện chân cột nào trở về CAO:
12


4. Khi chân cột trở lại CAO, Arduino đã tìm thấy chân hàng được kết nối với nút nhấn
đó:

Từ sơ đồ trên, bạn có thể thấy rằng sự kết hợp của hàng 2 và cột 2 có nghĩa là chỉ có thể
nút nhấn số 5 đã được nhấn.
13


Sử dụng thư viện Keypad của Mark Stanley và Alexander Brevig

3.1. Khối hiển thị
3.1.1.


Giới thiệu

LCD (Liquid Crystals Display ) - Màn hình tinh thể lỏng, cơ sở vật lý để LCD có thể
hiển thị được thơng tin chính là do đặc tính của vật liệu chế tạo nên LCD, tức là Liquid
Crystals (thạch anh lỏng). Các tinh thể bình thường chúng ở thể rắn với sự định hướng
đặc biệt.

14


Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong
lớp vỏ và chỉ đưa các chân giao tiếp cần thiết. Các chân này được đánh số thứ tự và đặt
tên như bên dưới :

Module I2C LCD 16×2

15


LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng
nhiều chân trên vi điều khiển.
Module I2C LCD ra đời và giải quyết vấn để này cho bạn.
Thay vì phải sử dụng 6 chân vi điều khiển để kết nối với LCD 16x2 (RS, EN, D7, D6,
D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.
Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16x2, LCD 20x4, ...)
và tương thích với hầu hết các vi điều khiển hiện nay..

Thông số kĩ thuật i2c
 Điện áp hoạt động: 2.5-6V DC.



Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).



Giao tiếp: I2C.



Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân
A0/A1/A2).



Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.



Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

16


3.1.2.

Các thanh ghi

Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR
(InstructorRegister) và thanh ghi dữ liệu DR (Data Register).

Thanh ghi IR : khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra
bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó.
Thanh ghi DR : Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM
DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM này
gởi ra cho MPU (ở chế độ đọc).
+ Vùng Ram hiển thị DDRAM(Display Data RAM):
Đây là vùng RAM dùng để hiển thị, nghĩa là ứng với một địa chỉ của RAM là một ơ kí tự
trên màn hình và khi bạn ghi vào vùng RAM này một mã 8 bit, LCD sẽ hiển thị tại vị trí
tương ứng trên màn hình một kí tự có mã 8 bit mà chúng ta đã cung cấp.Vùng RAM này
có 80x8 bit nhớ, nghĩa là chứa được 80 kí tự mã 8 bit.
+ Vùng RAM chứa kí tự đồ họa CGRAM (Character Generator RAM)
Nhà sản xuất dành vùng có địa chỉ byte cao là 0000 để người dùng có thể tạo các mẫu kí
tự đồ họa riêng. Tuy nhiên dung lượng vùng này rất hạn chế: Ta chỉ có thể tạo 8 kí tự
loại 5x8 điểm ảnh, hoặc 4 kí tự loại 5x10 điểm ảnh. Địa chỉ tử 40h đến 7Fh.

17


3.2. Thiết bị chấp hành
3.2.1.

Giới thiệu

 Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông thường
cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung
PPM) với góc quay nằm trong khoảng bất kì từ 0o - 180o. Mỗi loại servo có kích
thước, khối lượng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng
trên máy bay mơ mình), có loại thì sở hữu một momen lực bá đạo (vài chục
Newton/m), hoặc có loại thì khỏe và nhơng sắc chắc chắn,...
 Động cơ servo được thiết kế những hệ thống hồi tiếp vịng kín. Tín hiệu ra của

động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ
được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển
động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị
trí mong muốn. Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được
điểm chính xác. Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là
động cơ servo RC (radio-controlled). Trong thực tế, bản thân động cơ servo
không phải được điều khiển bằng vơ tuyến, nó chỉ nối với máy thu vô tuyến trên
máy bay hay xe hơi. Động cơ servo nhận tín hiệu từ máy thu này.

18


3.2.2.

Lắp mạch

Chuẩn bị:





Servo
Arduino
Breadboard
Dây cắm Breadboard

Động cơ servo sử dụng trong bài viết này là loại quay được 180° (trái 90° và phải
90°).
Như đã đề cập bên trên, động cơ servo là loại động cơ cho phép ta điều khiển một

cách cực kì chính xác. Vì vậy, khác với động cơ thông thường ta chỉ cần cấp nguồn
cho động cơ là có thể vận hành được. Động cơ servo yêu cầu ta phải cấp nguồn (2
dây) và nhận điều khiển từ mạch chính (1 dây), mỗi dây thường được đánh màu như
sau:
 Đỏ: nhận điện nguồn, tuỳ vào loại động cơ mà giá trị này có thể khác nhau
 Nâu: nối với cực âm của mạch
 Vàng: nhận tín hiệu từ mạch điều khiển
19


3.2.3.

Lập trình điều khiển

Arduino cung cấp sẵn một thư viện để hỗ trợ việc điều khiển hoạt động của
động cơ, ra lệnh cho động cơ làm theo mong muốn.
Arduino cung cấp sẵn một thư viện để hỗ trợ việc điều khiển hoạt động của
động cơ, ra lệnh cho động cơ làm theo mong muốn.
1. Servo khởi đầu ở góc 0°
2. Xoay tới góc 90°
3. Trở về góc 0° và lặp lại quá trình này

20


CHƯƠNG III: THIẾT KẾ VÀ THI CÔNG
1. Nguyên lý hoạt động
Khi muốn mở cửa thì phải gõ đúng mật khẩu với độ dài 4 ký tự. Nếu gõ đúng thì
màng hình LCD sẽ hiện mở cửa. Và gõ sai thì màn hình LCD hiển thị chữ nhập sai
mật khẩu.

Muốn đổi mật khẩu ta nhấn nút đổi mật khẩu trên bàn phím, và ta phải nhập mật
khẩu mới, nhập xong thì nhấn nút xác nhận theo chỉ dẫn trên màng hình LCD, vậy là
mật khẩu đã được đổi.

Mô phỏng Proteus

21


Mơ hình thực tế
22


2. Lưu đồ thuật tốn

3. Mã nguồn của chương trình
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
#include <Servo.h>
#include <EEPROM.h>

int k=0, pos1=0, pos2=180, state = 0;
const byte numRows = 4;
const byte numCols = 4;

char keymap[numRows][numCols] =
23



{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};

char keypressed;
char code[] = {'1', '2', '3', '4'};
char check1[sizeof(code)];
char check2[sizeof(code)];

short a = 0, i = 0, s = 0, j = 0;

byte rowPins[numRows] = {9, 8, 7, 6};
byte colPins[numCols] = {5, 4, 3, 2};

LiquidCrystal_I2C lcd(0x27, 16, 2);
Keypad

myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins,

numRows, numCols);
Servo myservo;
void setup()
{
lcd.init();
lcd.backlight();
lcd.begin (16, 2);
lcd.setCursor(0, 0);

lcd.print("Moi Nhap Mat Khau");
lcd.setCursor(1 , 1);
myservo.attach(11);
24


for(i=0 ; iEEPROM.get(i, code[i]);
}
}

void loop()
{
while (k==3){
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("nhap sai qua 3 lan");
lcd.setCursor(1, 1);
lcd.print("cho 15s de nhap lai");
delay(15000);
k=0;
break;
}
keypressed = myKeypad.getKey();
if (keypressed == 'C') {
lcd.clear();
lcd.print("An C de nhap ma");
lcd.setCursor(6, 1);
lcd.setCursor(0, 0);
lcd.println("Moi Nhap Mat Khau");

ReadCode();
if (a == sizeof(code)){
OpenDoor();
state = 1;
k=0;
}
25


×