Tải bản đầy đủ

Thiết kế hệ thống đo nhiệt độ, độ ẩm và điều khiển thiết bị điện bằng module bluetooth

BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM
-----o0o-------

ĐỒ ÁN MÔN HỌC VI XỬ LÝ TRONG ĐIỀU KHIỂN
Đề tài : “Thiết kế hệ thống đo nhiệt độ, độ ẩm và điều khiển thiết bị
điện bằng module Bluetooth”
Giảng viên hướng dẫn : Th.S Lại Văn Song
Sinh viên thực hiện : Nguyễn Thanh Phú _ 576126
Phạm Thế Sự

_ 576134

Vũ Văn Kiệm

_576117


CHƯƠNG I :TỔNG QUAN VỀ HỆ THỐNG
1.1


1.3

Giới thiệu

Ngày nay, ngành công nghệ thông tin đã đạt được những tiến bộ vượt bậc với
sự ra đời của ngành công nghiệp phần cứng, cũng như phần mềm việc giải
quyết các công việc giúp con người trở nên dễ dàng, thuận tiện và nhanh
chóng. Cùng với sự phát triển của ngành công nghệ thông tin là sự phát triển
mạnh mẽ của các hệ thống thông tin liên lạc, sự ra đời của các dịch vụ điện
thoại mà cụ thể là điện thoại di động với ưu thế dễ dàng hoạt động khi di
chuyển mọi lúc mọi nơi. Chính vì vậy ngoài việc dùng điện thoại để liên lạc
một vấn đề được đặt ra là chúng ta có thể sử dụng điện thoại như một chiếc
Remote để điều khiển các thiết bị điện từ xa. Từ yêu cầu trên và những kiến
thức em được học ở trường em đã lựa chọn đề tài: “Thiết kế chế tạo mô hình
hệ thống điều khiển các thiết bị điện trong nhà thông qua điện thoại.”
1.2Mục tiêu của đề tài
Nghiên cứu và xây dựng mô hình điều khiển quá trình dựa trên vi điều khiển
AT89S52. Từ đó phát triển cao hơn, đưa bộ điều khiển áp dụng vào trong thực
tế.
Làm quen với việc tính toán thiết kế , chế tạo, nguyên lý hoạt động của quá
trình khoá mở cửa điện tử và củng cố phần lý thuyết về mạch điện tử, cảm biến
và mạch điều khiển bằng vi điều khiển.
Nội dung đề tài
Việc thực hiện nghiên cứu đề tài ‘‘Thiết kế chế tạo mô hình hệ thống điều
khiển các thiết bị điện trong nhà thông qua điện thoại.”trong điều kiện :
- Thời gian thực hiện đề tài chỉ trong một học kỳ .
- Kinh nghiệm thực tế chưa nhiều
- Vật tư và linh kiện không đồng bộ
Vì vậy em đã thực hiện nghiên cứu đề tài với những đặc điểm chính sau đây:
- Lập trình bằng vi xử lý AT89S52
- Tìm hiểu cách thức hoạt động của 1 số loại linh kiện điện tử
- Thiết kết mô hình thí nghiệm
1.4 Phương pháp nghiên cứu

Phương pháp kế thừa: Kế thừa từ các tài liệu, công trình nghiên cứu trước đó
về hai mảng chính của đề tài: Cấu trúc vi điều khiển 8051
Phương pháp thực nghiệm kiểm chứng: Sau khi đã xây dựng xong cơ sở lý
thuyết của đề tài sẽ tiến hành thử nghiệm sự hoạt động trên các thiết bị hiện có.



Các bước tiến hành nghiên cứu là tìm hiểu cơ sở lý thuyết về vấn đề nghiên
cứu, tiến hành thiết kế chương trình điều khiển và mạch điều khiển, sau đó thử
nghiệm trên mô hình để đưa ra kết luận.

CHƯƠNG II: GIỚI THIỆU VỀ VI ĐIỀU KHIỂN VÀ CÁC THIẾT
BỊ CHÍNH KHÁC

2.1 Vi điều khiển AT89S52
2.1.1 Tổng quan về AT89S52
AT89S52 là họ IC vi điều khiển do hãng Atmel sản xuất. Các sản phẩm
AT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các
toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ
liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh
số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mở rộng
trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quản
lý và kiểm tra bit trực tiếp trong hệ thống điều khiển.
AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có
thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3
TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp
bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.
Các đặc điểm của chip AT89S52 được tóm tắt như sau:


8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá



Tần số hoạt động từ: 0Hz đến 24 MHz



3 mức khóa bộ nhớ lập trình



3 bộ Timer/counter 16 Bit



128 Byte RAM nội.



4 Port xuất /nhập I/O 8 bit.



Giao tiếp nối tiếp.



64 KB vùng nhớ mã ngoài




64 KB vùng nhớ dữ liệu ngoại.



4 µs cho hoạt động nhân hoặc chia

Hình 2.1 Sơ đồ khối của 8051


Hình 2.2 Sơ đồ khối AT89S52
2.1.2 Mô tả chân 89S52
a) Sơ đồ chân 89S52
Mặc dù các thành viên của họ 8051(ví dụ 8751, 89S52, 89C51, DS5000) đều
có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line
Pakage), dạng vỏ dẹt vuông QPF (Quad Flat Pakage) và dạng chip không có chân
đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức năng khác
RD

WR

nhau như vào ra I/O, đọc
, ghi
, địa chỉ, dữ liệu và ngắt. Cần phải lưu ý một
số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các
ứng dụng yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chíp
đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tập trung mô tả phiên bản này.
b) Chức năng của các chân 89S52
Port 0:từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các
thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO,
đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ
liệu.
Port 1:từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp với
thiết bị bên ngoài nếu cần.
Port 2:từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép
dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị
dùng bộ nhớ mở rộng.
Port 3:từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các
chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các
đặc tính đặc biệt của 89S52 như ở bảng sau:


Bit

Tên

Chức năng chuyển đổi

P3.0

RXD Ngõ vào dữ liệu nối tiếp.

P3.1

TXD

P3.2

INT0 Ngõ vào ngắt cứng thứ 0.

P3.3

INT1 Ngõ vào ngắt cứng thứ 1.

Ngõ xuất dữ liệu nối tiếp.

P3.4

T0

Ngõ vào TIMER/ COUNTER thứ 0.

P3.5

T1

P3.6

WR

Ngõ vào của TIMER/ COUNTER thứ
1.

P3.7

RD

Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.
Tín hiệu đọc bộ nhớ dữ liệu ngoài.

Bảng 2.1 Bảng chức năng P3
PSEN (Program store enable):
PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình
mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte
mã lệnh.
PSEN ở mức thấp trong thời gian 89S52 lấy lệnh. Các mã lệnh của chương
trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong
89S52 để giải mã lệnh. Khi 89S52 thi hành chương trình trong ROM nội, PSEN ở
mức cao.
ALE (Address Latch Enable):
Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và
dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ
30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết
nối chúng với IC chốt.
Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò
là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.


EA (External Access):Tín hiệu vào EA (chân 31) thường được mắc lên mức 1
hoặc mức 0. Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội. Nếu ở mức 0,
89S52 thi hành chương trình từ bộ nhớ mở rộng. Chân EA được lấy làm chân cấp
nguồn 21V khi lập trình cho Eprom trong 89S52.
RST (Reset):Khi ngõ vào tín hiệu này đưa
lên mức cao ít nhất 2 chu kỳ máy, các thanh
ghi bên trong được nạp những giá trị thích hợp
để khởi động hệ thống. Khi cấp điện mạch phải
tự động reset.
Các giá trị tụ và điện trở được chọn là:
R1=10Ω, R2=220Ω, C=10 F.
Hình 2.3 Sơ đồ kết nối chân RST
Các ngõ vào bộ dao động X1, X2:
Bộ tạo dao động được tích hợp bên trong
89S52. Khi sử dụng 89S52, người ta chỉ cần
nối thêm thạch anh và các tụ. Tần số thạch
anh tùy thuộc vào mục đích của người sử
dụng, giá trị tụ thường được chọn là 33p.
Hình 2.4 Sơ đồ kết nối chân X1,X2
2.1.3 Tổ chức bên trong AT89S52
Bộ nhớ trong 89S52 bao gồm ROM và RAM. RAM trong 89S52 bao gồm
nhiều thành phần: phần lưu trữ đa dụng, phần lưu trữđịa chỉ hóa từng bit, các bank
thanh ghi và các thanh ghi chức năng đặc biệt.
AT89S52 có bộ nhớ được tổ chức theo cấu trúc Harvard: có những vùng bộ
nhớ riêng biệt cho chương trình và dữ liệu. Chương trình và dữ liệu có thể chứa
bên trong 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chương
trình và 64K byte dữ liệu bên ngoài.
Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:
Địa chỉ
byte

Địa chỉ bit

Địa chỉ
byte

Địa chỉ bit


RAM bên trong AT89S52 được phân chia như sau:
 Các bank thanh ghi có địa chỉ từ 00H đến 1FH.
 RAM địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH.
 RAM đa dụng từ 30H đến 7FH.
 Các thanh ghi chức năng đặc biệt từ 80H đến FFH
a) RAM đa dụng
RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng
cách dùng chế độ định địa chỉ trực tiếp hay gián tiếp.
Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đích như
trên, ngoài các chức năng đặc biệt được đề cập ở phần sau.
b) RAM có thể định địa chỉ bit
Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa
dụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh
xử lý bit.
c) Các bank thanh ghi
Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h –
07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh. Các bank
thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7. Sau khi khởi động
thì hệ thống bank 0 được chọn sử dụng.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi
được truy xuất bởi các thanh ghi R0 đến R7. Viêc thay đổi bank thanh ghi được
thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW).
d) Các thanh ghi có chức năng đặc biệt
Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip
vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và


thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng như R0
đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function
Register) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH.
Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:
Thanh ghi trạng thái chương trình (PSW: Program Status Word)
BIT

SYMBOL

ADDRESS

DESCRIPTION

PSW.7

CY

D7H

Cary Flag

PSW.6

AC

D6H

Auxiliary Cary Flag

PSW.5

F0

D5H

Flag 0

PSW4

RS1

D4H

Register Bank Select 1

PSW.3

RS0

D3H

Register Bank Select 0
00=Bank 0; address 00H÷07H
01=Bank 1; address 08H÷0FH
10=Bank 2; address 10H÷17H
11=Bank 3; address 18H÷1FH

PSW.2

OV

D2H

Overlow Flag

PSW.1

-

D1H

Reserved

PSW.0

P

DOH

Even Parity Flag

Chức năng từng bit trạng thái chương trình
- Cờ Carry CY (Carry Flag):Cờ nhớ thường nó được dùng cho các lệnh toán
học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược
lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn.
- Cờ Carry phụ AC (Auxiliary Carry Flag): Khi cộng những giá trị BCD
(Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm
trong phạm vi điều khiển 0AH - 0FH. Ngược lại AC = 0
- Cờ 0 (Flag 0):
Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng.


- Những bit chọn bank thanh ghi truy xuất:
RS1 và RS0 quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reset
hệ thống và được thay đổi bởi phần mềm khi cần thiết.
Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng
là Bank 0, Bank1, Bank2 và Bank3.
Bảng

2.2

RS1

RS0

BANK

0

0

0

0

1

1

1

0

2

1

1

3

Bảng chọn Bank

- Cờ tràn OV (Over Flag):
Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học.
- Bit Parity (P):
Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẵn với
thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn chẵn.
Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo
thành số chẵn.
Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối
tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm trabit Parity sau khi thu.

Thanh ghi TIMER
Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc.
Người ta sử dụng các timer để:
o

Định khoảng thời gian.

o

Đếm sự kiện.

o

Tạo tốc độ baud cho port nối tiếp trong 89S52.


Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở
những khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa
chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ
vào hoặc gửi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo
xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ
đo độ rộng xung).
Thanh ghi ngắt (INTERRUPT)
Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm
thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một
chương trình khác.
Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng
vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và
giải quyết sự kiện đó trong khi một chương trình khác đang thực thi.
- Tổ chức ngắt của 89S52:
Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port
nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được
cho phép từng cái một bằng phần mềm. Mức độ ưu tiên của các ngắt được lưu
trong thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép
chọn mức ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h).


Bit

Ký hiệu

Địa chỉ bit

Mô tả

IP.7

_

_

Không được mô tả

IP.6

_

_

Không được mô tả

IP.5

ET2

BDH

Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 2

IP.4

ES

BCH

Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại cổng nối tiếp.

IP.3

ET1

BBH

Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 1

IP.2

EX1

BAH

Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại ngắt ngoài 1

IP.1

ET0

B9H

Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại timer 0

IP.0

EX0

B8H

Chọn mức ưu tiên cao (=1) hay thấp (=0)
tại ngắt ngoài 0

Tóm tắt thanh ghi IP
 Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn sẽ
được phục vụ trước.
 Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên được
thực hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer 0 – ngắt ngoài 1 – timer 1 –
cổng nối tiếp – timer 2.
 Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà có
một ngắt xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy
một chương trình khác có mức ưu tiên cao hơn.
- Cho phép và cấm ngắt:
Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức
năng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa
chỉ A8H.
Bit

Ký hiệu

Địa chỉ bit

Mô tả


IE.7

EA

AFH

Cho phép / Cấm toàn bộ

IE.6

_

AEH

Không được mô tả

IE.5

ET2

ADH

Cho phép ngắt từ Timer 2 (8052)

IE.4

ES

ACH

Cho phép ngắt port nối tiếp

IE.3

ET1

ABH

Cho phép ngắt từ Timer 1

IE.2

EX1

AAH

Cho phép ngắt ngoài 1

IE.1

ET0

A9H

Cho phép ngắt từ Timer 0

IE.0

EX0

A8H

Cho phép ngắt ngoài 0
Tóm tắt thanh ghi IE

Khi chấp nhận ngắt, giá trị được nạp vào PC gọi là vector ngắt. Nó là địa
chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau :
Ngắt

Cờ

Địa chỉ vector

Reset hệ thống

RST

0000H

Bên ngoài 0

IE0

0003H

Timer 0

TF0

000BH

Bên ngoài 1

IE1

0013H

Timer 1

TF1

001BH

Port nối tiếp

TI và RI

0023H

Timer 2

002BH

Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa
này, nó giống ngắt: nó ngắt chương trình chính và nạp cho PC giá trị mới.


2.2 Module bluetooth HC06

Bluetooth module SLAVE cho phép vi điều khiển kết nối với các thiết bị ngoại
vi: smartphone, laptop, usb bluetooth... thông qua giao tiếp Serial gửi và nhận
tín hiệu 2 chiều.
Module bluetooth được tích hợp trên board cho phép bạn sử dụng nguồn từ 3.5V
đến 6V cung cấp cho board mà không cần lo lắng về chênh lệch điện áp 3V - 5V
gây hỏng board.
Bluetooth module gồm 6 chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE.
Đây là module bluetooth SLAVE nghĩa là bạn không thể chủ động kết nối bằng vi
điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb... để dò tín hiệu và
kết nối (pair) từ smartphone, laptop, bluetooth usb... Sau khi pair thành công, bạn
có thể gửi và nhận tín hiệu từ vi điều khiển đến các thiết bị này.
Hướng dẫn nối dây
Bluetooth module

VĐK


VCC

5V

GND

GND

TX

RX

RX

TX

Lưu ý: không được gắn lộn dây Vcc và Gnd vì sẽ gây hỏng module bluetooth ngay
lập tức.
Tần số làm việc: 2.4GHz
Kích thước module: 44mm x 16mm x 7mm. Có sẵn 1 dây nối dài 4 bus 18cm.
Sau khi pair và nối dây cho module bluetooth, bạn sẽ nhận dữ liệu như 1 cổng
Serial thông thường.
void setup()
{
Serial.begin (9600);
........
}

void loop()
{
.....
if (Serial.available() > 0)
{


byte c = Serial.read();
..........
}
}

Sử dụng lệnh AT cho Module
Bước 1: Kết nối Module với USB TO COM Set KEY xuống mức thấp ( GND)
Bước 2: Cấp nguồn cho Module ( Lấy nguồn từ USB TO COM)
Bước 3: Chuyển Key lên 3.3V
Dùng phần mềm Terminal hoặc Hercules để cài đặt. ( Các bạn có thể xem
hướng dẫn tạihttp://mcu.banlinhkien.vn ( Mục module)
1.1. Test.
Gõ lệnh: AT
Màn hình trả về: OK
2.2.Thay đổi tốc độ
Gõ: AT+BAUD1
Màn hình trả về: OK1200 ( Module đã được cài tốc độ 1200, muốn giao tiếp
với module phải thay đổi tốc độ thành 1200)
Tương tự: AT+BAUDx ( x là các ký tự tương ứng dưới đây)
1---------1200
2---------2400
3---------4800
4---------9600
5---------19200
6---------38400
7---------57600
8---------115200
9---------230400
A---------460800
B---------921600
C---------1382400
Không nên sử dụng tốc độ > 115200 ( Module hoạt động không ổn định)
3.3. Thay đổi tên. ( Chỉ áp dụng cho Slaver)
Gõ : AT+NAMEname
Màn hình trả về: OKname
( Module đã có tên là “name” , chú ý chỉ cài được <20 ký tự)


VD: Muốn tên Module là banlinhkien
Gõ: AT+NAMEbanlinhkien
Màn hình trả về OKbanlinhkien là đã cài đặt thành công.
4.4. Thay đổi pass.
Gõ AT+PINxxxx
Màn hình trả về: OKsetpin
xxxx: là mật khẩu đặt là 4 ký tự
VD: Muốn đặt pass là 8888
Gõ: AT+PIN8888

2.3 Module Relay 5V
2.3.1 Giới thiệu
Rơ-le là một loại linh kiện điện tử thụ động rất hay gặp trong các ứng dụng thực tế.
Khi bạn gặp các vấn đề liên quan đến công suất và cần sự ổn định cao, ngoài ra có
thể dễ dàng bảo trì, thì rơ-le chính là cái bạn cần tìm. Vì vậy, hôm nay, chúng ta sẽ
cùng nhau tìm hiểu về relay và các ứng dụng của nó trong cuộc sống!
2.3.2 Relay (rơ-le) là gì ?
Từ rơ-le là từ vay mượn từ tiếng nước ngoài (cụ thể là tiếng Pháp) nên trong từ đó
không bao hàm ý nghĩa gì nhiều. Vì vậy, ta sẽ không phân tích rơ-le là gì thông
qua tên gọi của nó. Vì vậy, sẽ sử dụng những linh kiện điện tử khác mà chắc chắn
đã biết rồi để diễn giải!
Rơ-le là một công tắc (khóa K). Nhưng khác với công tắc ở một chỗ cơ bản, rơ-le
được kích hoạt bằng điện thay vì dùng tay người. Chính vì lẽ đó, rơ-le được dùng
làm công tắc điện tử! Vì rơ-le là một công tắc nên nó có 2 trạng thái: đóng và mở.
"Khi nào nó đóng? Khi nào nó mở? và làm sao thay đổi được trạng thái của
nó?,..." đó chính là những câu hỏi mà chúng ta cần tìm kiếm câu trả lời.


2.3.3 Các loại rơ-le và cách xác định trạng thái của nó
Trên thị trường chúng ta có 2 loại module rơ-le: module rơ-le đóng ở mức
thấp (nối cực âm vào chân tín hiệu rơ-le sẽ đóng),module rơ-le đóng ở mức
cao (nối cực dương vào chân tín hiệu rơ-le sẽ đóng). Nếu so sánh giữa 2 module
rơ-le có cùng thông số kỹ thuật thì hầu hết mọi kinh kiện của nó đều giống nhau,
chỉ khác nhau ở chỗ cái tranzitocủa mỗi module. Chính vì cái transistor này nên
mới sinh ra 2 loại module rơ-le này (có 2 loại transistor là NPN - kích ở mức cao,
và PNP - kích ở mức thấp).
Làm sao để nhận biết được module rơ-le nào thuộc loại nào? Có 3 cách :
- Hỏi người bán và sau khi mua về chúng ta đặt ngăn nắp, loại nào ra loại
đấy.
- Kiểm tra module rơle bằng cách thử cấp nguồn vào các chân điều khiển
- Tìm trên google thử tên của loại transistor mà module rơ-le đó dùng, nếu là
loại NPN là module rơ-le kích ở mức cao, và nếu là PNP thì module rơ-le ấy là
loại kích ở mức thấp.


Module relay kích ở mức cao

Module relay kích ở mức thấp
Thông số của một module relay
Một module rơ-le được tạo nên bởi 2 linh kiện thụ động cơ bản là rơ-le và
transistor, nên module rơ-le có những thông số của chúng.
Hiệu điện thế kích tối ưu




o

Cái này bạn phải hỏi người bán và người bán sẽ đáp ứng đúng loại
phù hợp với bạn. Ngoài ra bạn có thể xem ảnh dưới (mục số 5)

o

Chẳng hạn, bạn cần một module relay sẽ làm nhiệm vụ bật tắt một
bóng đèn (220V) khi trời tối từ cảm biến ánh sáng hoạt động ở mức
5-12V thì bạn bảo họ bán loại module relay 5V (5 volt) hoặc module
relay 12V (12 volt) kích ở mức cao (bạn xem bài viết cảm biến ánh
sáng để xem cách hoạt động của cảm biến và suy ra tại sao lại dùng
module relay kích ở mức cao).

Các mức hiệu điện thế tối đa và cường độ dòng điện tối đa của đồ dùng điện
khi nối vào module rơ-le
o

1.

Cái này bạn xem phía trên relay thôi. Bạn xem ví dụ về hình ảnh ở
dưới nhé

10A - 250VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với
hiệu điện thế <= 250V (AC) là 10A.


2.

10A - 30VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với
hiệu điện thế <= 30V (DC) là 10A.

3.

10A - 125VAC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với
hiệu điện thế <= 125V (AC) là 10A.

4.

10A - 28VDC: Cường độ dòng điện tối đa qua các tiếp điểm của rơ-le với
hiệu điện thế <= 28V (DC) là 10A.

5.

SRD-05VDC-SL-C: Hiện điện thế kích tối ưu là 5V.

Cách sử dụng Rơle
Vì sao đến bây giờ mình mới nói đến cách sử dụng rơ-le? Bởi vì mình muốn các
bạn nắm các thông số cơ bản trước nhằm tránh các trường hợp xấu có thể xảy ra...
Rơ-le bình thường gồm có 6 chân. Trong đó có 3 chân để kích, 3 chân còn lại nối
với đồ dùng điện công suất cao.
1.

2.

3 chân dùng để kích
o

+: cấp hiệu điện thế kích tối ưu vào chân này.

o

- : nối với cực âm

o

S: chân tín hiệu, tùy vào loại module rơ-le mà nó sẽ làm nhiệm vụ
kích rơ-le


Nếu bạn đang dùng module rơ-le kích ở mức cao và chân S
bạn cấp điện thế dương vào thì module rơ-le của bạn sẽ được
kích, ngược lại thì không.



Tương tự với module rơ-le kích ở mức thấp.

3 chân còn lại nối với đồ dùng điện công suất cao:
o

COM: chân nối với 1 chân bất kỳ của đồ dùng điện, nhưng mình
khuyên bạn nên mắc vào đây chân lửa (nóng) nếu dùng hiệu điện thế
xoay chiều và cực dương nếu là hiệu điện một chiều.

o

ON hoặc NO: chân này bạn sẽ nối với chân lửa (nóng) nếu dùng điện
xoay chiều và cực dương của nguồn nếu dòng điện một chiều.


o

OFF hoặc NC: chân này bạn sẽ nối chân lạnh (trung hòa) nếu dùng
điện xoay chiều và cực âm của nguồn nếu dùng điện một chiều.

CHƯƠNG III: THIẾT KẾ BỘ ĐIỀU KHIỂN
3.1 Sơ đồ nguyên lí


3.2 Chương trình điều khiển
Chương trình chính:
#include "main.h"
/*******************************************************************/
main()
{
unsigned char key;
RL1 = RL2 = RL3 = RL4 = 0;
UART_Init();
delay_ms(1000);
EA=1;
while(1)


{
key=UART_GetChar();
switch(key)
{
case '0':

// Tat toan bo

RL1 = RL2 = RL3 = RL4 = 0;
break;
case '1':
RL1 = 1;
break;
case '2':
RL1 = 0;
break;
case '3':
RL2 = 1;
break;
case '4':
RL2 = 0;
break;
case '5':
RL3 = 1;
break;
case '6':
RL3 = 0;
break;
case '7':
RL4 = 1;
break;
case '8':
RL4 = 0;
break;


}
}
}
#ifndef __MAIN_H
#define__MAIN_H
/************************INCLUDE FILE********************************/
#include "AT89X52.h"
#include "stdio.h"
#include "string.h"
#include "delay.h"
#include "uart.h"
/**************************DEFINE********************************/
#define RL1 P2_0
#define RL2 P2_2
#define RL3 P2_4
#define RL4 P2_7
#endif

3.3 Gia công mạch in:
Mạch in:


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

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

×