Tải bản đầy đủ (.docx) (35 trang)

BÁO cáo đồ án VXL 2 1 (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 (966.32 KB, 35 trang )

I.TỔNG QUAN VỀ ĐỀ TÀI
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 chúng ta đã và
đang thay đổi từng ngày, ngày càng văn minh và hiện đại hơn.Sự phát triển của khoa học
kỹ thuật đã đưa chúng ta đến với một thời đại mới, thời đại của công nghiệp hóa và hiện
đại hóa.
Điện tử đang trở thành một ngành khoa học đa nhiệm vụ.Sự phát triển của kỹ thuật điện
tử đã tạo ra hàng loạt những thiết bị với sự chính xác cao, tốc độ nhanh và gọn nhẹ.Và kỹ
thuật vi điều khiển là một trong những ngành then chốt của ngành kỹ thuật điện tử mà
chúng ta có thể thấy những ứng dụng của nó trong đời sống hằng ngày.Chẳng hạn như: ti
vi, máy tính, laptop, điện thoại hay thậm chí là những dây chuyền sản xuất trong các nhà
máy, xí nghiệp. Chính vì vây, với mong muốn có thể bắt kịp thời đại, và ứng dụng cho
chính gia đình mình và xã hội nên em đã lựa chọn đề tài: THIẾT KẾ HỆ THỐNG MỞ
CỬA TỰ ĐỘNG BẰNG MÃ VÀ BLUETOOTH sử dụng ARDUINO hiển thị thông báo
và cả nhiệt độ phòng trên LCD.
II.THIẾT BỊ PHẦN CỨNG VÀ PHẦN MỀM
2.1. THIẾT BỊ PHẦN CỨNG
1.BOARD ARDUINO UNO R3
a) CẤU TRÚC:


SƠ ĐỒ NGUYÊN LÝ ARDUINO R3
Một vài thông số của Arduino UNO R3
Vi điều khiển

ATmega328 họ 8bit

Điện áp hoạt động

5V DC (chỉ được cấp qua cổng USB)

Tần số hoạt động



16 MHz

Dòng tiêu thụ

khoảng 30mA

Điện áp vào khuyên dùng

7-12V DC

Điện áp vào giới hạn

6-20V DC

Số chân Digital I/O

14 (6 chân hardware PWM)

Số chân Analog

6 (độ phân giải 10bit)

Dòng tối đa trên mỗi chân I/O

40 mA

Dòng ra tối đa (5V)

500 mA


Dòng ra tối đa (3.3V)

50 mA

Bộ nhớ flash

32 KB (ATmega328) với 0.5KB dùng bởi
bootloader

SRAM

2 KB (ATmega328)

EEPROM

1 KB (ATmega328)

Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168,
ATmega328. Bộ vi điiều khiển này có thể xử lí những tác vụ đơn giản như điều khiển đèn
LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm
và hiển thị lên màn hình LCD,…

b) NGUYÊN LÝ HOẠT ĐỘNG











GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi 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
Imax = 500mA
3.3V: cấp điện áp 3.3V đầu ra.
Imax = 500mA.
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, 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 tham chiếu của vi điều khiển trên Arduino UNO có thể được đo ở
chân này(luôn là 5V). Mặc dù vậy nhưng 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Ω. Dùng kết nối với chân reset
của các Shield
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 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, 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.
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoà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, 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,chúng ta
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 chúng ta
cấp điện áp 2.5V vào chân này thì chúng ta 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.MA TRẬN PHÍM
a) CẤU TRÚC:
_Về cơ bản thì ma trận phím dựa trên một ma trânh hàng và cột.Sự kiện một phím được
nhấn hoặc thả có thể được ghi lại bằng cách điều khiển và đọc trạng thái của các hàng và
các cột trong ma trận phím.
b) NGUYÊN LÝ QUÉT PHÍM:
_Thuật toán quét phím được sử dụng là lần lượt tìm hàng và tìm cột ( hoặc ngược
lại ).Khi tìm hàng, các hàng sẽ được đặt làm đầu vào, các cột sẽ được đặt làm đầu ra ở
mức thấp. Sau đó kiểm tra các hàng xem có hàng nào ở mức thấp hay không( có phím
nào bấm, gây ra nối cột với cột hay không?) Sau khi xác định được hàng sẽ đặt cột làm
đầu vào, hàng vừa tìm được làm đầu ra mức thấp.Việc kiểm tra được tiến hành với các

cột.Sau khi xác định được hàng và cột sẽ suy ra phím được bấm.
Ta có thể hiểu đơn giản như sau:
+) Đầu tiên cho các hàng ở mức 1 và các cột ở mức 0.


+) Kiểm tra xem hàng nào được nhấn (khi nút được nhấn) tức là được nhận tín hiệu từ
các cột
+) Nếu có 1 hàng bất kì được nhấn, sau đó ta lại chuyển giá trị 0 vào hàng được nhấn và
giá trị 1 vào các cột.Khí đó cột lại nhận nhiệm vụ làm tín hiệu vào.Nếu mà 1 trong các
cột được nhấn( khi nút được nhấn) trong các trường hợp này thi cho ra các giá trị tương
ứng.

SƠ ĐỒ NGUYÊN LÝ MA TRẬN PHÍM 4X4


3.MÀN HÌNH LCD
* Giới thiệu :
Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất
nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác:
Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa
vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ
thống và giá thành rẽ …
Tổng Quát Về LCD HD44780
1) Hình dáng và kích thước:
Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình 1 là
loại LCD thông dụng.

Hình 1 : Hình dáng của loại LCD thông dụng
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ư hình 2 :

Hình 2 : Sơ đồ chân của LCD
* Chức năng các chân :


Chân

Ký hiệu Mô tả

1

Vss

2

VDD

3
4

VEE
RS

5

R/W

6


E

7 - 14

DB0 DB7

15

-

Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND
của mạch điều khiển
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với
VCC=5V của mạch điều khiển
Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với logic “0”
(GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở
chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ
“đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên
trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0”
để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế
độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân
E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận)
thanh ghi bên trong nó khi phát hiện một xung (high-to-low
transition) của tín hiệu chân E.

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát
hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở
bus đến khi nào chân E xuống mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có
2 chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là
bit DB7.
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7,
bit MSB là DB7
Nguồn dương cho đèn nền

16

-

GND cho đèn nền

Bảng 1 : Chức năng các chân của LCD
* Ghi chú : Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các chân
DBx.


Còn khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD thông qua các
chân DBx.
2. Nguyên lý hoạt động LCD16X2.
LCD16x2 là một màn hình hiển thị bao gồm nhiều ma trận nhỏ, khi hoạt động thì LCD
16x2 sẽ hiển thị các kí tự trong bảng mã ASCII . Vi điều khiển gửi các tín hiệu khởi tạo
cho LCD16X2, sau đó hiển thị các được kí tự lên màn hình hiển thị.
* Trình tự giao tiếp Text LCD.
Trình tự giao tiếp với LCD được trình bày trong flowchart ở hình 6.


Hình 6. Trình tự giao tiếp với Text LCD.
Để sử dụng LCD chúng ta cần khởi động LCD, sau khi được khởi động LCD đã sẵn
sàng để hiển thị. Quá trình khởi động chỉ cần thực hiện 1 lần ở đầu chương trình. Trong
bài này, quá trình khởi động được viết trong 1 chương trình con tên int_LCD, khởi động
LCD thường bao gồm xác lập cách giao tiếp, kích thước font, số dòng LCD (funcstion
set), cho phép hiển thị LCD, sursor…(Display control), chế độ hiển thị tăng/giảm, shift
(Entry mode set). Các thủ tục khác như xóa LCD, viết ký tự lên LCD, di chuyển con
trỏ…được sử dụng liên tục trong quá trình hiển thị LCD và sẽ được trình bày trong các
đoạn chương trình con riêng.
3) Sơ đồ khối của HD44780:


Hình 3 : Sơ đồ khối của HD44780
4.Động cơ Servo
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ô hình), có loại
thì sở hữu một momen lực (vài chục Newton/m), hoặc có loại thì khỏe và nhông sắc chắc
chắn. Trong đề tài này em sử dụng Tower Pro Micro Servo 9g


Thông số kỹ thuật:









Điện áp cung cấp: 4.8 ~ 6V.
Torque: 1.8kg/cm cho 4.8V, 2.2kg/cm cho 6V.
Dải nhiệt độ hoạt động: - 30 đến 60oC.
Góc quay: 180o
Khối lượng: 13.4g.
Kích thước: 22 x 12 x 29mm.
Dây kết nối dài 150mm.
Hình 4.1: Động cơ servo
5. Mạch bluetooth

a)Cấu trúc:
Điện thế hoạt động: 3.3 v – 5v
Dải tần số hoạt động: 2.4Ghz
Baud định mức : 9600
Pin code :123
Bit dữ liệu :8
Số chân: 6 ( STATE , RXD, TXD, GND , VCC, KEY)


b) sơ đồ kết nối:
Hướng nối chân bluetooth hc-05 với board arduino:
Bluetooth hc-05
Arduino uno
VCC
GND
TX
RX


5v
GND
RX
TX

6.ĐIỆN THOẠI ANDROID V2.2 TRỞ LÊN
7. MẠCH NGUỒN

2.2.THIẾT BỊ PHẦN MỀM
1.Công cụ lập trình IDE:
_Để lập trình được cho các board Arduino, chúng ta cần phải có một công cụ gọi là
Intergrated Development Environment (IDE).Công cụ này được đội ngũ kĩ sư của
Arrduino phát triển và có thể chạy trên Windows, MAC OS X và Linux.


1.1 Giao diện

1.2 Vùng lệnh
Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help). Phía dưới là các icon cho
phép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:


1.3 Vùng viết chương trình
Bạn sẽ viết các đoạn mã của mình tại đây. Tên chương trình của bạn được hiển thị ngay
dưới dãy các Icon, ở đây nó tên là “Blink”. Để ý rằng phía sau tên chương trình có một
dấu “§”. Điều đó có nghĩa là đoạn chương trình của bạn chưa được lưu lại.
1.4 Vùng thông báo (debug)

Những thông báo từ IDE sẽ được hiển thị tại đây. Để ý rằng góc dưới cùng bên phải hiển
thị loại board Arduino và cổng COM được sử dụng. Luôn chú ý tới mục này bởi nếu chọn

sai loại board hoặc cổng COM, bạn sẽ không thể upload được code của mình.


2. công cụ lập trình MIT APP INVENTOR:
Để lập trình cho điện thoại android ta sử dụng trang web lập trình
/>Đây là công rất hiệu quả cho người mới bắt đầu lập trình trên điện thoại.


III.THIẾT KẾ HỆ THỐNG
3.1. SƠ ĐỒ KHỐI HỆ THỐNG

MOTOR

KHỐI CẢM BIẾN

BỘ ĐIỀU KHIỂN
KHỐI NGUỒN

BỘ XỬ LÝ

KHỐI HIỂN THỊ

3.1. Nguyên lý hoạt động
Khi mở nguồn, Password ban đầu là 1234 đã được ghi sẵn trong EEPROM và trên LCD
hiển thị yêu cầu nhập password. Nếu nhấn các kí tự từ 0-9 trên LCD thì sẽ hiển thị 1 dấu
“ * ” tại vị trí đã định sẵn trong chương trình.
+ Nếu nhấn A: LCD hiển thị đo nhiệt độ phòng.
+ Nếu nhấn B : Xóa màn hình LCD và hiển thị yêu cầu nhập Pass.



+ Nếu nhấn C: Thay đổi Password. Trong khi thay đổi nếu muốn làm các việc khác hay
muốn thoát ra vẫn có thể được.
Nhập Password hiện tại.
Nếu đúng thì nhập Pass mới 1 lần và chờ thông báo xong. Lúc này Password
sẽ được ghi lại trong EEPROM và trở về việc yêu cầu nhập Password ban đầu.
và password là pass chúng ta vừa thay đổi
• Nếu sai, thoát khỏi việc đồi Pass và hiển thị yêu cầu nhập Pass ban đầu.



+ Nếu nhấn D: Khi nhập đủ 4 kí tự, nhấn D sẽ kiểm tra Pass vừa nhập với Pass đã ghi
trong EEPROM. Nếu đúng sẽ khóa cửa và hiển thị thông báo trên LCD và trở về việc
hiển thị yêu cầu nhập pass ban đầu. Nếu sai trở về hiển thị nhập Pass ban đầu.
+ Nếu nhấn “ * ” : Khi nhập đủ 4 kí tự, nhấn * sẽ kiểm tra Pass và mở cửa.Nếu sai sẽ
hiển thị thông báo và yêu cầu nhập lại pass. Nếu sai 3 lần sẽ hiển thị thông báo và yêu
cầu chờ 10s. Nếu đúng mở cửa và trở về hiển thị nhập Pass ban đầu.
+ Nếu nhấn “ # ” : Trong trường hợp nếu ta đổi Pass có sai sót hay quên Pass, ta có thể
đặt lại Password là 2345 nếu nhấn “ # ”
3.2 Sơ đồ kết nối chi tiết hệ thống


IV.Giải thuật và chương trình điều khiển
1. Lưu đồ
BEGIN

1.Lưu đồ

KHỞI TẠO CÁC BIẾN, MẢNG
KHỞI TẠO MA TRẬN PHÍM,
SERVO,BLUETOOTH

PASS : 1234
LCD : ENTER YOUR PASS

NHẤN A

1

S

S

NHẤN B

S

NHẤN C

S

NHẤN #

S


Đ

Đ

ClearScreen


LCD: HIỂN THỊ NHIỆT
ĐỘ

Đ

CHANGE PASSWORD

SET PASSWORD:2345

LCD : ENTER YOUR PASS

NHẤN B HOẶC D,*,#

NHẤN B

S

Đ

LCD: SET PASS AGAIN
NHẤN A

S

Đ

Đ

Đ


ClearScreen

LCD: HIỂN THỊ NHIỆT
ĐỘ

ClearScreen

LCD : ENTER YOUR PASS

LCD : ENTER YOUR
PASS

Đ
S

NHẤN B

Đ
ClearScreen
LCD : ENTER YOUR PASS

1

NHẤN *

S

Đ

NHẤN PHÍM 1-9


NHẤN D

S

S

Đ

Đ

checkPassword

checkPassword

_OpenDoor

_LockDoor

S

I=4

I=0

S

I<4

ktbluetooth



Đ

Đ
J=0,

pass[i++]=myKey
LCD: *

myKey=0

J<4

S

Đ
password[j]=EEPROM.read(j);

END

CHƯƠNG TRÌNH CON:



checkPassword
_OpenDoor

Password=pass


Đ
a=0

LCD: ** ACCESS**

WELCOME!!
myservo.write(160)

S

a<2

Đ
LCD: ACCESS DENIED

INVALID PASS
a++;

S

LCD: ACCESS DENIED

INVALID PASS
** WAIT 10s **


ktbluetooth

checkPassword


S

_LockDoor

kp=7

kp=8
Password=pass

S

S

Đ

Đ
LCD: ** ACCESS**

Đ
LCD: ** ACCESS**

LOCK DOOR
myservo.write(0)

LCD: ACCESS DENIED

LOCK DOOR
myservo.write(0)

LCD: ** ACCESS**


WELCOME!!
myservo.write(160)

TRY AGAIN

CHANGE PASSWORD

ClearScreen
LCD: UR CURRENT PASS
J=0

J<4

Đ
NHẤN B HOẶC D,*,#

S

NHẤN A

S

NHẤN PHÍM 1-9
S


Đ
Đ


Đ

LCD: HIỂN THỊ NHIỆT
ĐỘ

ClearScreen
LCD : ENTER YOUR
PASS

Đ
NHẤN B

J<4

S

S

Đ

key=0

Pass1[j++]=key
LCD: *

Đ
ClearScreen
LCD : ENTER YOUR PASS

Password!=pass1


22

S

Đ
LCD: WRONG PASS
GOODLUCK AGAIN

22

LCD: ENTER NEW
PASS
J=0

NHẤN B HOẶC D,*,#

Đ
ClearScreen
LCD : ENTER YOUR
PASS

S

NHẤN A

NHẤN PHÍM 1-9
S

S


Đ
LCD: HIỂN THỊ NHIỆT
ĐỘ
Đ

Đ
J<4

S


NHẤN B

S
Đ

ClearScreen

Đ
Pass[j++]=key
LCD: *
EEPROM.write(j,key)

LCD : ENTER YOUR PASS

key=0
LCD: DONE…

2.Thư viện

3.Chương trình chính
#include <Keypad.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <Servo.h>

Servo myservo; /// khai báo servo
unsigned int kp;
float nhietdo;
int a=0;
int chanlaynhiet =A0;
int Currentposition=6;


char password[4];
char pass[4],pass1[4];
int i=0;
char myKey=0;

const byte ROWS = 4;
const byte COLS = 4;
// Define the Keymap
char Keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {6, 7, 8, 9};
byte colPins[COLS] = {10, 11, 12, 13};

Keypad myKeypad = Keypad( makeKeymap(Keys), rowPins, colPins, ROWS, COLS);
LiquidCrystal lcd(4,5,A1,A2,2,A3);
void setup()
{
Serial.begin(9600);
lcd.begin(16,2);
displayLCD();

myservo.write(0);
myservo.attach(3);
for(int j=0;j<4;j++)


EEPROM.write(j, j+49);
for(int j=0;j<4;j++)
password[j]=EEPROM.read(j);
}
void loop()
{ ktbluetooth();
myKey1();
}
void myKey1()
{ myKey = myKeypad.getKey();
if(myKey=='A') { int k=1; clearScreen(); Currentposition=6; i=0; myKey=0;
while(k==1)
{

myKey = myKeypad.getKey();
if (myKey=='B') { clearScreen(); displayLCD();Currentposition=6;
i=0; myKey=0; k=0;


}
else {myKey=0; Donhietdo();}
}
}
if(myKey=='B') { clearScreen(); displayLCD(); Currentposition=6; i=0; myKey=0; }
if(myKey=='D') { checkPassword_lock_door(); displayLCD(); Currentposition=6;
i=0; myKey=0; a=0
pass[0]=0;
pass[1]=0;
pass[2]=0;
pass[3]=0;


}

if(myKey=='*') { checkPassword(); clearScreen(); displayLCD(); myKey=0;
Currentposition=6; i=0; myKey=0;
pass[0]=0;
pass[1]=0;
pass[2]=0;
pass[3]=0;
}

if(myKey=='#') { clearScreen();
for(int j=0;j<4;j++)
EEPROM.write(j, j+50);
for(int j=0;j<4;j++)
password[j]=EEPROM.read(j);myKey=0;
lcd.setCursor(0,0);

lcd.print(" PASS SET AGAIN ");
delay(1000);
clearScreen(); displayLCD(); Currentposition=6;i=0; myKey=0;
}

if (myKey=='C') { change(); myKey=0; i=0; Currentposition=6; clearScreen();
displayLCD(); }
if ((myKey) && (i<4))
{


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×