Nhớ rằng hai nửa của một mấu không bao giờ được kích cùng một lúc. Cả hai 
dãy nêu trên sẽ quay một động cơ nam châm vĩnh cửu một bước ở mỗi thời 
điểm. Dãy bên trái chỉ cấp điện cho một mấu tại một thời điểm, như mô tả trong 
hình trên; vì vậy, nó dùng ít năng lượng hơn. Dãy bên phải đòi hỏi cấp điện cho 
cả hai mấu một lúc và nói chung sẽ tạo ra một moment xoắy lớn hơn dãy bên 
trái 1.4 lần trong khi phải cấp điện gấp 2 lần. 
Phần Điều khiển mức trung bình trong tài liệu này sẽ cung cấp chi tiết về 
phương pháp tạo ra những dãy tín hiệu điều khiển như vậy, còn phần Các mạch 
điều khiển nói về mạch đóng ngắt các mạch điện cần thiết để điều khiển các 
mấu động cơ từ các dãy điều khiển trên.
                
              
                                            
                                
            
 
            
                 26 trang
26 trang | 
Chia sẻ: aquilety | Lượt xem: 2817 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu và điều khiển động cơ bước, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bộ Công Thương 
Trường Đại Học Công Nghiệp Hà Nội 
***** Khoa Điện ***** 
Đề tài : Tìm hiểu và điều khiển động cơ bước 
 Giáo viên hướng dẫn : Nguyễn Đăng Khang 
 Sinh viên thực hiện : Nguyễn Văn Hải 
 lớp : Điện2 _ K2 
 Hà nội 7/2010 
 Điều khiển động cơ bước 
Chương 1 : 
1.1 : giới thiệu chung về bộ điều khiển 
1.1.1 : giới thiệu về Vi xử lý 8051 ( 89S52) 
1.1.2 : giới thiệu về các van bán dẫn 
1.2 : Giới thiệu chung về động cơ bước 
1.3 : ứng dụng của động cơ bước 
Chương 2 : 
2.1 : phân loại động cơ bước 
2.2 : sơ đồ nguyên lý và mạch in điều khiển động cơ bước đơn cực 
2.3 : lưu đồ thuật toán điều khiẻn 
2.4 : chương trình điều khiển động cơ bước đơn cực 
Tài liệu tham khảo : 
Một số nhà cung cấp động cơ 
 (động cơ rất bé) 
 (động cơ cỡ trung bình) 
 gmbh.de/ (German) 
 inc.com/ 
 (100 to 800 steps per revolution) 
 (động cơ siêu nhỏ) 
 bin/agree.cgi?lang=1 (Japan) 
 Chương 1 
11 : giới thiệu chung về bộ điều khiển động cơ bước. 
Trong thực tế có rất nhiều hãng sản xuất động cơ bước có sản xuất kèm theo bộ điều khiển 
động cơ đi kèm theo một bộ( có đầy đủ nhưng chức năng như hiển thị , truyền thoog với các thiết bị 
điều khiển khác) . các bộ điều khiển này co ưu điểm rất tốt đó là nó có tính ổn đinh cao và có sự 
đồng bộ hóa . nhưng nhược điểm đó là giá thành quá cao . 
Vì vậy . nhóm em xin giới thiệu về nguyên lý điều khiển và bộ điều khiển động cơ bước đơn 
giản sử dụng vi điều khiển 8051 ( 89S52) và các van bán dẫn để điều khiển động cơ bước . 
Tổng quan về họ vi điều khiển 8051 
Cấu trúc bus 
 Bus địa chỉ của họ vi điều khiển 8051 gồm 16 đường tín hiệu (thường gọi là bus 
địa chỉ 16 bit). Với số lượng bit địa chỉ như trên, không gian nhớ của chip được 
mở rộng tối đa là 216 = 65536 địa chỉ, tương đương 64K. 
Bus dữ liệu của họ vi điều khiển 8051 gồm 8 đường tín hiệu (thường gọi là bus 
dữ liệu 8 bit), đó là lý do tại sao nói 8051 là họ vi điều khiển 8 bit. Với độ rộng 
của bus dữ liệu như vậy, các chip họ 8051 có thể xử lý các toán hạng 8 bit trong 
Bộ nhớ chương trình 
Vi điều khiển họ 8051 có không gian bộ nhớ chương trình là 64K địa chỉ, 
đó cũng là dung lượng bộ nhớ chương trình lớn nhất mà mỗi chip thuộc họ này 
có thể có được. Bộ nhớ chương trình của các chip họ 8051 có thể thuộc một 
trong các loại: ROM, EPROM, Flash, hoặc không có bộ nhớ chương trình bên 
trong chip. Tên của từng chip thể hiện chính loại bộ nhớ chương trình mà nó 
mang bên trong, cụ thể là vài ví dụ sau 
S
TT Tên chip ROM EPROM Flash 
1 8051 4 Kbyte x x 
2 8052 8 Kbyte x x 
3 8031 x x x 
4 8032 x x x 
5 87C51 x 4 Kbyte x 
6 87C52 x 8 Kbyte x 
7 
AT89C51 / 
AT89S51 x x 4 Kbyte 
8 
AT89C52 / 
AT89S52 x x 8 Kbyte 
Bộ nhớ dữ liệu 
Vi điều khiển họ 8051 có không gian bộ nhớ dữ liệu là 64K địa chỉ, đó cũng là dung lượng 
bộ nhớ dữ liệu lớn nhất mà mỗ i chip thuộc họ này có thể có được (nếu phối ghép một cách chính 
tắc, sử dụng các đường tín hiệu của bus địa chỉ và d ữ liệu). Bộ nhớ dữ liệu của các chip họ 8051 
có thể thuộc một hay hai loại: SRAM hoặc EEPROM. Bộ nhớ dữ liệu SRAM được tích hợp bên 
trong mọi chip thuộc họ vi đi ều khiển này, có dung lượng khác nhau tùy loại chip, nhưng thường 
chỉ khoảng vài trăm byte. Đây chính là nơi chứa các biến trung gian trong quá trình hoạt động c ủa 
chip. khi mất điện, do bản chất của SRAM mà giá trị của các biến này cũng bị mất theo. Khi có 
điện trở lại, nội dung của các ô nhớ chứa các biến này cũng là bất kỳ, không thể xác định trướ c. 
Bên cạnh bộ nhớ loại SRAM, một số chip thuộc họ 8051 còn có thêm bộ nhớ dữ liệu loại 
EEPROM với dung lượng tối đa vài Kbyte, tùy từng loại chip cụ thể. Dưới đ ây là một vài ví dụ về 
bộ nhớ chương trình của một số loại chip thông dụng thuộc họ 8051. 
S
TT Tên chip
Bộ nhớ 
SRAM
Bộ nhớ 
EEPROM 
1 AT89C51 128 byte 0 
2 AT89C52 256 byte 0 
3 AT89C2051 128 byte 0 
4 AT89S51 128 byte 0 
5 AT89S52 256 byte 0 
6 AT89S8252 256 byte 2048 byte 
Cổng vào/ra song song (Parrallel I/O Port) trong 8051 
8051 có 4 cổng vào ra song song, có tên lần lượt là P0, P1, P2 và P3. Tất cả các cổng này đều 
là cổng vào ra hai chiều 8bit. Các bit của mỗi cổng là một chân trên chip, như vậy mỗi cổng sẽ có 8 
chân trên chip. 
Hướng dữ liệu (dùng cổng đó làm c ổng ra hay cổng vào) là độc lập giữa các cổng và giữa các 
chân (các bit) trong cùng một cổng. Ví dụ, ta có thể định nghĩa cổng P0 là cổng ra, P1 là cổng vào 
hoặc ngược lại một cách tùy ý, với cả 2 cổng P2 và P3 còn lại c ũng vậy. Trong cùng một cổng P0, 
ta cũng có thể định nghĩa chân P0.0 là cổng vào, P0.1 lại là cổng ra tùy ý. 
Liên quan đến mỗi cổ ng vào/ra song song c ủa 8051 chỉ có một thanh ghi SFR ( thanh ghi 
chức năng đặc biệt) có tên trùng v ới tên của cổ ng. Ta có các thanh ghi P0 dùng cho cổng P0, thanh 
ghi P1 dùng cho cổng P1  Đây là các thanh ghi đánh địa chỉ đến từng bit (bit addressable), do đó 
ta có thể dùng các lệnh tác động bit đối với các bit c ủa các thanh ghi này. Mỗi thanh ghi này gồm 8 
bit tương ứng với các chân (bit) của cổng đó. Khi một chân (bit) cổng nào đó được dùng làm cổng 
vào thì trước đó bit tương ứng trong thanh ghi SFR phải được đặt ở mức 1. Nếu một chân (bit) cổng 
nào đó được dùng làm cổng ra thì giá tr ị của bit tương ứng trong thanh ghi SFR sẽ là giá tr ị lôgic 
muốn đưa ra chân cổng đó. Nếu muốn đưa ra mức lôgic cao (điện áp gần 5V), bit tương ứng trong 
thanh ghi ph ải được đặt bằng 1, hiển nhiên nếu muố n đưa ra mức lôgic thấp (điện áp gần 0V) thì bit 
tương ứng trong thanh ghi phải được đặt bằng 0. Như đã nói ở trên, các bit trong thanh ghi cổng có 
thể đượ c đặt bằng 1/0 mà không làm ảnh hưởng đến các bit còn lại trong cổng đó bằng cách dùng 
các lệnh setb (đặt lên 1) hay clr (đặt về 0). 
Sau khi đặt một chân cổ ng làm cổng vào, ta có thể dùng các lệnh kiểm tra bit để đọc vào và 
kiểm tra các mức lôgic của mạch ngoài đang áp vào là mức 0 hay mức 1. Các lệnh này là jb (nhảy 
nếu bit bằng 1), jnb (nhảy nếu bit bằng 0). 
Mỗi cổng có cấu trúc gồm một latch (chính là các bit của thanh ghi cổng), mạch lái đầu ra 
(output driver) và mạch đệm đầu vào (input buffer). 
Ngoài chức năng vào/ra thông thường, một số c ổng còn được tích hợp thêm chức năng của 
một số ngoại vi khác. Xem bảng liệt kê sau: 
Các chân cổng P1.0 và P1.1 được tích hợp với các tín hiệu của timer2 trong trường hợp chip là 
8052. 
Khi dùng với các chức năng của các ngoại vi, chân cổng tương ứng phải được đặt lên 1. Nếu 
không các tín hiệu sẽ luôn bị ghim ở mức 0. 
Sơ đồ của mạch của một chân cổng: 
Cổng P0 không có đ iện trở treo cao (pullup resistor) bên trong, mạch lái tạo mức cao chỉ có 
khi sử dụng cổng này với tính năng là bus dồn kênh địa chỉ/dữ liệ u. Như vậy với chức năng ra thông 
thường, P0 là cổng ra open drain, với chức năng vào, P0 là cổng vào cao trở (high impedance). Nếu 
muốn sử dụng cổng P0 làm c ổng vào/ra thông thường, ta phải thêm điện trở pullup bên ngoài. Giá 
trị điện trở pullup bên ngoài thường từ 4K7 đến 10K. 
Các cổng P1, P2 và P3 đều có điện trở pullup bên trong, do đó có thể dùng với chức năng cổng 
vào/ra thông thườ ng mà không cần có thêm điện trở pullup bên ngoài. Thực chất, điện trở pullup 
bên trong là các FET, không phải điện trở tuyến tính thông thường, tuy vậy nhưng khả năng phun 
dòng ra của mạch lái khi đầu ra ở mức cao (hoặc khi là đầu vào) rất nhỏ, chỉ khoảng 100 micro 
Ampe. Trong datasheet của AT89S5x (một trong những biến thể của họ 8051 do Atmel sản xuất) có 
thống kê số liệu như sau: 
Cơ chế ngắt của 8051 
8051 chỉ có một số lượng khá ít các nguồn ngắt (interrupt source) hoặc có thể gọ i là các 
nguyên nhân ng ắt. Mỗi ngắt có một vector ngắt riêng, đó là một địa chỉ cố định nằm trong bộ nhớ 
ch ương trình, khi ngắt xả y ra, CPU sẽ tự động nhảy đến thực hiện lệnh nằm tại địa chỉ này. 
Bảng tóm tắt các ngắt trong 8051 như sau 
STT Tên ngắt Mô tả cờ ngắt Thanh ghi chứa cờ Vector ngắt 
1 INT0 
Ngắt ngoài 0 khi có 
tín hiệu tích cực theo 
kiểu đã chọn ở chân 
P3.2 
IE0 TCON 0x0003
2 Timer0 
Ngắt tràn timer0 khi 
giá trị timer0 tràn từ 
giá trị max về giá trị
min 
TF0 TCON 0x000B 
3 INT1 
Ngắt ngoài 1 khi có 
tín hiệu tích cực theo 
kiểu đã chọn ở chân 
P3.3 
IE1 TCON 0x0013
4 Timer1 
Ngắt tràn timer1 khi 
giá trị timer1 tràn từ 
giá trị max về giá trị 
min 
TF1 TCON 0x001B 
5 Serial Port 
Ngắt cổng nối tiếp khi 
vi điều khiển nhận 
hoặc truyền xong một 
byte bằng cổng nối 
tiếp
TI, RI SCON 0x0023
Với 8052, ngoài các ngắt trên còn có thêm ngắt của timer2 (do vi điều khiển này có thêm 
timer2 trong số các ngoại vi onchip). 
Mỗi ngắt được dành cho một vector ngắt kéo dài 8byte. Về mặ t lý thuyết, nếu chương trình đủ 
ngắn, mã tạo ra chứa đủ trong 8 byte, người lập trình hoàn toàn có thể đặt phần chương trình xử lý 
ngắt ngay tại vector ngắt. Tuy nhiên trong hầ u hết các trường hợp, chươ ng trình xử lý ngắt có dung 
lượng mã tạo ra lớn hơn 8byte nên tại vector ngắt, ta chỉ đặt lệnh nhảy tới chươ ng trình xử lý ngắt 
nằm ở vùng nhớ khác. Nếu không làm vậy, mã chương trình xử lý ngắt này sẽ lấn sang, đè vào 
vector ngắt kế cận. 
Liên quan đến ngắt chủ yếu có hai thanh ghi là thanh ghi IE và thanh ghi 
IP. 
Ngắt ngoài (External Interrupt) 
Như đã nói ở trên, 8051 có 2 ngắt ngoài là INT0 và INT1. Ngắt ngoài được hiểu là ngắ t được 
gây ra bởi sự kiện mức lôgic 0 (mức điện áp thấp, gần 0V) hoặc sườn xuống (sự chuyển mức điện áp 
từ mức cao về mức thấp) xảy ra ở chân ngắt tương ứng (P3.2 với ngắt ngoài 0 và P3.3 với ngắt ngoài 
1). Việc lựa chọn kiểu ngắt được thực hiện bằng các bit IT (Interrupt Type) nằm trong thanh ghi 
TCON. Đ ây là thanh ghi điều khiển timer nhưng 4 bit LSB (bit0..3) được dùng cho các ngắt ngoài. 
Các timer/counter trong 8051 
8051 có 2 timer tên là timer0 và timer1. Các timer này đều là timer 16bit, giá trị đếm max do 
đó bằng 216 = 65536 (đếm từ 0 đến 65535). 
Hai timer có nguyên lý hoạt động hoàn toàn giống nhau và độc lập. Sau khi cho phép chạy, 
mỗi khi có thêm một xung tại đầu vào đếm, giá trị của timer 
sẽ tự động được tăng lên 1 đơn vị, cứ như vậy cho đến khi giá trị tăng lên vượt quá giá trị max 
mà thanh ghi đếm có thể biểu diễn thì giá trị đếm lại được đưa trở về giá trị min (thông thường min 
= 0) . Sự kiện này được hiểu là sự kiện tràn timer (overflow) và có thể gây ra ngắt nếu ngắt tràn 
timer được cho phép (bit ETx trong thanh ghi IE = 1). 
Việc cho timer chạy/dừng được thực hiện bởi các bit TR trong thanh ghi TCON (đánh địa chỉ 
đến từng bit). 
Cổng nối tiếp (Serial Port) của 8051 
Cổng nối tiếp trong 8051 chủ yếu đượ c dùng trong các ứng dụng có yêu cầu truyền thông 
với máy tính, hoặc với một vi điều khiển khác. Liên quan đến cổng nối tiếp chủ yếu có 2 thanh 
ghi: SCON và SBUF. Ngoài ra, một thanh ghi khác là thanh ghi PCON (không đánh địa chỉ bit) có 
bit 7 tên là SMOD quy định tốc độ truyền của cổng nối tiếp có gấp đôi lên (SMOD = 1) hay không 
(SMOD = 0). 
Dữ liệu được truyền nhận nối tiếp thông qua hai chân cổng P3.0(RxD) và P3.1(TxD). 
Mạch cơ bản để 8051 có thể hoạt động : 
 - Sử dụng IC ổn áp LM7805 thông dụng; Xem datasheet ở đây LM7805 
1) IN: điện áp vào từ 7-35V DC 
2) GND 
3) OUT: điện áp đầu ra ổn định ở 5V DC 
Thạch anh 12Mhz 
- Đầu vào và đầu ra của 7805 nên có các tụ lọc trị số tuỳ theo tải, mạch đơn giản thì trị số có 
.thể chọn như hình, với tải nhiều nên chọn tụ đầu vào 1000uF, đầu ra 470uF 
1.1.2 : linh kiện bán dẫn : 
ở bộ điều khiển này nhóm em sử dụng trasistor lưỡng cực PNP dòng tran công suất Tip 41C 
Transistor là một linh kiện bán dẫn thường được sử dụng như một thiết bị khuếch đại hoặc 
một khóa điện tử. Tranzitor là khối đơn vị cơ bản xây dựng nên cấu trúc mạch ở máy tính điện tử và 
tất cả các thiết bị điện tử hiện đại khác. Vì đáp ứng nhanh và chính xác nên các tranzitor được sử 
dụng trong nhiều ứng dụng tương tự và số, như khuếch đại, đóng cắt, điều chỉnh điện áp, điều khiển 
tín hiệu, và tạo dao động.Tranzitor cũng thường được kết hợp thành mạch tích hợp (IC),có thể tích 
hợp tới một tỷ tranzitor trên một diện tích nhỏ. 
1.2 : giới thiệu chung về động cơ bước 
Động cơ bước có thể được mô tả như là một động cơ điện không dùng bộ 
chuyển mạch. Cụ thể, các mấu trong động cơ là stator, và rotor là nam châm 
vĩnh cửu hoặc trong trường hợp của động cơ biến từ trở, nó là những khối răng làm bằng vật liệu nhẹ 
có từ tính. Tất cả các mạch đảo phải được điều khiển bênngoài bởi bộ điều khiển, và đặc biệt, các 
động cơ và bộ điều khiển được thiết kế để động cơ có thể giữ nguyên bất kỳ vị trí cố định nào cũng 
như là quay đến bất kỳ vị trí nào. Hầu hết các động cơ bước có thể chuyển động ở tần số âm thanh, 
cho phép chúng quay khá nhanh, và với một bộ điều khiển thích hợp, chúng có thể khởi động 
và dừng lại dễ dàng ở các vị trí bất kỳ. 
Trong một vài ứng dụng, cần lựa chọn giữa động cơ servo và động cơ bước. Cả hai loại động cơ này 
đều như nhau vì có thể xác định được vị trí chính xác,nhưng chúng cũng khác nhau ở một số điểm. 
Servo motor đòi hỏi tín hiệu hồi tiếp analog. Đặc biệt, điều này đòi hỏi một bộ tắc cô để cung cấp tín 
hiệu hồi 
tiếp về vị trí của rotor, và một số mạch phức tạp để điều khiển sự sai lệch giữa vị trí mong muốn và 
vì trí tức thời vì lúc đó dòng qua động cơ sẽ dao động tắt dần. 
Để lựa chọn giữa động cơ bước và động cơ servo, phải xem xét một số vấn đề, và nó phụ thuộc vào 
các ứng dụng thực tế. Ví dụ, khả năng trở về một vị trí đãvượt qua phụ thuộc vào hình dạng rotor 
động cơ bước, trong khi đó, khả năng lặp lại vị trí của động cơ servo nói chung phụ thuộc vào độ ổn 
định của bộ tắc cô 
và các linh kiện analog khác trong mạch hồi tiếp. 
 Động cơ bước có thể được dùng trong hệ thống điều khiển vòng hở đơn giản;những hệ thống này 
đảm bảo cho hệ thống điều khiển gia tốc với tải trọng tĩnh,nhưng khi tải trọng thay đổi hoặc điều 
khiển ở gia tốc lớn, người ta vẫn dùng hệ Điều khiển vòng kín với động cơ bước. Nếu một động cơ 
bước trong hệ điều khiển vòng mở quá tải, tất cả các giá trị về vị trí của động cơ đều bị mất và hệ 
thống phải nhận diện lại; 
1.2 : ứng dụng của động cơ bước 
- điều khiênr vị trí 
- trong máy CNC 
- dây chuyền đóng nắp chai 
- điều kgiển rôbot 
- nói chung : động cơ bước úng dung rất nhiều vào trong công nghiệp 
 Chương 2 
2.1 : phân loại động cơ bước 
 Các loại động cơ bước 
Động cơ bước được chia làm hai loại, 
 nam châm vĩnh cửu và biến từ trở (cũng cóloại động cơ hỗn hợp nữa, nhưng nó không khác biệt gì 
với động cơ nam châmvĩnh cửu). Nếu mất đi nhãn trên động cơ, các bạn vẫn có thể phân biệt hai loại 
 động cơ này bằng cảm giác mà không cần cấp điện cho chúng. Động cơ nam 
châm vĩnh cửu dường như có các nấc khi bạn dùng tay xoay nhẹ rotor của 
chúng, trong khi động cơ biến từ trở thì dường như xoay tự do (mặc dù cảm 
thấy chúng cũng có những nấc nhẹ bởi sự giảm từ tính trong rotor). Bạn cũng có 
thể phân biệt hai loại động cơ này bằng ohm kế. Động cơ biến từ trở thường có 3 
mấu, với một dây về chung, trong khi đó, động cơ nam châm vĩnh cửu thường 
có hai mấu phân biệt, có hoặc không có nút trung tâm. Nút trung tâm được 
dùng trong động cơ nam châm vĩnh cửu đơn cực. 
 Động cơ bước phong phú về góc quay. Các động cơ kém nhất quay 90 độ mỗi 
bước, trong khi đó các động cơ nam châm vĩnh cửu xử lý cao thường quay 1.8 
độ đến 0.72 độ mỗi bước. Với một bộ điều khiển, hầu hết các loại động cơ nam 
châm vĩnh cửu và hỗn hợp đều có thể chạy ở chế độ nửa bước, và một vài bộ 
điều khiển có thể điều khiển các phân bước nhỏ hơn hay còn gọi là vi bước. 
Đối với cả động cơ nam châm vĩnh cửu hoặc động cơ biến từ trở, nếu chỉ một 
mấu của động cơ được kích, rotor (ở không tải) sẽ nhảy đến một góc cố định và 
sau đó giữ nguyên ở góc đó cho đến khi moment xoắn vượt qua giá trị moment 
xoắn giữ (hold torque) của động cơ. 
 Hình 1.1 
Nếu motor của bạn có 3 cuộn dây, được nối như trong biểu đồ hình 1.1, với một 
đầu nối chung cho tất cả các cuộn, thì nó chắc hẳn là một động cơ biến từ trở. 
Khi sử dụng, dây nối chung (C) thường được nối vào cực dương của nguồn và 
các cuộn được kích theo thứ tự liên tục. 
 Dấu thập trong hình 1.1 là rotor của động cơ biến từ trở quay 30 độ mỗi bước. 
Rotor trong động cơ này có 4 răng và stator có 6 cực, mỗi cuộn quấn quanh hai 
cực đối diện. Khi cuộn 1 được kích điện, răng X của rotor bị hút vào cực 1. Nếu 
dòng qua cuộn 1 bị ngắt và đóng dòng qua cuộn 2, rotor sẽ quay 30 độ theo 
chiều kim đồng hồ và răng Y sẽ hút vào cực 2. 
Để quay động cơ này một cách liên tục, chúng ta chỉ cần cấp điện liên tục luân 
phiên cho 3 cuộn. Theo logic đặt ra, trong bảng dưới đây 1 có nghĩa là có dòng 
điện đi qua các cuộn, và chuỗi điều khiển sau sẽ quay động cơ theo chiều kim 
đồng hồ 24 bước hoặc 2 vòng: 
Cuộn 1 1001001001001001001001001 
Cuộn 2 0100100100100100100100100 
Cuộn 3 0010010010010010010010010 
thời gian   > 
Phần Điều khiển mức trung bình cung cấp chi tiết về phương pháp tạo ra các 
dãy tín hiệu điều khiển như vậy, và phần Các mạch điều khiển bàn về việc 
đóng ngắt dòng điện qua các cuộn để điều khiển động cơ từ các chuỗi như thế. 
Hình dạng động cơ được mô tả trong hình 1.1, quay 30 độ mỗi bước, dùng số 
răng rotor và số cực stator tối thiểu. Sử dụng nhiều cực và nhiều răng hơn cho 
phép động cơ quay với góc nhỏ hơn. Tạo mặt răng trên bề mặt các cực và các 
răng trên rotor một cách phù hợp cho phép các bước nhỏ đến vài độ. 
 Hình 1.2 
Động cơ bước đơn cực cả nam châm vĩnh cửu và động cơ hỗn hợp, với 5, 6 hoặc 
8 dây ra thường được quấn như sơ đồ hình 1.2, với một đầu nối trung tâm trên 
các cuộn. Khi dùng, các đầu nối trung tâm thường được nối vào cực dương 
nguồn cấp, và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều từ 
trường tạo bởi cuộn đó. 
Sự khác nhau giữa hai loại động cơ nam châm vĩnh cửu đơn cực và động cơ hỗn 
hợp đơn cực không thể nói rõ trong nội dung tóm tắt của tài liệu này. Từ đây, 
khi khảo sát động cơ đơn cực, chúng ta chỉ khảo sát động cơ nam châm vĩnh cửu, 
việc điều khiển động cơ hỗn hợp đơn cực hoàn toàn tương tự. 
Mấu 1 nằm ở cực trên và dưới của stator, còn mấu 2 nằm ở hai cực bên phải và 
bên trái động cơ. Rotor là một nam châm vĩnh cửu với 6 cực, 3 Nam và 3 Bắc, 
xếp xen kẽ trên vòng tròn. 
Để xử lý góc bước ở mức độ cao hơn, rotor phải có nhiều cực đối xứng hơn. 
Động cơ 30 độ mỗi bước trong hình là một trong những thiết kế động cơ nam 
châm vĩnh cửu thông dụng nhất, mặc dù động cơ có bước 15 độ và 7.5 độ là khá 
lớn. Người ta cũng đã tạo ra được động cơ nam châm vĩnh cửu với mỗi bước là 
1.8 độ và với động cơ hỗn hợp mỗi bước nhỏ nhất có thể đạt được là 3.6 độ đến 
1.8 độ, còn tốt hơn nữa, có thể đạt đến 0.72 độ. 
Như trong hình, dòng điện đi qua từ đầu trung tâm của mấu 1 đến đầu a tạo ra 
cực Bắc trong stator trong khi đó cực còn lại của stator là cực Nam. Nếu điện ở 
mấu 1 bị ngắt và kích mấu 2, rotor sẽ quay 30 độ, hay 1 bước. Để quay động cơ 
một cách liên tục, chúng ta chỉ cần áp điện vào hai mấu của đông cơ theo dãy. 
Mấu 1a 1000100010001000100010001 Mấu 1a 1100110011001100110011001 
Mấu 1b 0010001000100010001000100 Mấu 1b 0011001100110011001100110 
Mấu 2a 0100010001000100010001000 Mấu 2a 0110011001100110011001100 
Mấu 2b 0001000100010001000100010 Mấu 2b 1001100110011001100110011 
thời gian   > thời gian   > 
Nhớ rằng hai nửa của một mấu không bao giờ được kích cùng một lúc. Cả hai 
dãy nêu trên sẽ quay một động cơ nam châm vĩnh cửu một bước ở mỗi thời 
điểm. Dãy bên trái chỉ cấp điện cho một mấu tại một thời điểm, như mô tả trong 
hình trên; vì vậy, nó dùng ít năng lượng hơn. Dãy bên phải đòi hỏi cấp điện cho 
cả hai mấu một lúc và nói chung sẽ tạo ra một moment xoắy lớn hơn dãy bên 
trái 1.4 lần trong khi phải cấp điện gấp 2 lần. 
Phần Điều khiển mức trung bình trong tài liệu này sẽ cung cấp chi tiết về 
phương pháp tạo ra những dãy tín hiệu điều khiển như vậy, còn phần Các mạch 
điều khiển nói về mạch đóng ngắt các mạch điện cần thiết để điều khiển các 
mấu động cơ từ các dãy điều khiển trên. 
Vị trí bước được tạo ra bởi hai chuỗi trên không giống nhau; kết quả, kết hợp 2 
chuỗi trên cho phép điều khiển nửa bước, với việc dừng động cơ một cách lần 
lượt tại những vị trí đã nêu ở một trong hai dãy trên. Chuỗi kết hợp như sau: 
Mấu 1a 11000001110000011100000111 
Mấu 1b 00011100000111000001110000 
Mấu 2a 01110000011100000111000001 
Mấu 2b 00000111000001110000011100 
Thời gian   > 
 Hình 1.3 
Động cơ nam châm vĩnh cửu hoặc hỗn hợp hai cực có cấu trúc cơ khí giống y 
như động cơ đơn cực, nhưng hai mấu của động cơ được nối đơn giản hơn, 
không có đầu trung tâm. Vì vậy, bản thân động cơ thì đơn giản hơn, nhưng 
mạch điều khiển để đảo cực mỗi cặp cực trong động cơ thì phức tạp hơn. Minh 
hoạ ở hình 1.3 chỉ ra cách nối động cơ, trong khi đó phần rotor ở đây giống y 
như ở hình 1.2. 
2.2 : sơ đồ nguyên lý : 
Sử dụng gồm VDK 89S52 
Transistor c828 và tip41C 
2 bộ nguồn ổn áp 5V và 12V 
Khối tín hiệu đầu vào : 
Khối tín hiệu đầu ra 
Sử dụng 4 pin của PORT 2 là 
P2.1, P2.2 , P2.3, P2.4 
Mach hiển thị: 
Mạch sơ đồ nguyên lý : 
Khối nguồn 5 V 
Khối nguồn 12 V 
 Điều khiển một pha (200 bước / vòng) 
Bước thứ Cuộn 1a Cuộn 2a Cuộn 1b Cuộn 2b 
1 1 0 0 0 
2 0 1 0 0 
3 0 0 1 0 
4 0 0 0 1 
5 1 0 0 0 
6 0 1 0 0 
7 0 0 1 0 
8 0 0 0 1 
Điều khiển hai pha (200 bước / vòng) 
Bước thứ Cuộn 1a Cuộn 2a Cuộn 1b Cuộn 2b 
1 1 1 0 0 
2 0 1 1 0 
3 0 0 1 1 
4 1 0 0 1 
5 1 1 0 0 
6 0 1 1 0 
7 0 0 1 1 
8 1 0 0 1 
Điều khiển hỗn hợp 1 pha 2 pha (400 bước / vòng) 
Bước thứ Cuộn 1a Cuộn 2a Cuộn 1b Cuộn 2b 
1 1 0 0 0 
2 1 1 0 0 
3 0 1 0 0 
4 0 1 1 0 
5 0 0 1 0 
6 0 0 1 1 
7 0 0 0 1 
8 1 0 0 1 
2.3 : lưu đồ thuật toán điều khiển : 
CT điều khiển 
Động cơ bước 
đơn cực
 Đọc tín hiệu đầu vào 
 P3= ? 
Ra lệnh điều khiển 
Động cơ bước 
Hiển thị LED 7 
thanh 
 Ret 
2.3 chương trình điều khiển : 
 //* ha noi 7/6/2010*// 
 //*code dk dong co buoc don cuc hien thi LED *// 
 //* chip : 89S52 *// 
 //* thach anh 12Mhz*// 
 //* by : Nguyen Van Hai*// 
 //* Lop : DIEN 2 _ K2 DAI HOC CONG NGHIEP HA NOI*// 
#include 
#define tang 0x7e //01111110 
#define tang1 0x7d //01111101 
#define tang2 0x7f //01111111 
#define tang3 0x7c //01111100 
#define giam 0xbe //10111110 
#define giam2 0xbf //10111111 
#define giam1 0xbd //10111101 
#define giam3 0xbc //10111100 
#define chaythuan 0xde //11011110 
#define chaynghich 0xdd //11011101 
#define daochieu 0xdc //11011100 
sbit l1=P2^7; 
sbit l2=P2^6; 
sbit l3=P2^5; 
void delay_ms(unsigned int ms) // ham tao thoi gian delay 
{unsigned int i; 
for(i=0;i<ms;++i); 
} 
void tre(unsigned int ms) 
{unsigned int i; 
unsigned int j; 
for(i=0;i<ms;++i); 
for(j=0;j<100;++j); 
} 
unsigned int num,k,n; 
unsigned char donvi,chuc,tram,m; 
void quaythuan() // ham con phuc vu phat xung quay thuan 
{ 
P2=0x10;delay_ms(num); 
P2=0x04;delay_ms(num); 
P2=0x02;delay_ms(num); 
P2=0x08;delay_ms(num); 
} 
void quaynghich() // ham con phuc vu phat xung quay nguoc 
{P2=0x08;delay_ms(num); 
P2=0x02;delay_ms(num); 
P2=0x04;delay_ms(num); 
P2=0x10;delay_ms(num); 
 } 
void dieukhienthuan(void) // hàm con thực hiện đoc tín hiệu PORT 3 
{ 
unsigned char input; 
input = P3 ; 
switch (input) 
{ 
case chaythuan: 
{ for(n=0;n<k;n++) 
{for(m=0;m<5;++m) 
{ 
quaythuan(); }} 
break ; 
} 
case chaynghich: 
{ for(n=0;n<k;n++) 
{for(m=0;m<5;++m) 
{ 
quaynghich(); }} 
break ; 
} 
case daochieu: 
{ for(n=0;n<k;n++) 
{for(m=0;m<5;++m) 
{quaythuan(); }} 
P2=0xff; 
tre(50000); 
 for(n=0;n<k;n++) 
{for(m=0;m<5;++m) 
{quaynghich(); }} 
break ; 
} 
case tang: 
{ tre(20000); 
k=k+5; 
break ; 
} 
case tang1: 
{ tre(20000); 
k=k+5; 
break ; 
} 
case tang2: 
{ tre(20000); 
k=k+5; 
break ; 
} 
case tang3: 
{ tre(20000); 
k=k+5; 
break ; 
} 
case giam: 
{ tre(20000); 
k=k-5; 
break ; 
} 
case giam1: 
{ tre(20000); 
k=k-5; 
break ; 
} 
case giam2: 
{ tre(20000); 
k=k-5; 
break ; 
} 
case giam3: 
{ tre(20000); 
k=k-5; 
break ; 
} 
} 
} 
void xoa_led(void) // hàm con xóa LED 
{ 
 P1=0xff; 
} 
code unsigned char dulieu[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; 
void hienthi() // hàm con thực hiện chương trình hiển thị 
{ 
xoa_led(); 
tram =k/100; 
 if((tram==0) ) 
 {l3=1;l1=l2=0;P1=dulieu[tram] ;tre(1);} 
 else 
 {l3=1;l1=l2=0; 
 P1=dulieu[tram] ; tre(1);} 
chuc = (k%100)/10; 
 if((chuc==0)&&(tram==0)) 
 {l2=1;l1=l3=0;P1=dulieu[chuc];tre(1);} 
 else 
 {l2=1;l1=l3=0; 
 P1=dulieu[chuc] ; tre(1); } 
donvi =(k%100)%10; 
 if((chuc==0)&&(donvi==0)) 
 {l1=1;l2=l3=0;P1=dulieu[donvi];tre(1);} 
 else 
 {l1=1;l2=l3=0; 
 P1=dulieu[donvi] ; tre(1); 
} 
 xoa_led() ; } 
void main(void) // hàm chương trình chính 
{ 
TMOD=0x10; // khoi tap timer 1 che do 16 bit 
TH1=50535/256 ; 
TL1=50535%256; 
TR1=1; 
IE =0x8f; //cho phep ngat 
IP=0; 
P3=0xff; 
num=4000; 
k=0; 
while(1) // hàm lập vô hạn 
{ P2=0xff; 
dieukhienthuan(); 
}} 
void ngatngoai(void) interrupt 0 // chuong trinh con phục vụ ngat ngoài 0 
{ tre(20000); 
num=num+50; 
} 
void ngatngoai1(void) interrupt 2 // chuong trinh con phục vụ ngat ngoài 1 
{ 
 tre(20000); 
num=num-50; 
 } 
 void ngat1 (void) interrupt 3 // chuong trinh con phục vụ ngat timer 1 
{TF1=0; 
TR1=0; 
TH1=50535/256 ; 
TL1=50535%256; 
TR1=1; 
hienthi();} 
            Các file đính kèm theo tài liệu này:
 do_an_mon_tdd_dieu_khien_dong_co_buoc_735.pdf do_an_mon_tdd_dieu_khien_dong_co_buoc_735.pdf