ĐỒ ÁN 2
ĐIỀU KHIỂN ĐỘNG CƠ DC DÙNG PIC
MỤC LỤC
DANH MỤC CÁC HÌNH VẼ
DANH MỤC CÁC BẢNG BIỂU
DANH MỤC CÁC TỪ VIẾT TẮT
EMF (Electromotive force)
Sức Điện Động
PWM
Điều chế độ rộng xung
(Pulse-width modulation)
DC ( Direct current motor)
Động Cơ Điện một chiều
PIC (Programmable Intelligent Computer)
Máy tính khả trình thông minh
ĐỒ ÁN 2
Trang 6/22
CHƯƠNG 1.
1.1
TỔNG QUAN VỀ ĐỀ TÀI
Giới Thiệu Đề Tài :
Đề tài “Điều khiển Động Cơ DC bằng PIC” là một đề tài khá phổ biến về mặt
ứng dụng của động cơ DC vào cuộc sống , động cơ DC xuất hiện khắp nơi trên mọi
lĩnh vực công nghệ , tự động , sản xuất và vâng vâng . Đề tài này dùng vi điều khiển
PIC 16f877a là loại vi điều khiển khá phổ biến trên thị trường .
Đề tài với mục đích tìm hiểu nguyên lý hoạt động của động cơ DC và vi điều
khiển PIC 16f877a trong việc điều khiển Tốc Độ + Chiều Quay của Động Cơ DC.
Yêu Cầu đặt ra : Lập Trình Pic 16F877A điều khiển tốc độ cho động cơ DC , tốc
độ được điều khiển bằng nút nhận phản hồi , tăng tốc , giảm tốc , thay đổi chiều
quay động cơ .
1.2Lịch Sử ra đời Động Cơ DC và PIC :
1.2.1
Động cơ DC :
Động cơ điện một chiều (DC) được ra đời khoảng cuối thế kỷ thứ XIX ,động cơ
điện là một trong những phát minh vĩ đại của nhân loại , động cơ điện là máy điện
dùng để chuyển đổi năng lượng điện sang năng lượng cơ .
Hình 1. 1: Động Cơ Điện Một Chiều
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 7/22
Động cơ điện DC ( DC viết tắt là “ Direct current motor”) là động cơ điều khiển
trực tiếp có cấu tạo gồm hai dây ( dây nguồn và dây tiếp đất ) DC motor là một
động cơ một chiều với cơ năng quay liên tục.
Khi cung cấp năng lương động cơ DC sẽ bắt đầu quay. Chuyển điện năng thành cơ
năng . Các động cơ DC sẽ quay với cường độ RPM rất cao ( số vòng/phút ) và các
động cơ DC đều được ứng dụng để làm quạt máy tính kiểm soát tốc độ của bánh
xe..
Hình 1. 2: Cấu tạo Động Cơ DC
Để điều khiển tốc độ quay của động cơ DC, ta dùng điều biến độ rộng xung (kí
hiệu là PWM), là kỹ thuật điều khiển tốc độ 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ơ.
PIC
1.2.2
Vi Điều Khiển PIC 16F877a
là
họ
một
vi
điều
khiển
RISC
sản
xuất
bởi
công
ty
MicrochipTechnology. Dòng PIC đầu tiên là PIC 1650 phát triển bởi
Microelectronics Division sở hữu bởi General Instrument .
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 8/22
PIC 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 này, 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).
Hình 1. 3: Vi Điều Khiển PIC 16F877A
1.3Ứng Dụng Của Đề Tài:
Động cơ điện một chiều được ứng dụng rộng rãi trong đời sống , trong nền sản
xuất hiện đại , nó có thể làm động cơ điện , máy phát điện trong các trường hợp làm
việc khác nhau.
Động cơ điện một chiều có đặc tính điều chỉnh tốc độ rất tốt, vì vậy được sử
dụng trong các ngành công nghiệp cần yêu cầu cao về điều chỉnh tốc độ như : cán
thép , hầm mỏ , giao thông vận tải .
Vi Điều Khiển PIC được ứng dụng trong các lập trình về tự động , điều khiển ,
robot và các lĩnh vực công nghệ cao khác.
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 9/22
CHƯƠNG 2.
NỘI
DU
NG
ĐỀ
TÀI
2.1Sơ Đồ Giải Thuật của Mạch:
Hình 2. 1: Sơ Đồ Khối Mạch Điều Khiển Động Cơ DC
Sơ đồ Giải Thuật của mạch “Điều khiển động cơ DC dùng PIC” bao gồm các khối
module:
• Khối Nguồn DC : để cung cấp điện cho mạch với ngõ ra là 12VDC cấp cho
khối mudule L298D và 5VDC cấp cho PIC 16F877A .
• Khối Điều Khiển : bao gồm các nút nhấn thay đổi tốc độ và chiều quay động
cơ .
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 10/22
• Khối Vi Điều Khiển PIC : là khối điều khiển trung tâm có nhiệm vụ tính toán
điều khiển xung PWM và tín hiệu ngõ ra cấp cho khối L298D.
• Khối Module L298D : có nhiệm vụ điều khiển tốc độ chiều quay động cơ
• Khối Động Cơ : được điều khiển qua khối module L298D thể hiện tốc độ
chiều quay.
2.2Các linh kiện chính sử dụng trong mạch:
2.2.1
Vi Điều Khiển PIC 16F877A:
Hình 2. 2: Sơ Đồ Chân PIC 16F877A
• Một số thông số kỹ thuật PIC 16F877A
Cấu trúc I/O (input/output) :
PIC 16F877A có 5 port có chức năng I/O :
Port A : (RA0 - RA5), port A được điều khiển bởi thanh ghi trisA. Ngoài ra
port A còn là ngõ ra cũa bộ chuyễn đỗi ADC, bộ so sánh điện áp và là ngõ
vào cũa xung Clock cho Timer 0 hoạt động.
Port B : (RB0 - RB7) 8 bit I/O cũng được điều khiển bỡi thanh ghi trisB,
ngoài ra Port B còn liên quan đến tính năng ngắt ngoại vi.
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 11/22
Port C : (RC0 - RC7) 8 bit I/O cũng được điều khiển bỡi thanh ghi trisC, bên
cạnh đó port C còn có các chân có tính năng so sánh, đồng thời là ngõ vào
xung Clock của bộ Timer 1 và các chuẩn giao tiếp nối tiếp.
Port D : (RD0 - RD7) : 8 bit I/O được điều khiển bỡi thanh ghi trisD.
Port E : (RE0 - RE2) : 3 bit I/O được điều khiển bởi thanh ghi trisE, ngoài ra
còn có tính năng nhận ngõ vào Analog để thực hiện chuyễn đỗi ADC
• Các đặc tính ngoại vi bao gồm các khối chức năng sau:
• Timer0: bộ đếm 8 bit với bộ chia tần số 8bit.
• Timer1: bộ đếm 16 bit với bộ chia tần số , có thể thực hiện chức năng đếm
•
•
•
•
•
dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
Timer2: bộ đếm 8 bit với bộ chia tần số , bộ postcaler
Hai bộ capture/so sánh/ điều chế độ rộng xung
Các chuẩn giao tiếp nối tiếp SSP ( synchronous serial port ) , SPI vaf I2C
Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ .
Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển
RD, WR, CS ở bên ngoài.
2.2.2
Module L298D:
Module L298D là mạch tích hợp IC L298D còn gọi là IC cầu H thường được dùng
trong các mạch điều khiển tốc độ động cơ xe điều khiển , là một module thông dụng
với đầy đủ chức năng nó có thể điều khiển cùng lúc 2 động cơ.
•
Thông số kỹ thuật:
Drive: L298N tích hợp hai mạch cầu H.
Dòng tối đa cho mỗi cầu H là: 2A (2A cho mỗi motor)
Điện áp điều khiển: +5 V ~ +12 V
Công suất hao phí: 20W
Điện áp của tín hiệu điều khiển: +5 V ~ +7 V
Dòng của tín hiệu điều khiển: 0 ~ 36mA
Nhiệt độ bảo quản: -25 ℃ đến khoảng 130 ℃
• Các chức năng chính của module L298D:
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 12/22
Hình 2. 3: Module Mạch Điều Khiển L298D
INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của
L298. Đây là các chân nhận tín hiệu điều khiển.
OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT)
được nối với các chân 2, 3,13,14 của L298. Các chân này sẽ được nối với
động cơ.
Hai chân ENA và ENB dùng để điều khiển mạch cầu H trong L298. Nếu ở
mức logic “1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, nếu ở
mức logic “0” thì mạch cầu H không hoạt động
Power : ở module này ta có thể cấp nguồn 12VDC vào +12VPower thì ta sẽ
được +5V Power như hình để cấp cho vi điều khiển nếu cần .
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 13/22
2.2.3
Động Cơ DC:
Hình 2. 4: Nguyên Lý Hoạt Động Động Cơ DC
Gồm có 3 phần chính :
• Stator (Phần Cảm) : của động cơ điện 1 chiều thường là 1 hay nhiều cặp nam
châm vĩnh cửu, hay nam châm điện.
• Rotor (Phần Ứng) : có các cuộn dây quấn và được nối với nguồn điện một
chiều.
• phần chỉnh lưu ( chổi than và cổ góp) : Bộ phận chỉnh lưu, nó có nhiệm vụ là
đổi chiều dòng điện trong khi chuyển động quay của rotor là liên tục. Thông
thường bộ phận này gồm có một bộ cổ góp và một bộ chổi than tiếp xúc với
cổ góp.
• Nguyên Tắc Hoạt Động:
- Pha 1: Từ trường của rotor cùng cực với stator, sẽ đẩy nhau tạo ra chuyển
-
động quay của rotor.
Pha 2: Rotor tiếp tục quay
Pha 3: Bộ phận chỉnh điện sẽ đổi cực sao cho từ trường giữa stator và rotor
cùng dấu, trở lại pha 1
Nếu động cơ điện được quay(kéo) với 1 lực tác động bên ngoài , thì động cơ
điện sẽ hoạt động như máy phát điện 1 chiều , tạo ra một sức điện động cảm ứng
EMF.
Đặc tính cơ của động cơ điện là hàm có dạng M=f(w) hoặc w=f(M) trong đó w
là vận tốc góc và M là mô mem.
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 14/22
2.3Một số Phương Pháp Sử Dụng trong Mạch:
2.3.1
Điều Chế Độ Rộng Xung (PWM):
Phương pháp điều chế độ rộng xung (PWM) để điều khiển tốc độ động cơ một
chiều (DC) trên cơ sở các họ vi điều khiển 8 bit. Nguyên tắc cơ bản của phương
pháp PWM và các giải thuật lập trình tạo xung PWM cho các họ vi điều khiển khác
nhau như: 8051, P89V51RD2, PIC 16F877A, ATMEGA16 sẽ được đề xuất. Việc
điều khiển động cơ DC bằng phương pháp đề xuất sẽ được minh họa qua các kết
quả mô phỏng bằng Proteus.
Nguyên tắc cơ ản của phương pháp điều khiển PWM là giữ nguyên giá trị
điện áp và thay đổi thời gian đặt điện áp vào động cơ. Điều này có nghĩa, với tần số
đóng ngắt công tắc đủ lớn, thời gian cấp điện áp vào động cơ càng lâu thì điện áp
trung ình càng cao, ngược lại thời gian cấp điện vào động cơ ngắn điện áp trung
bình giảm. Như vậy, PWM là một kỹ thuật so sánh tỷ lệ phần trăm điện áp nguồn
bằng cách đóng ngắt nhanh nguồn điện cấp vào động cơ tạo ra một tín hiệu xung,
với độ rộng xung (thời gian cấp điện áp) xác định sẽ tạo ra một điện áp trung bình
xác định (được minh họa như hình 1). Khi tần số đóng ngắt đủ lớn (thường từ 1 ÷
20 kHz), động cơ sẽ chạy với một tốc độ ổn định nhờ moment quay.
Đại lượng mô tả mối quan hệ giữa khoảng thời gian T-on và T-off được gọi là
độ rộng xung (duty cycle )
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 15/22
Hình 2. 5 Điều Chế Xung PWM
• Phương Pháp tạo xung PWM bằng VĐK PIC 16F877A
Vi điều khiển PIC16F877A có hỗ trợ kênh điều xung bằng phần cứng ở 2 chân
C1 (CCP2) và C2(CCP1) sử dụng TIMER2. Khi khai áo điều xung PWM ở một
tần số và độ rộng xung cụ thể nào đó thì vi điều khiển sẽ thực hiện công việc xuất
xung một cách liên tục và tự động cho đến khi có sự thay đổi các giá trị độ rộng
xung mới.
Các hàm hỗ trợ tạo xung PWM trong CCS:
setup_timer_2 (mode, period, postscale) // hàm thiết lập timer 2
- mode: T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16
- period: 0 ÷ 255
- postscale: 1
setup_ccp1(mode) và setup_ccp2(mode) // hàm thiết lập chế độ PWM mode:
- CCP_PWM: chọn chế độ PWM.
- CCP_OFF: tắt chế độ PWM.
set_pwm1_duty(value) và set_pwm2_duty(value) // hàm thiết lập giá trị PWM
Nếu value là giá trị kiểu int 8 bit:
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 16/22
Nếu value là giá trị long int 16 bit:
phương pháp điều khiển tốc độ động cơ DC bằng kỹ thuật PWM sử dụng các họ vi
điều khiển thông dụng
2.3.2
Mạch Cầu H
• Nguyên Lý hoạt động mạch cầu H của Module L298D:
Hình 2. 6 : Mạch Cầu H trong L298D
Input1
Input2
Điều Khiển Động Cơ DC dùng PIC
Action
ĐỒ ÁN 2
Trang 17/22
LOW
LOW
Động Cơ Nghĩ và Dừng
HIGH
LOW
Động Cơ Quay Thuận
LOW
HIGH
Động Cơ Quay Nghịch
HIGH
HIGH
Động Cơ Nghĩ và Dừng
Bảng 1. 1 Nguyên tắc hoạt động I/O L298D
Như vậy ta thấy 1 động cơ trên L298D được điều khiển bằng 2 chân In1,In2 và ngõ
ra là Out1 và Out2 .Ngõ vào In1 In2 cùng mức Low hoặc High thì động cơ nghĩ ,
khác mức thì động cơ hoạt động .
Ngoài ra chân EnA và EnB là 2 chân cho phép mạch cầu hoạt động. nếu không đặt
mức logic “1” ở chân này thì mạch sẽ không hoạt động .
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 18/22
CHƯƠNG 3.
3.1
MÔ PHỎNG MẠCH
Mô phỏng mạch nguyên lý trên Protues:
3.1.1
Khối nguồn
Mạch lấy nguồn xoay chiều qua Adapter AC/DC 220VAC/12VDC , và được ổn áp
bởi IC 7805
Hình 3. 1: Khối Mạch Nguồn
• Chức năng chính của các phần tử trong mạch:
IC7805 : chức năng ổn áp điện áp 5VDC cung cấp cho mạch vi điều khiển
PIC 16f877a điện áp ổn định.
C1 ( có phân cực ) ổn áp ngõ vào và ngõ ra , diện dung tụ này càng lớn thì
điện áp vào IC 7805 càng phẳng .
C3 và C4 ( không phân cực ) là tụ giấy lọc nhiễu tần số cao ngõ vào và ra
của mạch , bảo đảm mạch không bị nhiễu.
C2 Tụ hóa có tác dụng dập dao động tự kích khi sử dụng IC ổn áp dòng
78xx
3.1.2
Khối mạch điều khiển:
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 19/22
Hình 3. 2: Khối Mạch Điều Khiển
•
Vi điều khiển trung tâm là PIC 16F877A có chức năng của các port như
sau:
PORT A (A0 – A4) được set là ngõ vào nhận tín hiệu từ các nút nhấn STOP ,
TANG TOC , GIAM TOC , QUAY THUAN , QUAY NGHICH.
PORT C ta sử dụng Chân (RC0,RC1) để xuất tín hiệu PWM điều khiển động
cơ và đảo chiều động cơ.
Thạch anh dùng trong mạch có giá trị 20MHz, với 2 tụ C1, C2 là tụ giấy với điện
dung 22pF , Pic 16F877A reset khi chân số 1 MCLR nối mass .
3.1.3
Khối L298D và Động Cơ DC
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 20/22
Hình 3. 3 Khối Mạch L298D và Động Cơ
Nguyên lý hoạt động của L298D như sau:
Động cơ chỉ hoạt động được khi chân EN1 và EN2 ở mức “HIGH” và ngược lại
ngõ ra không hoạt động khi ở mức “LOW”.
Chân IN1 và IN2 của L298D quyết định chiều quay động cơ . Nếu cùng mức thì
động cơ dừng , khác mức thì động cơ quay . Nếu IN1 “HIGH” IN2 “LOW” thì động
cơ quay thuận. Ngược lại thì động cơ quay nghịch
3.2Mạch In PCB
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 21/22
Hình 3. 4: Mạch PCB thiết kế trong Protues
Mạch In PCB được vẽ bằng phần mền chuyên dụng protues .
Mạch tích hợp mạch nguồn và các linh kiện như diot chống xả dòng cho động cơ
bảo vệ mạch .
Hình 3. 5: Mạch PCB thiết kế tích hợp mạch nguồn
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 22/22
CHƯƠNG 4.
KẾT
LUÂ
N
4.1
Kết luận
Sau khi hoàn thành đề tài “ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ DC BẰNG
PIC”và hoàn thành theo đúng kế hoạch đề ra. Bao gồm các nhiệm vụ sau:
-Tìm hiểu động cơ DC , PIC.
-Tìm hiểu nguyên lý hoạt động của mạch.
-Mô phỏng mạch bằng protues.
-Nhấn nút thay đổi chiều và tốc độ động cơ.
-Hoàn thiện và viết báo cáo.
Do thời gian thực hiện đề tài có hạn nên không thể làm thêm một số thứ . em sẽ
cố gắng ở đề tài tốt nghiệp.
• Ưu Điểm :
Động cơ DC có tốc độ nhanh, động cơ xoay vòng liên tục. dễ điều khiển tốc độ
thông qua PWM
PIC 16f877a dễ sử dụng bằng việc lập trình thông qua ngôn ngữ lập trình C,C++…
• Nhược Điểm :
Động cơ DC một chiều cần phải có nguồn điện ổn định để có thể hoạt động tốt
chính xác .
4.2Hướng phát triển
Đề tài “Điều khiển động cơ DC bằng pic” được ứng dụng rộng rãi trên nhiều
lĩnh vực tự động , cấp thoát nước , robot các ngành công nghệ cao với độ chính xác
cao như CNC.
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 23/22
TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1]
“Điều khiển động cơ DC quay thuận nghịch” – diễn đàn cơ điện tử
-hoxuanson 15/3/2014 />[2] Điều khiển tốc độ động cơ DC dùng PIC 16f877a – diễn đàn cơ điện tử keoholodeee 3/5/2017 />[3] Pic16f877a + L298D điều khiển động cơ DC – diễn đàn cơ điện tử lamcdt1k5 24/2/2014 />Tiếng Anh:
[1] Interfacing DC motor with PIC microcontroller using L298D – ligo George 05 Jun 2017 />[2] PIC-L298 DC Motor drive Issue’s! – permalink – 01 Sep 2016
/>[3] DC motor control using PIC16F877A and L293D – O B – 30 May 2016 />[4]
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 24/22
NGUỒN HÌNH ẢNH
[1]
[2]
[3]
/> /> />
motor-driver-ic
[4]
/>[5]
/>
Điều Khiển Động Cơ DC dùng PIC
ĐỒ ÁN 2
Trang 25/22
PHỤ LỤC A
#include <main.h>
void main()
{
unsigned char td;
unsigned char tocdo=0,tocdo1;
set_tris_a(0xFF);// thiet lap input cho portb
output_drive(PIN_C3); // IN1
output_drive(PIN_C4); // IN2
setup_ccp1(CCP_PWM);//set up pwm 1
setup_timer_2(T2_DIV_BY_16,255,1); //1220Hz
set_pwm1_duty(tocdo);
while(TRUE)
{
if(!input(PIN_A0)) {
output_low(PIN_C3); output_low(PIN_C4); tocdo1=0; set_pwm1_duty(tocdo1);
} //stop
if(!input(PIN_A3)) {
while(!input(PIN_A3)); output_low(PIN_C3); output_low(PIN_C4); tocdo1=0;
set_pwm1_duty(tocdo1);
delay_ms(1000);
output_low(PIN_C4);
}//thuan
if(!input(PIN_A4)) {
Điều Khiển Động Cơ DC dùng PIC
output_high(PIN_C3);