ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÀI TẬP LỚN Môn: Vi xử lý, vi điều khiển Đề bài: Thiết kế bộ điều khiển tốc độ của động cơ điện một chiều GVHD: PGS.TS Phạm Mạnh Thắng
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
BÀI TẬP LỚN
Môn: Vi xử lý, vi điều khiển
Đề bài: Thiết kế bộ điều khiển tốc độ của động cơ điện một chiều
GVHD: PGS.TS Phạm Mạnh Thắng
ThS Hoàng Văn Mạnh Nhóm sinh viên: Nhóm 18
Lớp: K57M
Khoa Cơ học kỹ thuật và Tự động hóa
Hà Nội, ngày 21/11/2015
Trang 2Lời mở đầu
Nước ta đang đang trong công cuộc công nghiệp hóa, tự động hóa, đổi mới phát triền toàn diện Phục vụ cho công cuộc đổi mới này đó là các máy móc hiện đại được điều khiển vô cùng phức tạp; nhưng cũng vì thế mà làm giảm được tối đa sự góp mặt của con người vào các quá trình sản xuất đó Tự động hóa phát triển kéo theo những công nghệ điều khiển tiên tiến cũng phát triển và đóng góp vai trò vô cùng quan trọng trong sản xuất
Có thể kể đến đó là những rô bốt công nghiệp, tay máy hay các dây chuyền tự động được lập trình sẵn đó là những quá trình lớn Ở trong một phạm vi nhỏ hơn, việc điều khiển được thực hiện một cách dễ dàng với những vi xử lý hoặc những vi điều khiển được lập trình sẵn cũng góp mặt vô cùng nhiều trong các ứng dụng thực tế trong cuộc sống
Trong các ứng dụng liên quan đến truyền động, một thành phần gần như không thể thiếu đó là các động cơ điện, nó có tác dụng gây ra các lực làm các cơ cấu chấp hành hoạt động Động cơ điện có rất nhiều ứng dụng trong cuộc sống, nhất là trong sản xuất công nghiệp Việc điều khiển được tốc độ cũng như chiều quay của nó cũng là một vấn đề cần giải quyết Kết hợp với vi điều khiển, việc điều khiển động cơ trở lên dễ dàng hơn rất nhiều
Xuất phát từ yêu cầu đó, nhóm chúng em đã nghiên cứu và làm một bài tập về điều khiển động cơ điện một chiều đó là “thiết kế bộ điều khiển tốc độ động cơ điện một chiều” với yêu cầu là điều khiển quay nhanh, quay chậm, quay thuận, quay ngược và dừng Vận dụng các kiến thức được học trong trường nhóm đã thực hiện trên vi điều khiển ATmega16 nhằm nắm được cơ bản về vi điều khiển này, cách đọc, viết, cách nhận biết các chân của vi điều khiển và vận dụng vào thực tế
Các thành viên nhóm:
- Phạm Trần Hoàng
- Vũ Đình Ngọc
- Nguyễn Viết Bình
Trang 3Mục lục
Phần I Cơ sở lý thuyết 3
I Vi điều khiển ATmega16 3
1 Cấu trúc nhân 4
2 Sơ đồ khối 6
3 Ý nghĩa các chân 7
4 Bộ định thời 7
II Động cơ điện một chiều 10
1 Cấu tạo 10
2 Nguyên lý làm việc 10
3 Phân loại 11
III Các phương pháp điều khiển động cơ điện một chiều 11
1 Điều khiển chiều quay của động cơ điện một chiều 11
2 Điều khiển tốc độ động cơ điện một chiều 12
Phần II Nội dung 18
I Thiết kế và thi công phần cứng 18
1 Sơ đồ khối 18
2 Sơ đồ nguyên lý và mạch in 18
3 Mô phỏng trên Proteus 21
4 Hình ảnh mạch thực tế 22
II Viết code cho vi điều khiển 23
Phần III Kết luận 26
Trang 4Phần I Cơ sở lý thuyết
I Vi điều khiển ATmega16
ATmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC Với khả năng thực hiện mỗi lệnh trong vòng một chu kỳ xung clock, ATmega16 có thể đạt được tốc độ 1MIPS trên mỗi MHz
Ngoài ra ATmega16 có các đặc điểm sau: 16KB bộ nhớ Flash với khả năng đọc trong khi ghi, 512 byte bộ nhớ EEPROM, 1KB bộ nhớ SRAM, 32 thanh ghi chức năng chung, 32 đường vào
ra chung, 3 bộ định thời/bộ đếm, ngắt nội và ngắt ngoại, USART, giao tiếp nối tiếp 2 dây, 8 kênh ADC 10 bit, ATmega 16 hỗ trợ đầy đủ các chương trình và công cụ phát triển hệ thống như: trình dịch C, macro assemblers, chương trình mô phỏng/sửa lỗi, …
Hình 1 Hình ảnh thực tế vi điều khiển Atmega16
Hình 2 Sơ đồ chân của ATmega16
Trang 51 Cấu trúc nhân
CPU của Atmega16 có chức năng bảo đảm sự hoạt động chính xác các chương trình Do đó
nó phải có khả năng truy cập bộ nhớ, thực hiện các quá trình tính toán, điều khiển các thiết bị ngoại vi và quản lý ngắt
- Cấu trúc tổng quát
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình và dữ liệu Các lệnh được thực hiện chỉ trong một chu kỳ xung clock Bộ nhớ chương trình được lưu trong bộ nhớ Flash
Hình 3 Cấu trúc tổng quát Atmega16
- ALU
ALU làm việc trực tiếp với các thanh ghi chức năng chung Các phép toán được thực hiện trong một chu kỳ xung clock Hoạt động của ALU được chia làm 3 loại: đại số, logic và theo bit
- Thanh ghi trạng thái
Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic
Hình 4 Thanh ghi trạng thái
Trang 6Trong đó:
+ C: Carry Flag: cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập)
+ Z: Zero Flag: Cờ zero (Nếu kết quả phép toán bằng 0)
+ N: Negative Flag: (Nếu kết quả của phép toán là âm)
+ V: Two’s complement overflow indicator (Cờ này được thiết lập khi tràn số bù 2) + H: Half Carry Flag
+ T: Transfer bit used by BLD and BST instructions: (Được sử dụng làm nơi chung gian trong các lệnh BLD,BST)
+ I: Global Interrupt Enable/Disable Flag: (Đây là bit cho phép toàn cục ngắt 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ụ.)
- Các thanh ghi chức năng chung
Hình 5: Các thanh ghi chức năng chung
- Con trỏ ngăn xếp (SP)
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 Có địa chỉ trong các thanh ghi chức năng đặc biệt là $3E (trong bộ nhớ RAM là $5E) và có nhiệm vụ trỏ tới vùng nhớ trong RAM chứa ngăn xếp
Hình 6: Thanh ghi con trỏ ngăn xếp
- Quản lý ngắt
Trang 7Ngắ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, 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 đó chơ tới khi gặp lệnh RETI (return from interrup) 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
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 Trong khi đang thực hiện ngắt mà xuất hiện ngắt mới thì sẽ xảy ra hai trường hợp Trường hợp ngắt này có mức ưu tiên cao hơn thì nó sẽ được phục vụ Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ qua
Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên Để truy nhập vào SRAM thông thường thì ta dùng con trỏ X, Y, Z và để truy nhập vào SRAM theo kiểu ngăn xếp thì
ta dùng con trỏ SP Con trỏ này là một thanh ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ: SPL: 0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E
Khi chương trình phục vụ ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh PUSH Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2 Như vậy con trỏ ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một chương trình con được gọi hoặc các ngắt được cho phép phục vụ Và giá trị ngăn xếp ít nhất cũng phải lớn hơn 60H (0x60) vì 5FH trỏ lại là vùng các thanh ghi
2 Sơ đồ khối:
Hình 7: Sơ đồ khối
Trang 8+ Port A (PA): Port A gồm 8 chân (từ chân 33 đến 40) có chức năng: đầu vào cho
chuyển đổi ADC
+ Port B (PB): Port PB gồm 8 chân (từ chân 1 đến chân 8), ngoài có chức năng làm
các đường xuất/nhập thì còn có nhiều chức năng phụ khác
+ Port C (PC): Port C gồm 8 chân (từ chân 22 đến chân 29) : Nếu giao tiếp JTAG được
kích hoạt điện trở trên các PC5(TDI), PC3 (TMS) ,PC2 (TCK) sẽ được kích hoạt ngay cả khi khởi động lại (reset)
+ Port D (PD): Port D gồm 8 chân (từ chân 14 đến 21):chưc năng xuất nhập
+ Chân RESET(RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng
thái ban đầu cho vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy
+ Chân XTAL1 và XTAL2: Hai chân này có vị trí chân là 12 và 13 được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ
để tạo nguồn xung clock ổn định
+ Chân AVCC: Nguồn cấp cho cổng A và bộ chuyển đổi ADC , chân này nên được nối với nguồn cấp VCC bên ngoài , ngay cả khi bộ chuyển đổi ADC không được sử dụng Nếu bộ chuyển đổi ADC không được sử dụng , chân AVCC nên được nối với nguồn qua bộ lọc
+ Chân AREF: AREF là chân chuẩn analog cho bộ chuyển đổi ADC
4 Bộ định thời
Bộ định thời (timer/counter) là một module định thời/đếm 8 bit, có các đặc điểm sau:
+ Bộ đếm một kênh + Xóa bộ định thời khi trong mode so sánh + PWM
+ Tạo tần số + Bộ đếm sự kiện ngoài + Bộ chia tần 10 bit + Nguồn ngắt tràn bộ đếm và so sánh
TCNT0 và OCR0 là các thanh ghi 8 bit Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi TIFR Các ngắt có thể được che bởi thanh ghi TIMSK
Bộ định thời có thể sử dụng xung clock nội thông qua bộ chia hoặc xung clock ngoài trên chân T0 Khối chọn xung clock điều khiển việc bộ định thời bộ đếm sẽ dùng nguồn xung nào để tăng giá trị của nó Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời
Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm Kết quả so sánh có thể được sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0
Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được Cấu trúc của nó như hình dưới đây:
Trang 9Hình 8 Sơ đồ đơn vị đếm
+ Count: tăng hay giảm TCNT0:1
+ Direction: lựa chọn giữa đếm lên và đếm xuống
+ Clear: xóa thanh ghi TCNT0
+ TOP: báo hiệu bộ định thời đẫ tăng đến giá trị lớn nhất
+ BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất
Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị thanh ghi so sánh ngõ ra (OCR0) Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu Báo hiệu này sẽ đặt giá trị cờ
so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo Nếu được kích hoạt (OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động được xóa khi ngắt được thực thi Cờ OCF0 cũng có thể được xóa bằng phần mềm
Hình 9 Sơ đồ đơn vị so sánh ngõ ra
Mô tả các thanh ghi
Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0
+ Bit 7 (FOC0): so sánh ngõ ra bắt buộc: bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng
Trang 10+ Bit 6 (WGM00) – bit 3 (WGM01): chế độ tạo dạng sóng: các bit này điều khiển hoạt động của chân OC0 Nếu một hoặc cả hai bit COM01, COM00 được đặt lên 1, ngõ ra OC0 sẽ hoạt động
+ Bit 2 (CS02), bit 1 (CS01), bit 0 (CS00): chọn xung đồng hồ: ba bit này dùng để lựa chọn nguồn xung cho bộ định thời/bộ đếm
Hình 10 Lựa chọn nguồn xung cho bộ định thời
Thanh ghi bộ định thời/bộ đếm
Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp vào bộ đếm 8 bit
Thanh ghi so sánh ngõ ra – OCR0
Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm
Thanh ghi mặt nạ ngắt
+ Bit 1 (OCIE0): cho phép ngắt báo hiệu so sánh
+ Bit 0 (TOIE0): cho phép ngắt tràn bộ đếm
Thanh ghi cờ ngắt bộ định thời
Trang 11Cấu tạo của động cơ điện gồm stator, rotor và hệ thống chổi than – vành góp
Stator bao gồm vỏ máy, cực từ chính, cực từ phụ, dây quấn phần cảm (dây quấn kích thích) gồm các bối dây đặt trong rãnh của lõi sắt Số lượng cực từ chính phụ thuộc tốc độ quay Đối với động cơ công suất nhỏ, người ta có thể kích từ bằng nam châm vĩnh cửu
Rotor (còn gọi là phần ứng) gồm các lá thép kỹ thuật điện ghép lại có rãnh để đặt các phần
tử của dây quấn phần ứng Điện áp một chiều được đưa vào phần ứng qua hệ thống chổi than – vành góp Kết cấu của giá đỡ chổi than có khả năng điều chỉnh áp lực tiếp xúc và tự động duy trì
áp lực tùy theo độ mòn của chổi than
Chổi than – vành góp có chức năng đưa điện áp một chiều vào cuộn dây phần ứng và đổi chiều dòng điện trong cuộn dây phần ứng Số lượng chổi than bằng số lượng cực từ (một nửa có cực tính dương và một nửa có cực tính âm)
.2
là số mạch nhánh song song của dây quấn phần ứng; k là hệ số kết cấu của máy
Cơ chế sinh lực quay của động cơ điện một chiều
Khi có một dòng điện chạy qua cuộn dây quấn xung quanh một lõi sắt non, cạnh phía bên cực dương sẽ bị tác động bởi một lực hướng lên, trong khi cạnh đối diện lại bị tác động bằng một lực hướng xuống theo nguyên lý bàn tay trái của Fleming Các lực này gây tác động quay lên cuộn dây, và làm cho rotor quay Để làm cho rotor quay liên tục và đúng chiều, một bộ cổ góp điện sẽ làm chuyển mạch dòng điện sau mỗi vị trí ứng với 1/2 chu kỳ Chỉ có vấn đề là khi mặt của cuộn dây song song với các đường sức từ trường Nghĩa là lực quay của động cơ bằng 0 khi cuộn dây lệch 900 so với phương ban đầu của nó, khi đó rotor sẽ quay theo quán tính
Trong các máy điện một chiều lớn, người ta có nhiều cuộn dây nối ra nhiều phiến góp khác nhau trên cổ góp Nhờ vậy dòng điện và lực quay được liên tục và hầu như không bị thay đổi theo các vị trí khác nhau của rotor
Phương trình cơ bản của động cơ 1 chiều:
Trang 12u u u
- Động cơ một chiều kích từ bằng nam châm vĩnh cửu
- Động cơ một chiều kích từ độc lập (phần ứng và phần kích từ được cung cấp bởi hai nguồn riêng rẽ)
- Động cơ một chiều kích từ nối tiếp: cuộn dây kích thích được mắc nối tiếp với phần ứng
- Động cơ một chiều kích từ song song: cuộn dây kích thích được mắc song song với phần ứng
- Động cơ một chiều kích từ hỗn hợp: gồm có 2 cuộn dây kích thích, một cuộn mắc nối tiếp với phần ứng, cuộn còn lại mắc song song với phần ứng
III Các phương pháp điều khiển động cơ điện một chiều
1 Điều khiển chiều quay của động cơ điện một chiều
Đảo chiều quay của động cơ điện một chiều được thực hiện dễ dàng bằng cách thay đổi chiều dòng điện cấp vào động cơ điện là có thể thay đổi được chiều quay của động cơ
Một số phương pháp điều khiển chiều quay của động cơ điện một chiều:
- Sử dụng công tắc: nối vào một công tắc có 3 nấc, khi gạt công tắc sang phải thì động cơ quay theo chiều thuận, gạt về giữa thì động cơ dừng, gạt sang trái thì động cơ quay ngược lại Nguyên tắc đó là đảo chiều của nguồn cung cấp vào động cơ
- Sử dụng mạch cầu H điều khiển: linh kiện sử dụng trong mạch cầu có thể là diode, transistor BJT, transistor trường
Hình 11 Mạch cầu H sử dụng: a/ transistor PNP – NPN; b/ MOSFET; c/ Relay
Nguyên tắc hoạt động: (phân tích với hình a, các hình khác tương tự) ở chế độ quay thuận, tín hiệu điều khiển cấp vào 4 transistor với điều kiện là vào Q1 = 0, Q2 = 1; Q3 = 0; Q4 = 1, dòng điện sẽ đi theo chiều từ nguồn cấp vào Q1, qua động cơ vào Q4 xuống đất
Trang 13Hình 12 Dòng điện chạy trong mạch cầu H ở chế độ quay thuận
Ở chế độ quay ngược, Q1 = 1, Q2 = 0; Q3 = 1; Q4 = 0, dòng điện sẽ đi từ Q2 qua động cơ
về Q3 xuống đất Như vậy là đã làm cho động cơ quay theo chiều ngược lại Muốn cho động cơ dừng không quay thì cho Q1, Q3 và Q2, Q4 cùng mức là được
- Sử dụng các IC chuyên dụng: các IC chuyên dụng dùng để điều khiển động cơ có thể dễ dàng tìm thấy như L293, L293D, L298, L298N, …
Hình 13 IC L298 và sơ đồ chân
IC L298 được tích hợp sẵn bên trong hai mạch cầu H do đó có thể điều khiển được hai động cơ một chiều với chỉ một IC L298 Hai chân OUTPUT1 và OUTPUT2 cho động cơ 1 và hai chân OUTPUT3 và OUTPUT4 là cho động cơ thứ 2 Chân INPUT1 đưa tín hiệu điều khiển động
cơ 1, chân INPUT2 đưa tín hiệu điều khiển động cơ 2 Để điều khiển chiều quay của động cơ một chiều thì cần đưa chân INPUT lên mức 1, khi đó, với 1 động cơ, giả sử ở chân OUT1 và OUT2, đề điều khiển quay thuận thì cho OUT1 = 1, OUT2 = 0; điều khiển quay ngược thì cho OUT1 = 0, OUT2 = 1; dừng động cơ thì cho đồng thời OUT1 = OUT2 = 1 hoặc OUT1 = OUT2 = 0 Với hai chân OUT3 và OUT4 thì làm tương tự sau khi đã đưa INPUT2 lên mức 1
2 Điều khiển tốc độ động cơ điện một chiều
Điều khiển tốc độ động cơ điện là một yêu cầu cần thiết vì có những máy móc hoạt động với những tốc độ khác nhau, nhanh chậm tùy loại, tùy công việc và điều kiện làm việc Điều chỉnh tốc độ động cơ bằng cách điều chỉnh điện áp nguồn cung cấp có thể sử dụng cho các động cơ một chiều và động cơ không đồng bộ Tuy vậy thì nó được sử dụng chủ yếu cho động cơ một chiều kích từ độc lập Phương trình đặc tính cơ của động cơ điện một chiều kích từ độc lập: