1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

BÁO cáo đồ án VXL 2 1 (1)

35 568 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,57 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đ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.

Trang 1

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

Trang 2

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

Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)

Đ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

ẩm và hiển thị lên màn hình LCD,…

Trang 3

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

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

* Chức năng các chân :

Chân Ký

hiệu Mô tả

1 Vss 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

2 VDD 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

3 VEE Điều chỉnh độ tương phản của LCD

4 RS 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

5 R/W 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

6 E Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus

DB0-DB7, 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

7 - 14 DB0 -

DB7

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

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

Trang 8

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

Trang 9

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ócquay 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à

Trang 10

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ạithì 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ắcchắ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

Trang 11

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:

Trang 12

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 chophép sử dụng nhanh các chức năng thường dùng của IDE được miêu tả như sau:

Trang 13

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ểnthị loại board Arduino và cổng COM được sử dụng Luôn chú ý tới mục này bởi nếuchọn sai loại board hoặc cổng COM, bạn sẽ không thể upload được code của mình

Trang 14

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

http://ai2.appinventor.mit.edu/

Đâ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

Trang 15

“ * ” 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

BIẾN

KHỐI HIỂNTHỊ

BỘ XỬ LÝ

BỘ ĐIỀUKHIỂNKHỐI NGUỒN

Trang 16

 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

Trang 17

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

ClearScreen

LCD: SET PASS AGAIN

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

NHẤN B

NHẤN A

Đ ClearScreen

LCD : ENTER YOUR PASS

S

ClearScreen LCD : ENTER YOUR

PASS

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

S

S NHẤN B

Đ

S

ClearScreen LCD : ENTER YOUR PASS

Trang 18

NHẤNPHÍM 1-9

Đ

S

pass[i++]=myKey LCD: *

Trang 19

kp=7 kp=8

LCD: ** ACCESS**

LOCK DOORmyservo.write(0)

Trang 20

S

ClearScreen LCD : ENTER YOUR PASS

Đ LCD: WRONG PASS GOODLUCK AGAIN

Trang 21

Đ

S

ClearScreen LCD : ENTER YOUR PASS

key=0 LCD: DONE…

Trang 22

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'}

};

Trang 24

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();

Trang 25

for(int j=0;j<4;j++) EEPROM.write(j, j+50);

Trang 28

lcd.setCursor(6,1); lcd.print(" 6 "); delay(1000);

lcd.setCursor(6,1); lcd.print(" 5 "); delay(1000);

lcd.setCursor(6,1); lcd.print(" 4 "); delay(1000);

lcd.setCursor(6,1); lcd.print(" 3 "); delay(1000);

lcd.setCursor(6,1); lcd.print(" 2 "); delay(1000);

lcd.setCursor(6,1); lcd.print(" 1 "); delay(1000);

Trang 29

if ((key)&& (j<4))

{

Trang 31

if (myKey=='B') { clearScreen(); displayLCD();

Currentposition=6; i=0; myKey=0; k=0;}

else {myKey=0; Donhietdo();}

Trang 32

lcd.print(key);

Currentposition++;

EEPROM.write(j,key); j++;

lcd.print(" ");

Trang 34

lcd.print("** LOCK DOOR **"); delay(700);

myservo.write(0); }

if(kp==7){

clearScreen();

lcd.setCursor(2,0);

lcd.print("** ACCESS **");

Trang 35

lcd.setCursor(4,1);

lcd.print(" WELCOME!! "); delay(700);

myservo.write(160); //160deg }

}

}

Ngày đăng: 21/11/2016, 23:42

HÌNH ẢNH LIÊN QUAN

SƠ ĐỒ NGUYÊN LÝ ARDUINO R3 Một vài thông số của Arduino UNO R3 - BÁO cáo đồ án VXL 2 1 (1)
3 Một vài thông số của Arduino UNO R3 (Trang 2)
SƠ ĐỒ NGUYÊN LÝ MA TRẬN PHÍM 4X4 - BÁO cáo đồ án VXL 2 1 (1)
4 X4 (Trang 5)
Hình 1 : Hình dáng của loại LCD thông dụng - BÁO cáo đồ án VXL 2 1 (1)
Hình 1 Hình dáng của loại LCD thông dụng (Trang 6)
1) Hình dáng và kích thước: - BÁO cáo đồ án VXL 2 1 (1)
1 Hình dáng và kích thước: (Trang 6)
Bảng 1 : Chức năng các chân của LCD - BÁO cáo đồ án VXL 2 1 (1)
Bảng 1 Chức năng các chân của LCD (Trang 7)
Hình 6. Trình tự giao tiếp với Text LCD. - BÁO cáo đồ án VXL 2 1 (1)
Hình 6. Trình tự giao tiếp với Text LCD (Trang 8)
Hình 3 : Sơ đồ khối của HD44780 - BÁO cáo đồ án VXL 2 1 (1)
Hình 3 Sơ đồ khối của HD44780 (Trang 9)
3.1. SƠ ĐỒ KHỐI HỆ THỐNG - BÁO cáo đồ án VXL 2 1 (1)
3.1. SƠ ĐỒ KHỐI HỆ THỐNG (Trang 15)

TỪ KHÓA LIÊN QUAN

w