You are on page 1of 45

Đồ án học phần 1D

MỤC LỤC
LỜI MỞ ĐẦU---------------------------------------------------------------------------------------- 3
LỜI CẢM ƠN ---------------------------------------------------------------------------------------- 4
PHẦN 1. VI ĐIỀU KHIỂN AVR ----------------------------------------------------------------- 7
I. GIỚI THIỆU AVR MCU ATMEL -----------------------------------------------------------7
1. Giới thiệu: -------------------------------------------------------------------------------------7
2. Ƣu thế của MCU AVR ----------------------------------------------------------------------7
3. Một số dòng AVR phổ biến ----------------------------------------------------------------8
II. ATMEGA16 – KIẾN TRÚC TỔNG QUAN ----------------------------------------------8
1. Ƣu điểm: --------------------------------------------------------------------------------------8
2. Cấu trúc Atmega16 --------------------------------------------------------------------------9
3. Các khối chính: ----------------------------------------------------------------------------- 11
4. Bộ nhớ - Memory: ------------------------------------------------------------------------- 14
5. Quá trình thực thi lệnh: -------------------------------------------------------------------- 16
III. CÁC MODULE ĐIỀU KHIỂN TRONG ATMEGA 16------------------------------- 17
1. Input & Output ----------------------------------------------------------------------------- 17
2. Cấu tạo chân -------------------------------------------------------------------------------- 18
3. Thiết lập truy xuất I/O: -------------------------------------------------------------------- 18
4. INTERRUPT – Ngắt ---------------------------------------------------------------------- 19
5. TIMER – COUNTER --------------------------------------------------------------------- 21
IV. ĐỘNG CƠ DC SERVO ------------------------------------------------------------------- 33
1. Khái quát về động cơ DC servo ---------------------------------------------------------- 33
2. Encoder -------------------------------------------------------------------------------------- 34
3. Mạch cầu H --------------------------------------------------------------------------------- 36
4. Chip driver LMD18200 ------------------------------------------------------------------- 38
PHẦN 2: THI CÔNG PHẦN CỨNG ----------------------------------------------------------- 41
I. KHỐI VI ĐIỀU KHIỂN --------------------------------------------------------------------- 41
II. KHỐI NÚT NHẤN – BUTTON ----------------------------------------------------------- 41
III. KHỐI ENCODER -------------------------------------------------------------------------- 42

1

Đồ án học phần 1D
IV. KHỐI CÔNG SUẤT ----------------------------------------------------------------------- 43
PHẦN 3 - TỔNG KẾT---------------------------------------------------------------------------- 44
I. KẾT QUẢ ĐẠT ĐƢỢC --------------------------------------------------------------------- 44
II. HẠN CHẾ ------------------------------------------------------------------------------------ 44
III. HƢỚNG PHÁT TRIỂN ĐỀ TÀI --------------------------------------------------------- 44
IV. KẾT LUẬN --------------------------------------------------------------------------------- 44
TÀI LIỆU THAM KHẢO ------------------------------------------------------------------------ 45

2

Đồ án học phần 1D
LỜI MỞ ĐẦU
Từ khi công nghệ chế tạo loại vi mạch lập trình ra đời đã đem đến các kỹ thuật điều
khiển hiện đại có nhiều ƣu điểm hơn so với việc sử dụng các mạch điều khiển lắp ráp
bằng các linh kiện rời nhƣ kích thƣớc nhỏ, giá thành rẻ, khả năng làm việc tin cậy, công
suất tiêu thụ nhỏ. Hàng loạt nhà sản xuất MCU ra đời nhƣ Atmel, Philip, Motorola với
hàng loạt chip với nhiều tính năng vô cùng phong phú và đa dạng. Ngày nay, lĩnh vực
điều khiển đã đƣợc ứng dụng rộng rãi trong các thiết bị, sản phẩm phục vụ cho nhu cầu
sinh hoạt hàng ngày của con ngƣời nhƣ máy giặt, đồng hồ báo giờ….. đã giúp cho đời
sống của chúng ta ngày càng hiện đại và tiện nghi hơn. Bên cạnh đó, động cơ servo với
nhiều kiểu dáng và kích thƣớc cũng ngày càng đƣợc ứng dụng trong những thiết bị yêu
cầu có độ chính xác cao về tốc độ và số vòng quay, hoạt động linh hoạt với nhiều chức
năng khác nhau nhƣ trong những cánh tay rôbốt trong công nghiệp, rôbốt dò phá bom
mìn trong quân đội, các động cơ trong mô hình xe hơi, máy bay, máy CNC …
Trong số những nhà sản xuất MCU 8 bit thì Atmel đã trở nên quá quen thuộc với
giới sinh viên, kỹ thuật Việt Nam. Nhóm chúng em tìm hiểu đề tài về MCU AVR – một
trong những MCU đƣợc sử dụng rất rộng rãi trong kỹ thuật điều khiển vì vậy nhóm em
xin chọn đề tài: “ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ DC SỬ DỤNG VI ĐIỀU
KHIỂN AVR”. Vì thời gian và kiến thức có hạn nên trong nội dung đề tài chúng em chỉ
dừng lại đến việc điều khiển tốc độ động cơ ở chế độ không tải bằng cách tăng giảm thời
gian TON của xung PWM, đảo chiều quay, hãm động cơ và hiển thị các thông số này trên
LCD

3

Đồ án học phần 1D
LỜI CẢM ƠN

Trong quá trình thực hiện đồ án chúng em đã nhận đƣợc sự hƣớng dẫn và giúp đỡ
tận tình của thầy HOÀNG ĐÌNH KHÔI. Chúng em xin chân thành cảm ơn thầy cùng
toàn thể thầy cô trong Khoa Điện.
Đồng thời tôi cũng xin chân thành cảm ơn các bạn trong lớp ĐHĐI5B đã đóng góp ý
kiến và cung cấp một số tài liệu giúp đỡ chúng em.
Dù đã cố gắng rất nhiều, nhƣng do đây là lần đầu tiên làm Đồ Án vì vậy trong quá
trình làm còn có những thiếu sót. Nên nhóm chúng em rất mong nhận đƣợc sự góp ý của
quý thầy cô và toàn thể các bạn.

4

............................ ........................... ................................................................................................................................................................................... ................................................................................................................................................................................................................................................................................................................................................................................................... ....................................................................................................... ....................................................................................... .................. ......................................................................................................................................................................................................... ........................................................................................................... ngày … tháng … năm 2012 Giáo viên hƣớng dẫn 5 ..........................................................Đồ án học phần 1D Nhận xét (Của giáo viên hƣớng dẫn) ............................................................................................................................................................................................................................................................................................................................ ................................................. ................................................................................................................................................................... .... .......... ................................................................................................................................................... ....................................................................................................... TPHCM...................................... ................................................................................................................................................................................................................................................ ................................................................................................................................................................................................................................................................................................................................................................................................................................ ............................................................................. ................................... ......................................................................................................................................... ......................................................................................................... .....................................................................

...................................................................... .............................................................................................................................................................................................................................................................................................................. ..................... .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................. ............................................................................................................................ ................... .................................. ....................................................................................................................................................................................................................... .............................. ............................................................................................................................................................................................................................................................................................Đồ án học phần 1D Nhận xét (Của giáo viên phản biện) .............................................................................................. ...................................... ............................................................................................................................................................................................................................................................................................................ ........................................................................................................................................................ .. ngày … tháng … năm 2012 Giáo viên phản biện 6 ............................................................................................................................................................................................................... ........................................................................................................................................................................................................................................................................ .................... .......................................................................................................................................... .......................... ................... ................................................................................................................................................................ TPHCM.................................. ....... ..................................................

GIỚI THIỆU AVR MCU ATMEL 1. tụ điện. 16 bits timer/counter tích hợp PWM.Đồ án học phần 1D PHẦN 1. thạch anh. Hầu hết các chip AVR có những tính năng sau: . Hỗ trợ ISP lập trình trực tiếp trên mạch. VI ĐIỀU KHIỂN AVR I. Bên cạnh đó bộ nhớ EEPROM có thể lập trình đƣợc. COM.Xung External OSC lên đến 16Mhz và Internal OSC 8Mhz. một kiểu cấu trúc đang thể hiện ƣu thế trong các bộ xử lí. Thiết kế mạch nạp cho AVR khá đơn giản giao tiếp qua cổng LPT. Atmel AVR32 là một vi điều khiển lai DSP với 7 tầng pipeline và khả năng thực thi song song. AVR Studio. ARM7. . Hỗ trợ lập trình trên nền ngôn ngữ ASM. Dòng ra điều khiển Port lớn và không cần dùng điện trở kéo.8 bits. AT91. Atmel AVR 8-bit RISC. . Atmel ATMEGA16 2. Ƣu thế của MCU AVR Kết nối phần cứng cho AVR đơn giản với những linh kiện thông dụng nhƣ điện trở. C với nhiều công cụ hỗ trợ nhƣ CodeVision.Các bộ chuyển đối Analog – Digital phân giải 10 bits 7 .Bộ nhớ chƣơng trình Flash có thể lập trình lại rất nhiều lần và dung lƣợng lớn có thể ghi và xóa trên 1000 lần. và mới đây là DSP dual-CPU AT57. Giới thiệu: AVR là một họ vi điều khiển do hãng Atmel sản xuất. AVR là chip vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa – RISC (Reduced Instruction Set Computer). USB. . .32 Port xuất nhập. Atmel cung cấp các vi điều khiển phổ biến nhƣ 8051.

Analog comparator. Một số dòng AVR phổ biến .AT90S4414.Khả năng ghi và xóa có thể đạt đến 10000 lần. 1kb Internal SRAm .AT90S2323. ATtiny15. AT90S4434.8 kênh ADC 10 bit.AT90S1200. ATmega103. .5V .Giao diện nối tiếp USART (tƣơng thích chuẩn nối tiếp RS-232).Hỗ trợ gioa tiếp I2C. ATmega323.Kiến trúc 131 tập lệnh thƣc thi hầu hết trong mỗi chu kỳ xung clock . AT90S2343.Giao tiếp chuẩn JTAG hỗ trợ debug. ATmega32. AT90S2313 .2 bộ Timer 16 bit.Dung lƣợng bộ nhớ: 16Kb Flash. lƣu trữ trong thời gian dài trên 20 năm/85oC-100 năm 25oC.5 V 8 . . 512 EEPROM. 4 kênh PWM .Tốc độ xử lý cao.ATtiny10.Hoạt động tốt ở hiệu điện thế 4. ATmega64/128/2560/2561 II.Giao diện nối tiếp Serial Peripheral Interface (SPI). Lock. 1 bộ timer 16 bit.32x8 thanh ghi đa dụng . ATmega162.Giao diện nối tiếp Two -Wire -Serial (tƣơng thích chuẩn I2C) Master và Slaver. Ƣu điểm: . ATmega169.ATmega8/8515/8535. tiêu thụ điện năng thấp . AT90S8515. ATtiny11. ATtiny22. ATtiny26 . ATMEGA16 – KIẾN TRÚC TỔNG QUAN 1. ATmega161. . SPI . 3. AT90S8535 . USART.Đạt tốc độ tối đa 16MIPS ở 16Mhz xung clock . Fuse bit . 32 port xuất nhập . ATmega163. . AT90S4433 . ATtiny12. ATmega16.5.Đồ án học phần 1D . AT90S2333.

1 Sơ đồ chân 9 .Đồ án học phần 1D 2. Cấu trúc Atmega16 2.

2 Sơ đồ khối: 10 .Đồ án học phần 1D 2.

PORT C: Là PORT xuất nhập thông thƣờng 8 bit. AREF. PORT D: Là PORT xuất nhập thông thƣờng 8 bit.3 Các PORT xuất nhập: PORT A: Là PORT xuất nhập thông thƣờng 8 bit còn đƣợc thiết kế cho bộ ADC chuyển đổi tƣơng tự số. Các chân khác: VCC. AVCC. PORT A thiết kế với điện trở nội treo lên ở mức cao. RESET 3. Các khối chính: 3. XTAL2. PORT B: Là PORT xuất nhập thông thƣờng 8 bit. Bên cạnh đó PORT C còn có một số chân giao tiếp JTAG PC5-TDI. PC2 –TCK. XTAL1. PC3-TMS.Đồ án học phần 1D 2.1 CPU: 11 .

C: Carry Flag . kiểm tra 2 cờ N và V. logic và theo bit. Hoạt động của ALU đƣợc chia làm 3 loại: đại số. . . Nếu bit này ở trạng thái logic 0 thì không có một ngắt nào đƣợc phục vụ. . BST.3 Thanh ghi trạng thái SREG Đây là thanh ghi 8 bit lƣu trữ trạng thái của ALU sau các phép tính số học và logic. .I: Global Interrupt Enable/Disable Flag đây là bit cho phép toàn cục ngắt.N: Negative Flag kết quả phép toán âm. 3.Z: Zero Flag cờ nhớ.H: Half Carry Flag cờ bù 2. 3.T: Transfer bit used by BLD and BST instructions đƣợc sử dụng làm nơi trung gian trong các lệnh BLD. Các phép toán đƣợc thực hiện trong một chu kỳ xung clock. Cờ zero.2 ALU ALU làm việc trực tiếp với các thanh ghi chức năng chung. trong đó đƣờng truyền cho bộ nhớ dữ liệu (data memory bus) và đƣờng truyền cho bộ nhớ chƣơng trình (program memory bus) đƣợc tách riêng.S: Sign bit (S=N XOR V) . đƣợc sử dụng trong BCD cho một số toán hạng. Trong khi đó program memory bus có độ rộng 16 bits và chỉ phục vụ cho instruction registers. 12 . . Data memory bus chỉ có 8 bit và đƣợc kết nối với hầu hết các thiết bị ngoại vi. với register file.Đồ án học phần 1D AVR có cấu trúc Harvard.V: Two’s complement overflow .

Đƣợc đặt ở 32 vị trí đầu tiên trong bộ nhớ dữ liệu từ địa chỉ 00H đến 31H và không nằm trong vùng địa chỉ dành cho bộ nhớ SRAM.Liên quan trực tiếp đến hoạt động thực hiện lệnh của CPU . . 3.4 Thanh ghi chức năng chung .Các thanh ghi R26 đến R31 ngoài chức năng thông thƣờng còn có thêm chức năng dùng làm con trỏ 16 bít trong chế độ truy cập địa chỉ gián tiếp vào bộ nhớ dữ liệu.Đồ án học phần 1D 3.5 Con trỏ ngăn xếp Stack Pointer: 13 .

dữ liệu đƣợc chứa vào stack ở đỉnh “tháp” và dữ liệu cũng đƣợc lấy ra từ đỉnh.Đồ án học phần 1D Là một thanh ghi 16 bit nhƣng cũng có thể đƣợc xem nhƣ hai thanh ghi chức năng đặc biệt 8 bit dùng để lƣu trữ biến trong quá trình tính toán. Stack đƣợc hiểu nhƣ là 1 “tháp” dữ liệu. Bộ nhớ . 14 . Khai báo SP tại một vùng nhớ trong SRAM với địa chỉ của SP thiết lập >$60. Kiểu truy cập dữ liệu của stack gọi là LIFO.Memory: 4. Con trỏ tăng địa chỉ lên 1 khi có lệnh POP dữ liệu thực hiện và lên hai khi trả dữ liệu về cho chƣơng trình con. 4. Do các lệnh của AVR có độ dài 16 hoặc 32 bit nên bộ nhớ Flash đƣợc sắp xếp theo kiểu 8K x 16. Con trỏ giảm địa chỉ xuống 1 khi dữ liệu đƣợc đƣa vào Stack với lệnh PUSH và hai khi có Subroutine hoặc Interrupt đƣợc gọi.1 Bộ nhớ chƣơng trình Flash Bộ nhớ Flash 16KB của ATmega16 dùng để lƣu trữ chƣơng trình với độ rộng 16 bit.

Mỗi thanh ghi có thể chứa giá trị dƣơng từ 0 đến 255 hoặc các giá trị có dấu từ 128 đến 127 hoặc mã ASCII của một ký tự nào đó…Các thanh ghi này đƣợc đặt tên theo 15 . Tất cả các thanh ghi này đều là các thanh ghi 8 bits. Thực chất.Đồ án học phần 1D Bộ nhớ chƣơng trình chỉ gồm 1 phần là Application Flash Section nhƣng trong các chip AVR mới chúng ta có thêm phần Boot Flash section. 4. việc lập trình cho chip phần lớn là truy cập bộ nhớ này và bộ nhớ này gồm các phần sau: Phần 1: là phần đầu tiên trong bộ nhớ dữ liệu bao gồm 32 thanh General Purpose Rgegister – GPR. Tất cả các chip trong họ AVR đều bao gồm 32 thanh ghi Register File có địa chỉ tuyệt đối từ 0x0000 đến 0x001F. Các vector ngắt nằm ở phần đầu của application section từ địa chỉ 0x0000 và dài đến bao nhiêu tùy thuộc vào loại chip và phần chứa instruction nằm liền sau đó. application section bao gồm 2 phần: phần chứa các instruction và phần chứa interrupt vectors. Các chƣơng trình đƣợc viết sau địa chỉ đó.2 Bộ nhớ dữ liệu SRAM: Đây là phần chứa các thanh ghi quan trọng nhất của chip.

Phần 2: là phần nằm ngay sau SFR bao gồm 64 thanh ghi I/O hay còn gọi là vùng nhớ I/O. Vùng nhớ I/O có thể đƣợc truy cập nhƣ SRAM hay nhƣ các thanh ghi I/O. Vùng nhớ I/O là cửa ngõ giao tiếp giữa CPU và thiết bị ngoại vi. Phần 3: Internal SRAM là vùng không gian cho chứa các biến trong lúc thực thi chƣơng trình.Đồ án học phần 1D thứ tự là R0 đến R31. Chúng đƣợc chia thành 2 phần. instruction register tác động và lựa chọn register file cũng nhƣ RAM cho ALU thực thi. Nhƣng nếu truy xuất nhƣ các thanh ghi I/O thì địa chỉ của chúng đựơc tính từ 0x0000 đến 0x003F. phần 1 bao gồm các thanh ghi từ R0 đến R15 và phần 2 là các thanh ghi R16 đến R31. 5. và đƣợc sắp xếp theo từng byte. Nếu sử dụng instruction truy xuất SRAM để truy xuất vùng nhớ này thì địa chỉ của chúng đƣợc tính từ 0x0020 đến 0x005F. cho phép các thao tác đọc/ghi từng byte một. Quá trình thực thi lệnh: Giản đồ xung: Các instruction đƣợc chứa trong bộ nhớ chƣơng trình Flash memory dƣới dạng các thanh ghi 16 bit. địa chỉ của dòng lệnh đang thực thi đƣợc quyết định bởi 16 . EEPROM đƣợc tách riêng và có địa chỉ tính từ 0x0000H. 4. Bộ nhớ chƣơng trình đƣợc truy cập trong mỗi chu kỳ xung clock và 1 instruction chứa trong program memory sẽ đƣợc load vào trong instruction register. Trong lúc thực thi chƣơng trình.3 Bộ nhớ dữ liệu EEPROM ATmega16 chứa bộ nhớ dữ liệu EEPROM dung lƣợng 512 byte.

3 Thanh ghi PORT Đây cũng là thanh ghi 8 bit (các bit có thể đọc và ghi đƣợc) nó là thanh ghi dữ liệu của cổng PORT và trong trƣờng hợp nếu cổng đƣợc định nghĩa là cổng ra thì khi ta ghi một bit lên thanh ghi này thì chân tƣơng ứng trên PORT đó cũng có cùng mức logic. CÁC MODULE ĐIỀU KHIỂN TRONG ATMEGA 16 1. III. 1.2 Thanh ghi DDR Đây là thanh ghi 8 bit (ta có thể đọc và ghi các bit ở thanh ghi này) và có tác dụng điều khiển hƣớng cổng PORT (tức là cổng ra hay cổng vào). 1. Thanh ghi này sau khi khởi động Vi điều khiển sẽ có giá trị là 000. Các cổng ra có điện trở nội kéo lên nên khi dùng chức năng Input ta không cần dùng điện trở kéo lên ở bên ngoài. Cụ thể nếu bit nào đó của thanh ghi này đƣợc set (đƣa lên mức 1) thì điện trở kéo lên (pull-up) của chân tƣơng ứng của port đó sẽ đƣợc kích hoạt. thanh ghi dữ liệu điều khiển cổng DDR và cuối cùng là địa chỉ chân vào của cổng PIN.1 Giới thiệu Vi điều khiển ATmega16 có 32 đƣờng vào ra chia làm bốn PORT: PORTA – PORTB – PORTC – PORTD mỗi PORT 8bit có thể tƣơng tác điều khiển từng bit một. 17 .4 Thanh ghi PIN Đây là thanh ghi 8 bit chứa dữ liệu vào của PORT (trong trƣờng hợp PORT đƣợc thiết lập là cổng vào) và nó chỉ có thể đọc mà không thể ghi vào đƣợc. Nếu nhƣ một bit trong thanh ghi này đƣợc set thì bit tƣơng ứng đó trên PORT đƣợc định nghĩa nhƣ một cổng ra. Các PORT đƣợc điều khiển bởi các bộ thanh ghi sau: thanh ghi dữ liệu cổng PORT. 1. Trong trƣờng hợp mà cổng đƣợc định nghĩa là cổng vào thì thanh ghi này lại mang dữ liệu điều khiển cổng. Input & Output 1. Hầu hết các instruction đều đƣợc thực thi trong 1 chu kỳ xung clock. Ngƣợc lại nó sẽ ở trạng thái hi-Z. Ngƣợc lại nếu nhƣ bit đó không đƣợc set thì bit tƣơng ứng trên PORT đƣợc định nghĩa là cổng vào.Đồ án học phần 1D một bộ đếm chƣơng trình – PC (Program counter).

Cấu tạo chân Cấu trúc chân của AVR có thể phân biệt rõ chức năng (vào ra) trạng thái (0 1) từ đó ta có 4 kiểu vào ra cho một chân của AVR.Cuối cùng đọc dữ liệu từ địa chỉ PINxn (trong đó x: là cổng và n là bit). .2 Write 18 .1 Read .Đƣa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó là đầu vào (xóa thanh ghi DDRx hoặc bit).Đồ án học phần 1D 2. Bảng trạng thái truy xuất I/O: 3. .Kích hoạt điện trở pull-up bằng cách set thanh ghi PORTx (bit). Khác với 89 là chỉ có 2 trạng thái duy nhất (0 1) . 3. Đặc biệt nguồn từ chân của AVR đủ khoẻ để điều khiển Led trực tiếp (mA) còn 89 chỉ là vài μA . Thiết lập truy xuất I/O: 3.

Trong trƣờng hợp mà có nhiều ngắt yêu cầu cùng một lúc thì CPU sẽ lƣu các cờ báo ngắt đó lại và thực hiện lần lƣợt các ngắt theo mức ƣu tiên.Đồ án học phần 1D . .Xuất giá trị ra Port. INTERRUPT – Ngắt 4. 4.Đƣa dữ liệu ra thanh ghi điều khiển DDRxn để đặt cho PORTx (hoặc bit n trong port) đó là đầu ra (xóa thanh ghi DDRx hoặc bit). hoặc khi nó đã truyền đƣợc một byte thì cờ TX đƣợc thiết lập… Khi có tín hiệu báo ngắt CPU sẽ tạm dừng công việc đạng thực hiện lại và lƣu vị trí đang thực hiên chƣơng trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và thức hiện chƣơng trình phục vụ ngắt đó cho tới khi gặp lệnh RETI (Return from Interrupt) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chƣơng trình mà trƣớc khi có ngăt nó đang thực hiện.1 Giới thiệu Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình trạng sẵn sàng cho đổi dữ liệu của mình.Ví dụ: Khi bộ truyền nhận UART nhận đƣợc một byte nó sẽ báo cho CPU biết thông qua cờ RXC. Atmega 16 có các ngắt sau: 19 .

Khi có 1 sƣờn điện áp xuống (5V → 0V) . chúng ta chỉ quan tâm đến 4 bit thấp của nó (4 bit cao dùng cho Power manager và Sleep Mode). nhảy đến chƣơng trình con thực hiện ngắt.Low level .3) và INT2 (PORTB. MCUCR là một thanh ghi 8 bit nhƣng đối với hoạt động ngắt ngoài. 4.1 MCUCR – MCU Control Register.Rising Edge .Falling Edge .Đồ án học phần 1D 4.2).Điện áp ở chân ngắt xuống mức logic 0 V .Bất kì sự thay đổi điện áp từ chân ngắt . ISC00 hoàn toàn tƣơng tự.2 Ngắt ngoài – External Interrupts Atmega16 có 3 ngắt ngoài INT0 (PORTD. Bảng chân trị cho các bit ISC01. Bốn bit thấp là các bit Interrupt Sense Control (ISC) trong đó 2 bit ISC11: ISC10 dùng cho INT1 và 2 bit ISC01: ISC00 dùng cho INT0.2).Khi có 1 sƣờn điện áp lên (0V → 5V) Sau đó 1 cờ ngắt sẽ đƣợc đƣa lên 1 và báo cho biết có ngắt.Any change . INT1 (PORTD.3. Thanh ghi MCUCR chứa các bit cho phép chúng ta chọn 1 trong 4 MODE trên cho các ngắt ngoài.3 Các thanh ghi phục vụ ngắt 4. 20 . Khi xảy ra một trong các sự kiện đối với các chân này: .

Trên các chip AVR. vì vậy thanh ghi này thƣờng không đƣợc quan tâm khi lập trình ngắt ngoài.3. 5. Nếu có 1 sự kiện ngắt phù hợp xảy ra trên chân INT1. 4.Flag) của 2 ngắt INT và INT0. tuy nhiên điều này là không cần thiết nếu chúng ta cho phép ngắt tự động.3. Bit 7 – INT1 gọi là bit cho phép ngắt (Interrupt Enable).Đồ án học phần 1D 4. nhƣ tên gọi của chúng. bit INTF1 đƣợc tự động set bằng 1 (tƣơng tự cho trƣờng hợp của INTF0). tƣơng tự. bit INT0 và INT2 điều khiển ngắt INT0 và INT2. set bit này bằng 1 nghĩa bạn cho phép ngắt INT1 hoạt động. chúng ta có thể sử dụng các bit này để nhận ra các ngắt. đếm thời gian…) và đếm sự kiện.3. 6 và bit 7) là đƣợc sử dụng cho điều khiển ngắt. các bộ T/C còn có thêm chức năng tạo ra các xung 21 . là định thì (tạo ra một khoảng thời gian.4 GIFR – General Interrupt Flag Register Thanh ghi cờ ngắt chung – GIFR (General Interrupt Flag Register) có 2 bit INTF1 và INTF0 là các bit trạng thái (hay bit cờ .3 GICR – General Interrup Control Register GICR cũng là 1 thanh ghi 8 bit nhƣng chỉ có 3 bit cao (bit 5. 4.2 MCUCSR – MCU Control and Status Register Bit 6 – ISC2: Interrupt Sense Control 2: là bit quan trọng nhất trong thanh ghi này dùng ghi và xóa cờ ngắt INT2. TIMER – COUNTER Timer – Counter (T/C) là các module độc lập với CPU. Chức năng chính của các bộ T/C.

Tạo tần số .Bộ đếm sự kiện ngoài .Bộ chia tần 10 bit . ở một số dòng AVR. giá trị này không nhất thiết là số lớn nhất 8 bit hay 16 bit nhƣ MAX.TOP: là giá trị mà khi T/C đạt đến nó sẽ thay đổi trạng thái. 22 .PWM . giá trị này luôn là 0. Nhƣ thế MAX là giá trị không đổi trong mỗi T/C.Đồ án học phần 1D điều rộng PWM (Pulse Width Modulation). giá trị của TOP có thể thay đổi bằng cách điều khiển các bit điều khiển tƣơng ứng hoặc có thể nhập trừ tiếp thông qua một số thanh ghi. Cụ thể trên chip Atmega16 có 2 bộ Timer 8 bit (T/C0 và T/C2) và 1 bộ 16 bit (T/C1) có các chức năng sau: .MAX: là giá trị lớn nhất mà một T/C có thể đạt đƣợc. một số T/C còn đƣợc dùng nhƣ các bộ canh chỉnh thời gian (calibration) trong các ứng dụng thời gian thực.Bộ đếm một kênh . với bộ T/C 16 bit thì MAX bằng 0xFFFF (65535). . giá trị này đƣợc quy định bởi bởi giá trị lớn nhất mà thanh ghi đếm của T/C có thể chứa đƣợc. Ví dụ với một bộ T/C 8 bit thì giá trị MAX luôn là 0xFF (255).Xóa bộ định thời khi trong mode so sánh (tự động nạp) .Nguồn ngắt tràn bộ đếm và so sánh Trƣớc khi sử dụng các bộ T/C của AVR.BOTTOM: là giá trị thấp nhất mà một T/C có thể đạt đƣợc. . có một số định nghĩa quan trọng cần đƣợc đề cập đến: .

1 Sơ đồ khối 5.2 Các thanh ghi của Timer – Counter 0 TCNT0 (Timer/Counter Register): Là 1 thanh ghi 8 bit chứa giá trị vận hành của T/C0.Đồ án học phần 1D 5. Thanh ghi này cho phép đọc và ghi giá trị một cách trực tiếp.1.1. TCCR0 (Timer/Counter Control Register): Là thanh ghi 8 bit điều khiển hoạt động của Timer – Counter 0 23 .1 Timer – Counter 0 5.

Các bit này điều khiển hoạt động của chân OC0.Đồ án học phần 1D . Giá trị này sẽ đƣợc so sánh liên tiếp với giá trị đếm trong thanh ghi TCNT0.FOC0: Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM . . CS01 và CS00: Các bit này quy định nguồn xung nhịp cấp cho T/C0 nhƣ bảng sau: OCR0 (Output Compare Register): Thanh ghi dữ liệu so sánh chứa một giá trị 8 bít. ngõ ra OC0 sẽ hoạt động. Một sự kiện so sánh có thể gây ra một ngắt hoặc sinh ra xung ở đầu ra OC0 24 .WGM00 và WGM01: Các bit này cho phép lựa chọn 1 trong 4 chế độ hoạt động của T/C0 theo bảng sau: .COM01 và COM00: Chế độ báo hiệu so sánh ngõ ra. Nếu một hoặc cả hai bit COM01:0 đƣợc đặt lên 1.CS02.

OCIE0: Cho phép ngắt báo hiệu so sánh . Nó cũng đơn giản hóa hoạt động đếm sự kiện ngoài.3. 5.OCF0: Cờ so sánh ngõ ra 0 . trong đó chỉ có bit TOIE0 và OCIE0 trong thanh ghi này là liên quan đến T/C0 . Trong chế độ CTC bộ đếm bị xóa bằng 0 mỗi khi giá trị đếm trong thanh ghi TCNT0 bằng với giá trị của thanh ghi OCR0.1.3 Các chế độ làm việc của Timer – Counter 0 5. Chế độ này cho phép điều khiển tốt hơn tần số của đầu ra so sánh khớp. Tuy nhiên nếu mà ngắt tràn đƣợc chấp nhận thì cờ ngắt sẽ tự động bị xoá khi ngắt đƣợc thực hiện. 25 . Trong thanh ghi này bit TOV0 và OCF0 có liên quan đến T/C0 .1.1 Normal mode Đây là chế độ hoạt động đơn giản nhất của Timer.3.1.TOIE0: Cho phép ngắt tràn bộ đếm TIFR (Timer/Counter Interrupt Flag Register): Là thanh ghi cờ nhớ cho tất cả các bộ T/C. Bộ đếm sẽ liên tục đếm tăng lên cho đến khi vƣợt quá giá trị TOP và sau đó sẽ đƣợc khởi động lại tại giá trị BOTTOM. thanh ghi OCR0 đƣợc sử dụng để điều khiển (điều khiển bằng tay – do ngƣời lập trình thực hiện) độ phân giải của bộ đếm.TOV0: Cờ tràn bộ đếm 5.2 Chế độ so sánh (CTC) Trong chế độ CTC. Trong các hoạt động thông thƣờng thì cờ tràn sẽ đƣợc thiết lập khi giá trị trong Timer đạt giá trị không và không bị xoá đi. OCR0 định nghĩa giá trị TOP của bộ đếm cũng có nghĩa đó là độ phân giải của nó.Đồ án học phần 1D TIMSK (Timer/Counter Interrupt Mask Register): Là thanh ghi mặt nạ cho ngắt của tất cả các T/C trong Atmega 16.

T/C 1 rất lý tƣởng trong việc lập trình và đo lƣờng vì có độ phần giải cao (16 bit) và còn có khả năng tạo xung PWM dùng để điều khiển động cơ 26 . bít này sẽ tự động xóa bởi phần cứng. bít này sẽ bằng 1. Khi TCNT2 đã đƣợc cập nhật từ thanh ghi dữ liệu tạm thời. OCR2UB: Tƣơng tự nhƣ bit TCN2UB nhƣng đối với OCR2 TCR2UB: Khi T/C2 hoạt động ở chế độ không đồng bộ. TCR2UB = 0 nghĩa là thanh ghi TCNT2 đang sẵn sàng để có thể cập nhật một giá trị mới. Timer – Counter 0 còn có 2 chế độ hoạt động nữa là Fast PWM và Phase Correct PWM 5. T/C2 còn có khả năng hoạt động không đồng bộ với chip thông qua việc thiết lập thanh ghi ASSR (Asynchronous Status Register) AS2: Khi AS2 = 0. Khi AS2 = 1.2 Timer – Counter 2: ATmega 16 còn có bộ Timer – Counter 2 hoạt động giống nhƣ bộ Timer – Counter 0. bít này sẽ bằng 1. Ngoài ra. bít này sẽ tự động xóa bởi phần cứng. 5.Đồ án học phần 1D Ngoài ra. Ngoài các chức năng định thì thông thƣờng.3 Timer – Counter 1 Timer – Counter 1 là bộ T/C 16 bit và có 5 chế độ hoạt động. TCR2UB = 0 nghĩa là thanh ghi TCCR2 đang sẵn sàng để có thể cập nhật một giá trị mới. Khi TCCR2 đã đƣợc cập nhật từ thanh ghi dữ liệu tạm thời. T/C2 đƣợc cấp xung nhịp từ bộ dao động bên ngoài thông qua chân TOSC1 TCN2UB: Khi T/C2 hoạt động ở chế độ không đồng bộ. T/C2 đƣợc cấp xung nhịp từ nguồn xung nhịp của hệ thống.

Đồ án học phần 1D 5. Các bit trong 2 thanh ghi này gồm các bit chọn mode hay dạng sóng (WGM). các bit quy định ngõ ra (COM). các bit chọn giá trị chia cho xung nhịp (CS).1 Sơ đồ khối 5.3.… 27 .2 Các thanh ghi của Timer – Counter 1 TCCR1A & TCCR1B (Timer/Counter Control Register): là hai thanh ghi 8 bit độc lập với nhau dùng để điều khiển hoạt động của T/C1.3.

một ngắt hoặc sinh ra xung trên chân OC1x (đây là cách tạo PWM bằng T/C1) ICR1H & ICR1L (Input Capture Register 1): Là 1 thanh ghi 16 bit cập nhật giá trị của thanh ghi TCNT1 mỗi khi có sự kiện xảy ra ở chân ICP1 rồi đặt giá trị đó vào thanh ghi ICR1. giá trị này đƣợc liên tiếp so sánh với giá trị của thanh ghi TCNT1.Đồ án học phần 1D TCNT1H & TCNT1L (Timer/Counter 1 High and Low Register): là 2 thanh ghi 8 bit tạo thành thanh ghi 16 bit (TCNT1) chứa các giá trị vận hành của T/C1 OCR1AH & OCR1AL (Output Compare Register 1A) OCR1BH & OCR1BL (Output Compare Register 1B) OCR1A & OCR1B là 2 thanh ghi 16 bit chứa giá trị so sánh. Khi giá trị so sánh bằng nhau. Ngoài ra thanh ghi ICR1 còn dùng để định nghĩa giá trị TOP trong một số chế độ hoạt động của T/C1 TIMSK (Timer/Counter Interrupt Mask Register): Là thanh ghi dùng để quy định ngắt cho các bộ T/C trên AVR cũng nhƣ quy định ngắt cho T/C1 (ở đây chỉ quan tâm đến các bit từ 2 đến 5 của thanh ghi TIMSK) 28 .

3.TICIE1: bit cho phép ngắt trong trƣờng hợp Input Capture đƣợc dùng Cùng với việc set các bit trên.Đồ án học phần 1D .TOIE1: quy định ngắt tràn cho T/C 1 .OCIE1A & OCIE1B: bit cho phép ngắt khi có 1 sự kiện trong việc so sánh giữa thanh ghi TCNT1 với OCR1A & OCR1B . OCF1B và TOV1 là các cờ trạng thái của T/C1 5.3 Các chế độ hoạt động của Timer – Counter 1 Có 5 chế độ hoạt động chính trên T/C1 đƣợc quy định bởi 4 bit WGM chứa trong 2 thanh ghi TCCR1A & TCCR1B. OCF1A. Các chế độ của T/C1 đƣợc tóm tắt trong bảng sau: 29 . các bit ICF1. bit I trong thanh ghi SREG cũng phải đƣợc set nếu muốn sử dụng ngắt TIFR (Timer/Counter Interrupt Flag Register): Là thanh ghi cờ nhớ cho tất cả các T/C trên AVR.

Giản đồ thời gian của chế độ này nhƣ sau: 5.3 Chế độ Fast PWM Chế độ Fast PWM cung cấp xung PWM ở tần số cao qua các chân OC1A và OC1B.3. Trong chế độ Fast PWM. 0x01FF.6.3.3. Chế độ này cho phép điều khiển tốt hơn tần số đầu ra so sánh. bộ đếm bị xóa về 0 khi giá trị đếm bằng giá trị ở một trong hai thanh ghi OCR1A (WGM13:0 = 4) hoặc ICR1 (WGM13:0 = 12).3. một chu kì đƣợc tính trong một lần đếm từ BOTTOM lên TOP (single-slope). Trong chế độ CTC. hoặc 7). Bộ đếm khi đó bị xóa ở các chu kì clock tiếp theo. Giản đồ thời gian của chế độ Fast PWM nhƣ sau: 30 . Nó cũng đơn giản hóa hoạt động đếm sự kiện bên ngoài. Trong chế độ Fast PWM. Có tất cả 5 mode trong chế độ Fast PWM thông qua việc thiết lập các bit WGM và COM trong 2 thanh ghi TCCR1A & TCCR1B. thanh ghi TCNT1 tăng từ giá trị BOTTOM (0x0000) đến giá trị TOP (0xFFFF) và quay về giá trị BOTTOM và cờ TOV1 sẽ đƣợc set. 5.3.Đồ án học phần 1D 5.2 Chế độ CTC (Clear Timer on Compare Match) Trong chế độ CTC (WGM13:0 = 4 hoặc 12). thanh ghi OCR1A hoặc thanh ghi ICR1 đƣợc sử dụng để định nghĩa độ phân giải của bộ đếm.3. Các thanh ghi OCR1A hoặc ICR1 định nghĩa giá trị TOP của bộ đếm đồng thời đó cũng là độ phân giải của bộ đếm.1 Normal mode (chế độ thƣờng) Trong chế độ này. bộ đếm đếm tăng cho đến khi giá trị đếm bằng với một trong các giá trị 0x00FF. hoặc giá trị trong thanh ghi ICR1 (WGM13:0 = 14) hoặc giá trị trong thanh ghi OCR1A (WGM13:0 = 15) (Đây là các giá trị đỉnh – không phải giá trị so sánh khớp). 0x03FF (WGM13:0 = 5.

2. Về cách điều khiển của chế độ Phase Correct PWM hầu nhƣ giống nhƣ chế độ Fast PWM. Hoạt động Fast PWM của kênh B hoàn toàn tƣơng tự nhƣ của kênh A 5.Đồ án học phần 1D Giản đồ trên minh họa cho chế độ Fast PWM ở mode 14 hoặc 15. thanh ghi TCNT1 tăng từ 0 đến khi bằng với OCR1A thì chân OC1A xóa xuống mức L.3. 10 hoặc 11) cung cấp khả năng tạo xung Phase Correct PWM với độ phân giải cao. lúc này chân OC1A ở mức H (giả sử COM1A1 =1 & COM1A0 = 0).3. giá trị TOP (chu kì của xung PWM) đƣợc chứa trong thanh ghi ICR1. 3.4 Chế độ Phase Correct PWM Chế độ Phase Correct PWM (WGM13:0 = 1. Khác nhau cơ bản là chế độ Phase Correct PWM hoạt động dual-slope (2 sƣờn dốc). thanh ghi TCNT1 tiếp tục tăng tới giá trị TOP chứa trong thanh ghi ICR1 thì TCNT1 reset về 0 và chân OC1A trở về mức H. khi TCNT1 tăng đến giá trị của thang ghi OCR1A thì chân OC1A đƣợc xóa về mức L. Ví dụ trong mode 14. thanh ghi TCNT1 tăng từ giá trị 0. TCNT1 tiếp tục tăng đến khi TCNT1 = TOP thì 31 . Ví dụ trong mode 10 (tƣơng ứng với mode 14 của Fast PWM).

I2C. Bộ đếm sau đó sẽ đạt đến giá trị TOP và đổi chiều đếm.3. SPI.Đồ án học phần 1D TCNT1 bắt đầu giảm dần giá trị.… Tuy nhiên do giới hạn của đề tài nên chúng em chỉ tìm hiểu tới phần này.3. khi TCNT1 = OCR1A lần thứ 2 thì chân OC1A đƣợc set lên H. ADC. Giản đồ thời gian của chế độ Phase Correct & Frequency Correct PWM nhƣ sau: Ngoài ra. 32 . TCNT1 giảm đến giá trị 0 thì hoàn tất 1 chu kì.5 Phase Correct & Frequency Correct PWM Trong chế độ Phase Correct & Frequency Correct PWM bộ đếm đếm tiến cho đến khi giá trị đếm bằng với giá trị trong thanh ghi ICR1 (WGM13:0 = 8) hoặc bằng với giá trị trong thanh ghi OCR1A (WGM13:0 = 9). các phần còn lại chúng em sẽ phát triển ở các đồ án kế tiếp. trên AVR còn có một số module điều khiển khác như: giao tiếp UART. Giá trị đếm TCNT1 sẽ bằng TOP trong 1 chu kì clock của timer. 5.

Khái quát về động cơ DC servo Động cơ servo có nhiều kiểu dáng và kích thƣớc.Đồ án học phần 1D IV. phản hồi xung. từ máy tiện điều khiển bằng máy tính cho đến các mô hình máy bay và xe hơi. với điện áp phàn hổi đƣợc tính bằng (vol/vòng quay). ĐỘNG CƠ DC SERVO 1. . Ứng dụng mới nhất của động cơ servo là trong các robot. đơn vị (xung/vòng).Phanh điện từ:giúp hãm động cơ trong trƣờng hợp cần thiết.Chổi than và vành góp: giúp đƣa điện vào Rotor . đƣợc sử dụng trong nhiếu máy khác nhau. Một động cơ DC servo tiêu biểu gồm có các thành phần chính sau: .Rotor: là thành phần tạo chuyển động quay . cùng loại với các động cơ dùng trong mô hình máy bay và xe hơi.Encoder:là bộ mã hóa vòng quay.Tachometer: là thành phần phản hổi tƣơng tự. . 33 .Stator: đƣợc gắn liền với vỏ động cơ . thực chất là một máy phát điện nhỏ.

Encoder Để điều khiển số vòng quay hay vận tốc động cơ thì chúng ta nhất thiết phải đọc đƣợc góc quay của motor. là thiết bị đƣợc điều khiển bằng chu trình kín. Tín hiệu ra của động cơ đƣợc nối với mạch điều khiển. 34 . Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt đƣợc điểm chính xác. 2. Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ. Khi động cơ quay. dùng biến trở xoay. hệ thống điều khiển số sẽ điều khiển hoạt động của một động cơ servo. Việc thiết lập một hệ thống điều khiển để xác định những gì ngăn cản chuyển động quay của động cơ hoặc làm động cơ không quay cũng dễ dàng.Đồ án học phần 1D Động cơ servo DC dựa trên nền tảng động cơ DC. hoặc dùng encoder. Từ tín hiệu hồi tiếp vận tốc/vị trí. cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chƣa đạt đƣợc vị trí mong muốn. vận tốc và vị trí sẽ đƣợc hồi tiếp về mạch điều khiển. Với lý do nêu trên nên sensor đo vị trí hoặc tốc độ là các bộ phận cần thiết phải tích hợp cho một động cơ servo. Một số phƣơng pháp có thể đƣợc dùng để xác định góc quay của motor bao gồm tachometer (thật ra tachometer đo vận tốc quay). Động cơ Servo là một động cơ điện đƣợc thiết kế cho nhƣng hệ thống điều khiển có hồi tiếp vòng kín.

Cấu tạo encoder quang Encoder thƣờng có 3 kênh (3 ngõ ra) bao gồm kênh A. Đây là kênh A của encoder. một cảm biến quang và một đĩa có chia rãnh. kênh B và kênh I (Index).Đồ án học phần 1D Trong đó 2 phƣơng pháp đầu tiên là phƣơng pháp analog và dùng optiacal encoder (encoder quang) thuộc nhóm phƣơng pháp digital. Bên ngoài đĩa quay đƣợc chia thành các rãnh nhỏ và một cặp thu – phát khác dành cho các rãnh này. hồng ngoại từ nguồn phát sẽ xuyên qua lỗ nhỏ đến cảm biến quang. có N “xung” xuất hiện trên kênh A. có khi trên mỗi đĩa chĩ có vài rãnh nhƣng cũng có trƣờng hợp đến hàng nghìn rãnh đƣợc chia. lỗ nhỏ xuất hiện tại vị trí của cặp phát . gọi tắt là encoder. Optical encoder lại đƣợc chia thành 2 loại: encoder tuyệt đối (absolute optical encoder) và encoder tƣơng đối (incremental optical encoder). N là số rãnh trên đĩa và đƣợc gọi là độ phân giải (resolution) của encoder. Nhƣ thế kênh I xuất hiện một “xung” mỗi vòng quay của motor. Hệ thống optical encoder bao gồm một nguồn phát quang (thƣờng là hồng ngoại – infrared). Mỗi loại encoder có độ phân giải khác nhau. hoạt động của kênh A cũng tƣơng tự kênh I. Cữ mỗi lần motor quay đƣợc một vòng. Trong hình 2 bạn thấy hãy chú ý một lỗ nhỏ bên phía trong của đĩa quay và một cặp thu – phát dành riêng cho lỗ nhỏ này. điểm khác nhau là trong 1 vòng quay của motor.thu. một tín hiệu xuất hiện trên cảm biến. Đó là kênh I của encoder. Ở đây ta dùng incremental optical encoder. 35 .

Xét trƣờng hợp motor quay cùng chiều kim đồng hồ. bạn phải biết độ phân giải của encoder đang dùng. tín hiệu “đi” từ trái sang phải. Hình thấp là dạng xung ngõ ra trên 2 kênh. Mạch cầu H 36 . bằng cách phối hợp 2 kênh A và B chúng ta không những xác định đƣợc góc quay (thông qua số xung) mà còn biết đƣợc chiều quay của động cơ (thông qua mức của kênh B ở cạnh xuống của kênh A). tại cạnh xuống của kênh A thì kênh B đang ở mức cao.Đồ án học phần 1D Để điều khiển động cơ. Lúc này. nếu động cơ quay ngƣợc chiều kim đồng hồ. 3. Bạn hãy quan sát lúc tín hiệu A chuyển từ mức cao xuống thấp (cạnh xuống) thì kênh B đang ở mức thấp. Nhƣ vậy. và ngƣợc lại. Ngƣợc lại. Khi cảm biến A bắt đầu bị che thì cảm biến B hoàn toàn nhận đƣợc hồng ngoại xuyên qua. Độ phân giải ảnh hƣởng đến độ chính xác điều khiển và cả phƣơng pháp điều khiển. tín hiệu “đi” từ phải qua trái. Hoạt động của encoder quang Khi 2 cảm biến kênh A và B lệch pha nhau.

dòng điện lại xuất hiệnvà lần này nó sẽ chạy qua đối tƣợng theo chiều từ B đến A nhƣ trong hình b (V → R1 → B → A → L2 → GND). Hãy xem 2 đầu V và GND là 2 đầu (+) và (-) của ắc qui. mạch cầu H không hoạt động. sử dụng mạch cầu H. R1 và R2 (L: Left. Ở điều kiện bình thƣờng 4 khóa này “mở”.Đồ án học phần 1D Động cơ Dc servo đƣợc điều khiển bởi tín hiệu từ vi điều khiển theo nguyên lý điều khiển độ rộng xung (Pulse width modulation – PWM). 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 a). Nếu đóng đồng thời 2 khóa ở cùng một bên (L1 và L2 hoặc R1 và R2) hoặc thậm chí 37 . 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. “đối tƣợng” này có 2 đầu A và B. Bây giờ hãy giả sử khác đi rằng R1 và L2 đóng trong khi L1 và R2 mở. Vậy là chúng ta có thể dùng mạch cầu H để đảo chiều dòng điện qua một “đối tƣợng” (đảo chiều quay động cơ). L2. R: Right). Giả sử bằng cách nào đó mà 2 khóa L1 và R2 đƣợc “đóng lại” (L2 và R1 vẫn mở). “đối tƣợng” là động cơ DC mà chúng ta cần điều khiển. 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. 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. Nhƣ thế.

BJT hay MOSFET. B của “đối tƣợng” cùng nối với một mức điện áp và sẽ không có dòng điện nào chạy qua. công suất tiêu thụ của đối tƣợng và cả hiểu biết. loại đối tƣợng cần điều khiển. Cách đóng các khóa nhƣ thế này sẽ làm hỏng mạch cầu H. Đó là nguyên lý cơ bản của mạch cầu H. V và GND gần nhƣ nối trực tiếp với nhau và hiển nhiên ắc qui sẽ bị hỏng hoặc nguy hiểm hơn là cháy nổ mạch xảy ra. Nhìn chung. Để tránh việc này xảy ra. Giả thiết cuối cùng là 2 trƣờng hợp các khóa ở phần dƣới hoặc phần trên cùng đóng (ví dụ L1 và R1 cùng đóng. Với trƣờng hợp này. Nhƣ vậy thành phần chính của mạch cầu H chính là các “khóa”. điều kiện của ngƣời thiết kế. việc chọn linh kiện để làm các khóa này phụ thuộc vào mục đích sử dụng mạch cầu. các khóa của mạch cầu H thƣờng đƣợc chế tạo bằng rơle. L2 và R2 cùng mở). dòng điện liên tục lên đến 3A 4. 4. mạch cầu H không hoạt động. cả 2 đầu A. Chip driver LMD18200 LMD18200 là IC cầu H chuyên dụng dùng để điều khiển động cơ DC và Step motor của hãng National Semiconductor.Đồ án học phần 1D đóng cả 4 khóa? Hiện tƣợng “ngắn mạch” (short circuit). Đây có thể coi là một cách “thắng” động cơ (nhƣng không phải lúc nào cũng có tác dụng). ngƣời ta thƣờng dùng thêm các mạch logic để kích cầu H.1 Sơ đồ khối 38 .

Thermal Flag Output: Chân cảnh báo quá nhiệt .Vs & GND: Cấp nguồn cho LMD18200 39 .PWM Input: Kết nối với kênh phát xung PWM của AVR để điều khiển tốc độ . nhận tín hiệu H hoặc L từ AVR để cho phép động cơ chạy hoặc hãm .Current Sense Output: Chân dòng điện ngõ ra . nhận tín hiệu H hoặc L từ AVR để thực hiện đảo chiều động cơ .Direction Input: Chân điều khiển chiều quay của động cơ.Output 1 & Output 2: Kết nối vào động cơ .2 Sơ đồ chân Mô tả chức năng một số chân của LMD18200 .Brake Input: Chân thắng động cơ.Đồ án học phần 1D 4.

40 .Động cơ chạy khi chân Brake treo ở mức L.Động cơ dừng ở trạng thái bị hãm khi PWM. DIR có thể ở mức H hoặc L. DIR ở mức L.Động cơ dừng ở trạng thái không bị hãm khi PWM ở mức L. DIR (X). Brake ở mức L.bất chấp giá trị H hoặc L). . DIR và BRA ở mức H hoặc PWM và Brake ở mức H. . PWM ở mức H. hoặc PWM ở mức L. Brake ở mức H.Đồ án học phần 1D Bảng logic của LMD18200 Theo bảng logic trên thì: . DIR (X.

KHỐI NÚT NHẤN – BUTTON 41 .Các jack cắm để kết nối với các khối LCD.Vi điều khiển ATmega16 với thạch anh 8MHz .Đồ án học phần 1D PHẦN 2: THI CÔNG PHẦN CỨNG I. khối encoder và khối nút nhấn II. KHỐI VI ĐIỀU KHIỂN Khối vi điều khiển gồm có: . khối công suất.

Đồ án học phần 1D Khối nút nhấn gồm có 6 nút nhấn.IC TL082 gồm 2 kênh OP-AMP làm mạch so sánh .Các jack cắm J3 nhận tín hiệu từ động cơ. KHỐI ENCODER Khối encoder đƣợc dùng để lọc nhiễu tín hiệu encoder từ động cơ. mỗi nút nhấn đƣợc mắc song song với 1 tụ điện 103 và đƣợc kết nối với khối vi điều khiển bằng jack cắm J2 III. J2 đƣa tín hiệu encoder vào khối vi điều khiển 42 . sau đó đƣa xung encoder vào khối vi xử lí để hiển thị ra tốc độ và chiều của động cơ. Khối này gồm: .

Đồ án học phần 1D IV.Jack J1 nhận tín hiệu điều khiển từ khối vi điều khiển. Khối công suất gồm: .IC LMD18200: là IC tích hợp cầu H và các chân nhƣ PWM. J8 nối với động cơ 43 . KHỐI CÔNG SUẤT Khối công suất dùng để điều khiển động cơ từ các tín hiệu của khối vi điều khiển đƣa tới. chiều của động cơ . DIR và BRK dùng để điều khiển tốc độ.

chƣa gọn.Mô hình còn cồng kềnh. KẾT QUẢ ĐẠT ĐƢỢC . hạn chế nhiễu cho khối vi điều khiển và LCD . chỉ bảo em những kinh nghiệm cùng kiến thức thực tế để đề tài đƣợc hoàn thành một cách nhanh chóng. KẾT LUẬN Qua đề tài tìm hiểu về “Điều khiển tốc độ động cơ DC sử dụng vi điều khiển AVR’’ nhóm chúng em đã học thêm đƣợc rất nhiều kiến thức. công sức rất quý báu để giúp nhóm hoàn thành tốt đồ án này. 44 . Quá trình tìm hiểu.TỔNG KẾT I.Tiếp tục nghiên cứu tất cả các chức năng của vi điều khiển AVR và ứng dụng . tính thẩm mĩ chƣa cao đôi khi phần hiển thị bị nhiễu do phần cách li giữa khối công suất và khối vi điều khiển chƣa đƣợc thực hiện tốt III. nhóm chúng em rất biết ơn thầy Hoàng Đình Khôi đã nhiệt tình hƣớng dẫn. HẠN CHẾ .Bƣớc đầu thực hiện đƣợc mô hình thực tế và hoạt động đúng với khi lập trình II. những ngƣời đã đóng góp rất nhiều ý kiến. Trong thời gian tới nhóm sẽ cố gắng tìm hiểu nhiều ứng dụng cụ thể hơn nữa qua các đồ án kế tiếp Cuối cùng chúng em xin chân thành cảm ơn tất cả các thầy cô cùng các bạn sinh viên.Chƣa tìm hiểu đƣợc hết các chức năng của vi điều khiển AVR .Đồ án học phần 1D PHẦN 3 . Đặc biệt. HƢỚNG PHÁT TRIỂN ĐỀ TÀI .Tìm hiểu đƣợc cấu trúc cũng nhƣ một số chức năng của vi điều khiển AVR và ứng dụng các chức năng đó vào mục đích điều khiển tốc độ động cơ DC . giao tiếp giữa khối vi điều khiển với máy tính để việc điều khiển động cơ đƣợc dễ dàng hơn IV.Áp dụng thuật toán PID để điều khiển động cơ.Đơn giản hóa mô hình. Tuy nhiên vì kiến thức và thời gian còn nhiều hạn chế nên đề tài chƣa đƣợc mở rộng với những ứng dụng thực tế. nhóm chúng em đã thực hiện mạch thực tế và đạt đƣợc những kết quả nhất định.

dientuvietnam. http://www.com 4.net 45 . NXB Khoa học – Kĩ thuật năm 2000 2.hocavr. Datasheet Atmel – ATmega16L – 8PU 3. . Nguyễn Bính.Đồ án học phần 1D TÀI LIỆU THAM KHẢO 1. Điện tử công suất.http://www.