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

ÐIỀU KHIỂN HAI ÐỘNG cơ DC QUA SMS MODULE SIM (có code và layout)

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 (676.07 KB, 42 trang )

ĐỒ ÁN 2

ĐIỀU KHIỂN HAI ĐỘNG CƠ DC QUA
SMS


MỤC LỤC


DANH MỤC CÁC HÌNH VẼ


ĐỒ ÁN 2
TRANG 4/39

CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1. Khái quát vấn đề
Ngày nay, nhu cầu học tập và nghiên cứu các ứng dụng công nghệ Vi điều
khiển(PIC) ngày càng tăng trưởng mạnh mẽ. Các công trình nghiên cứu và ứng dụng
công nghệ này đều rất phong phú , đa dạng. Vi điều khiển đang dần dần thay thế con
người trong các ứng dụng thực tiễn như: Điều khiển tốc độ động cơ, đo nhịp tim, đo
nhiệt độ, …
Với ưu điểm là điều khiển tốc độ động cơ dễ dàng, độ ổn định tốc độ cao nên động
cơ một chiều đã được sử dụng khá phổ biến như: truyền động cho một số máy như máy
quạt, máy bơm, máy nâng, máy nghiền, điều khiển robot …
Động cơ một chiều có nhiều ứng dụng trong điều khiển và sản xuất nhất là trong
công nghiệp. Trong đó nó đòi hỏi là động cơ phãi có nhiều cấp độ để có thể tăng giảm
dễ dàng phù hợp với nhu cầu người dùng.
Với sự ra đời và phát triển của vi điều khiển thì vấn đề điều khiển động cơ một
chiều không còn là vấn đề khó khăn . Ta có thể tùy ý điều khiển động cơ với nhiều mức
tốc độ khác nhau, đảo chiều, dừng.


2. Mục đích, ý nghĩa
Tạo ra được mô hình điều khiển động cơ một chiều, hiểu được nguyên lý hoạt
động, cấu tạo, các phương pháp hoạt động cho động cơ. Và đặc biệt là việc kết hợp
giửa vi điều khiển PIC16F877A với Module Sim900A giúp ta có thể điều khiển động
cơ từ xa một cách rất thuận tiện tiết kiệm thời gian chi phí.
3. Phương pháp thực hiện
- Đưa ra ý tưởng thiết kế.
- Thiết kế mạch phần cứng điều khiển: kết nối PIC, điều khiển hoạt động của động
cơ.
- Viết code CCS cho mạch cứng.
- Chạy mô phỏng và mạch thật.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 5/39

CHƯƠNG 2. SƠ ĐỒ HỆ THỐNG, NGUYÊN LÝ HOẠT ĐỘNG
1. Sơ đồ khối

Hình 1: Sơ đồ khối

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 6/39

2. Sơ đồ nguyên lý


Hình 2: Sơ đồ nguyên lý
2.1 Khối điều khiển trung tâm

Hình 3: Khối điều khiển trung tâm

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 7/39

2.2 Khối công suất

Hình 4: Khối công suất
Ở đề tài này em dùng khối nguồn là Adapter 5v 1A nên không đưa sơ đồ nguyên
lý của khối nguồn vào phần này.
3. Nguyên lý hoạt động
Khối PIC16F877A là khối điều khiển trung tâm làm nhiệm trực tiếp với module
SIM900A qua giao tiếp UART để nhận và gửi tin nhắn, nhận tín hiệu từ SMS thông
qua điện thoại rồi xử lý tín hiệu để xuất ra xung điều khiển cho khối điều khiển công
suất theo mức yêu cầu.
Khối Module SIM900A làm nhiệm vụ nhận và gửi tin nhắn qua điện thoại thông
qua giao tiếp GSM, thông qua giao tiếp UART gửi tín hiệu qua khối trung tâm để điều
khiển động cơ.
Khối điều khiển công suất nhận tín hiệu từ khối trung tâm, điều khiển tốc độ của
động cơ.
Khối nguồn cung cấp: Adapter cấp nguồn 5V cho mạch hoạt động, PIN cấp nguồn
12V cho động cơ.


Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 8/39

CHƯƠNG 3. TÌM HIỂU LINH KIỆN
Các linh kiện chính được sử dụng trong mạch:
PIC16F877A.
Module SIM900A.
Module L298N.
DC Motors.
1. PIC16F877A
1.1 Lịch sử
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology.
Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division
thuộc General Instrument.
PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" (Máy tính
khả trình thông minh) là sản phẩm của hãng General Instruments đặt cho dòng
sản phẩm đầu tiên của họ là PIC1650. Lúc đó, PIC1650 được dùng để giao tiếp với
các thiết bị ngoại vi cho máy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái
tên "Peripheral Interface Controller" (Bộ điều khiển giao tiếp ngoại vi).
1.2 Khái quát về PIC16F877A

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 9/39


Hình 5: PIC16F877A
PIC 16F877A thuộc họ vi điều khiển 16Fxxx có các đặt tính sau:
-

Ngôn ngữ lập trình đơn giản với 35 lệnh có độ dài 14 bit.

-

Tất cả các câu lệnh thực hiện trong 1 chu kì lệnh ngoại trừ 1 số câu lệnh rẽ
nhánh thực hiện trong 2 chu kì lệnh. Chu kì lệnh bằng 4 lần chu kì dao động của
thạch anh.

-

Bộ nhớ chương trình Flash 8Kx14 words, với khả năng ghi xoá khoảng 100
ngàn lần.

-

Bộ nhớ Ram: 368x8bytes.

-

Bộ nhớ EFPROM: 256x8 bytes.

-

Khả năng ngắt (lên tới 14 nguồn cả ngắt trong và ngắt ngoài).

-


Ngăn nhớ Stack được chia làm 8 mức.

-

Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.

-

Dải điện thế hoạt động rộng: 2.0V đến 5.5V.

-

Nguồn sử dụng 25mA.

-

Công suất tiêu thụ thấp:
<0.6mA với 5V, 4MHz
20uA với nguồn 3V, 32 kHz.

-

Có 3 timer: timer0, 8 bit chức năng định thời và bộ đếm với hệ số tỷ lệ
trước.Timer1, 16 bit chức năng bộ định thời, bộ đếm với hệ số tỷ lệ trước, kích
hoạt chế độ Sleep.Timer2, 8 bit chức năng định thời và bộ đếm với hệ số tỷ lệ
trước và sau.

-


Có 2 kênh Capture/ so sánh điện áp (Compare)/điều chế độ rộng xung PWM 10
bit / (CCP).

-

Có 8 kênh chuyển đổi ADC 10 bit.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 10/39

-

Cổng truyền thong nối tiếp SSP với SPI phương thức chủ và I 2C (chủ/phụ).Bộ
truyền nhận thông tin đồng bộ, dị bộ (USART/SCL) có khả năng phát hiện 9 bit
địa chỉ.

-

Cổng phụ song song (PSP) với 8 bít mở rộng, với RD, WR và CS điều khiển.

-

Tổ chức bộ nhớ của PIC 16F877A.

-

Chức năng của các Port I/O.


-

Chức năng và cách thiết lập bộ điều chế độ rộng xung PWM.

Hình 6: Sơ đồ nguyên lý PIC16F877A

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 11/39

1.3 Sơ đồ chân và ý nghĩa của các chân PIC16F877A
1.3.1 Sơ đồ chân

Hình 7: Sơ đồ chân PIC16F877A

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 12/39

1.3.2 Ý nghĩa các chân PIC16F877A

Hình 8: Ý nghĩa các chân PIC16F877A
1.4 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Program memory) và bộ nhớ dữ liệu (Data Memory).


Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 13/39

1.4.1 Bộ nhớ chương trình
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ
nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page0 đến page 3) .
Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì một lệnh
sau khi mã hóa sẽ có dung lượng 1 word (14 bit).Để mã hóa được địa chỉ của 8K word
bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13 bit (PC<12:0>).
Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset
vector).Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt
vector). Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa
bởi bộ đếm chương trình.
1.4.2 Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC16F877A được chia thành 4 bank. Mỗi bank có dụng lượng
128 byte.
Mỗi bank của bộ nhớ dữ liệu PIC16F877A bao gồm cả các thanh ghi có chức năng
đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích dùng chung
GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi. Vùng ô nhớ các thanh ghi
mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu trong quá trình viết
chương trình. Tất cả các biến dữ liệu nên được khai báo chứa trong vùng địa chỉ này.
Trong cấu trúc bộ nhớ dữ liệu của PIC16F877A, các thanh ghi SFR nào mà thường
xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank để thuận
tiện trong việc truy xuất. Sở dĩ như vậy là vì, để truy xuất một thanh ghi nào đó trong
bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi đó, việc đặt các
thanh ghi sử dụng thường xuyên giúp ta thuận tiên hơn rất nhiều trong quá trình truy

xuất, làm giảm lệnh chương trình.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 14/39

Hình 9: Cấu trúc bộ nhớ dữ liệu của PIC16F877A
Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F877A ta rút ra các nhận xét như sau:
- Bank0 gồm các ô nhớ có địa chỉ từ 00h đến 77h, trong đó các thanh ghi dùng
chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh. Các thanh ghi PORTA,

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 15/39

PORTB, PORTC, PORTD, PORTE đều chứa ở bank0, do đó để truy xuất dữ liệu các
thanh ghi này ta phải chuyển đến bank0. Ngoài ra một vài các thanh ghi thông dụng
khác ( sẽ giới thiệu sau) cũng chứa ở bank0.
- Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh. Các thanh ghi dùng chung có
địa chỉ từ A0h đến Efh. Các thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE cũng
được chứa ở bank1.
- Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên.
- Cũng quan sát trên sơ đồ, ta nhận thấy thanh ghi STATUS, FSR… có mặt trên
cả 4 bank. Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của
PIC16F877A là : phải khai báo đúng bank chứa thanh ghi đó.Nếu thanh ghi nào mà 4
bank đều chứa thì không cần phải chuyển bank.

1.5 Khái quát về chức năng của các PORT trong PIC16F877A
1.5.1 PORTA
PORTA (RPA) bao gồm 6 I/O pin.Đây là các chân “hai chiều” (bidirectional
pin), nghĩa là có thể xuất và nhập được.Chức năng I/O này được điều khiển bởi thanh
ghi TRISA (địa chỉ 85h). Muốn xác lập chức năng của một chân trong PORTA là input,
ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại,
muốn xác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều
khiển tương ứng với chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự
đối với các PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là
TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là
TRISD vàđối với PORTE là TRISE).
1.5.2 PORTB
PORTB (RPB) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là
TRISB.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 16/39

Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp
chương trình cho vi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan
đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên
được điều khiển bởi chương trình.
1.5.3 PORTC
PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự
điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên.
Ngoài ra PORTC còn có các chức năng quan trọng sau :
- Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng.

- Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle: sử
dụng trong điều khiển tốc độ và vị trí của động cơ v.v….
- Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART.
1.5.4 PORTD
PORTD có 8 chân. Thanh ghi TRISD điều khiển 2 chức năng input và output
của PORTD tương tự như trên.PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp
song song PSP (Parallel Slave Port).
2. Module L298N
Module L298N là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với
điện áp làm tăng công suất nhỏ như DC loại vừa và để điều khiển nó. Module có gắn
tản nhiệt chống nóng cho IC, dòng đỉnh lên tới 2A.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 17/39

Hình 10: Module L298N
2.1 Thông số kĩ thuật
-

Diver: L298N tích hợp hai mạch cầu H.

-

Điện áp điều khiển: +5V~+12V.

-


Dòng tối đa cho mỗi cầu H là: 2A.

-

Dòng của tín hiệu điều khiển: +5V~+7V.

-

Công suất hao phí: 20W (khi nhiệt độ T=75°C).

-

Nhiệt độ bảo quản: -25°C ~ +130 °C.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 18/39

2.2 Mạch cầu H

Hình 11: Mạch cầu H
Trong hình trên, xem 2 đầu V và GND là 2 đầu (+) và (-) của ắc qui, “đối
tượng” là động cơ DC mà chúng ta cần điều khiển, “đối tượng” này có 2 đầu A và B,
mục đích điều khiển là cho phép dòng điện qua “đối tượng” theo chiều A đến B hoặc B
đến A. Thành phần chính tạo nên mạch cầu H của chúng ta chính là 4 “khóa” L1, L2,
R1 và R2 (L: Left, R:Right). Ở điều kiện bình thường 4 khóa này “mở”, mạch cầu H
không hoạt động.


Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 19/39

Hình 12: Nguyên lý hoạt động của mạch cầu H
Giả sử ta muốn 2 khóa L1 và R2 được đóng lại mà L2 và R1 vẫn mở, ta thấy có
một dòng điện chạy từ V qua khóa L1 đến đầu A và xuyên qua đối tượng đến đầu B
của nó trước khi qua khóa R2 và về GND ( hình bên trái). Như thế, với giả sử này sẽ
có dòng điện chạy qua đối tượng theo chiều từ A đến B. Bây giờ hãy giả sử khác đi
rằng R1 và L2 đóng trong khi L1 và R2 mở, dòng điện lại xuất hiện và lần này nó sẽ
chạy qua đối tượng theo chiều từ B đến A như trong hình bên phãi (V->R1->B->A>L2->GND). Ta có thể dùng mạch cầu H để đảo chiều dòng điện qua một đối tượng
(hay cụ thể, đảo chiều quay động cơ).

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 20/39

3. Module SIM900A

Hình 13: Module SIM900A
GSM Module Sim900A là một sản phẩm do AT-COM phát triển nhằm giúp
người sử dụng có thể khai thác các tính năng của Sim900A một cách dễ dàng. Board
hỗ trợ khá đầy các ngõ ra của Module Sim900A ( RS232, Audio, ADC, VRTC, PWM,
I2C...). Dễ kết nối kết nối với các dòng vi điều khiển như PIC, AVR, ARM, Arduino để
phát triển các ứng dụng điều khiển, giám sát qua môi trường mạng GSM, GPRS. Ngõ
ra RS232 giúp giao tiếp máy tính và lập trình cho Module Sim900A thông qua tập

lệnh AT COMMAND.
GSM Module SIM900A được thiết kế với bộ nguồn xung 3A tích hợp trên
mạch. Nguồn xung sử dụng IC LM2596-ADJ với dòng tải 3A, tần số đáp ứng
150KHz. Thiết kế với khả năng cung cấp 3 mức điện áp khác nhau cho module
SIM900A là 3.3V, 4V, 4.5V. Tuỳ theo từng ứng dụng mà người dụng sẽ chọn mức điện
áp phù hợp cho SIM900A. Hỗ trợ một header ngõ ra VCC, GND để cung cấp nguồn ra
bên ngoài cho vi điều khiển, cảm biến, ngoại vi… Điện áp ngõ ra được lựa chọn thông
qua một “jumper select “ trên mạch.
GSM Module SIM900A với ngõ ra chuẩn RS232 giúp người sử dụng dễ dàng
giao tiếp với module SIM900A thông qua tập lệnh AT COMMAND. Có thể kết nối với

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 21/39

vi điều khiển lập trình ứng dụng trên SIM900A, hoặc giao tiếp với máy tính để kiểm
tra SIM900A sử dụng các phần mềm Terminal.
Các tập lệnh cơ bản của GSM Module SIM900A:
Các tập lệnh AT cơ bản:
Các lệnh chung
-

Lệnh:

AT<CR><LF>

Mô tả : Kiểm tra đáp ứng của Module Sim 900A, nếu trả về OK thì Module hoạt
động

-

Lệnh:

ATE[x]<CR><LF>

Mô tả : Chế độ echo là chế độ phản hồi dữ liệu truyền đến của module Sim
900A,
x = 1 bật chế độ echo , x = 0 tắt chế độ echo (bạn nên tắt chế độ này khi giao
tiếp với vi điều khiển)
-

Lệnh:

AT+IPR=[baud rate]<CR><LF>

Mô tả : cài đặt tốc độ giao tiếp dữ liệu với Module Sim800C, chỉ cài được các
tốc độ sau
baud rate :
-

Lệnh:

0 (auto), 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

AT&W<CR><LF>

Mô tả : lưu lại các lệnh đã cài đặt
Các lệnh điều khiển cuộc gọi
-


Lệnh:

AT+CLIP=1<CR><LF>

Mô tả : Hiển thị thông tin cuộc gọi đến
- Lệnh:
ATD[Số_điện_thoại];<CR><LF>
Mô tả : Lệnh thực hiện cuộc gọi

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 22/39

-

Lệnh:

ATH<CR><LF>

Mô tả : Lệnh thực hiện kết thúc cuộc gọi , hoặc cúp máy khi có cuộc gọi đến
-

Lệnh:

ATA<CR><LF>

Mô tả : Lệnh thực hiện chấp nhận khi có cuộc gọi đến

Các lệnh điều khiển tin nhắn
-

Lệnh:

AT+CMGF=1<CR><LF>

Mô tả : Lệnh đưa SMS về chế độ Text , phải có lệnh này mới gửi nhận tin nhắn
dạng Text
-

Lệnh:

AT+CMGS=”Số_điện _thoại”<CR><LF>

Đợi đến khi có ký tự ‘>’ được gửi về thì đánh nối dung tin nhắn
Gửi mã Ctrl+Z hay 0x1A để kết thúc nội dung và gửi tin nhắn
Mô tả : Lệnh gửi tin nhắn
-

Lệnh:

AT+CMGR=x<CR><LF>

x là địa chỉ tin nhắn cần đọc
Mô tả : Đọc một nhắn vừa gửi đến, lệnh được trả về nội dung tin nhắn, thông tin
người gửi, thời gian gửi
-

Lệnh:


AT+CMGDA="DEL ALL"<CR><LF>

Mô tả : Xóa toàn bộ tin nhắn trong các hộp thư
-

Lệnh:

AT+CNMI=2,2<CR><LF>

Mô tả :Hiển thị nội dung tin nhắn ngay khi có tin nhắn đến

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 23/39

4. Động cơ DC
4.1 Giới thiệu chung

Hình 14: Động cơ DC
Động cơ một chiều DC ( Direct Current Motors) là động cơ điều khiển trực tiếp
có cấu tạo gồm 2 dây (dây nguồn và dây tiếp đất). Động cơ DC là một động cơ một
chiều với cơ năng quay liên tục.
Khi ta cung cấp năng lượng thì động cơ DC sẽ quay (đây là quá trình chuyển
điện năng thành cơ năng). Các động cơ DC thường được ứng dụng vào làm máy quạt,
máy bơm, …
Để điều khiển tốc độ quay của động cơ DC, người ta dùng điều biến độ rộng
xung (kí hiệu là PWM), đây là kỹ thuật điều khiển tốc độ vận hành bằng việc bật và tắt

các xung điện. Tỷ lệ phần trăm vận tốc với thời gian của thiết bị được điều khiển bằng
cơ chế bật tắt một mức độ cơ số vòng quay xác định của động cơ.

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 24/39

4.2 Cách thiết lập PWM
Khi hoạt động ở chế độ PWM (Pulse Width Modulation _ khối điều chế độ rộng
xung), tính hiệu sau khi điều chế sẽ được đưa ra các pin của khối CCP (cần ấn định
các pin này là output ). Để sử dụng chức năng điều chế này trước tiên ta cần tiến
hành các bước cài đặt sau:
-

Thiết lập thời gian của 1 chu kì của xung điều chế cho PWM (period) bằng cách

đưa giá trị thích hợp vào thanh ghi PR2.
-

Thiết lập độ rộng xung cần điều chế (duty cycle) bằng cách đưa giá trị vào thanh

ghi CCPRxL và các bit CCP1CON<5:4>.
-

Điều khiển các pin của CCP là output bằng cách clear các bit tương ứng trong

thanh ghi TRISC.
-


Thiết lập giá trị bộ chia tần số prescaler của Timer2 và cho phép Timer2 hoạt

động bằng cách đưa giá trị thích hợp vào thanh ghi T2CON.
-

Cho phép CCP hoạt động ở chế độ PWM.
Trong đó giá trị chu kì (period) của xung điều chế được tính bằng cộng thức :
PWM period = [(PR2)+1]*4*TOSC*(giá trị bộ chia tần số của TMR2)

Áp dụng công thức chu kì PWM ta có:
T(pwm)=[PR2+1]*4*(Tosc)*(TMR2 Prescale Value)
=[PR2+1]*4*(1/Fosc)*(TMR2 Prescale Value)
hay T(pwm)=[99+1]*4*(1/4*(10^6))*1
=100*10^(-6)=10^(-4)=10khz
Vậy tần số để điều khiển động cơ là 10 (KHz) : ở tần số này hệ thống bị đơ nên ta
phãi giảm tần số xuống :
128*16*10^-6=500Hz(gần đúng)
Tính duty
VD: Muốn duty là 40% voi chu kì là 10khz ta thực hiện cách tính như sau:
Ta có: PR2 = 99 (Giá trị chu kì)

Điều Khiển Hai Động Cơ DC Qua SMS


ĐỒ ÁN 2
TRANG 25/39

Duty cần tính là:
40% = x/(99+1)

<=> 40% = x/100
<=> x = 40% * 100 = 40
Áp dụng cho PR2=126 để tính ra Duty cho hệ thống.
25% = x/(127)
<=> 25% = x/127
<=> x = 25% * 127 = 32
<=> x = 50% * 127 = 64
<=> x = 100% * 127 = 127

Điều Khiển Hai Động Cơ DC Qua SMS


×