Đồ án Điều khiển động cơ DC qua vi điều khiển PIC16F887A

MỤC LỤC

Chương 1: Động cơ điện một chiều.1

1.1. Giới thiệu chương

1.2. Nội dung

1.2.1 Giới thiệu động cơ DC.1

1.2.2 Mô hình hóa động cơ DC.1

1.2.3 Phương pháp điều khiển tốc độ động cơ:.3

1.2.4 Khảo sát hàm truyền.4

1.2.4.1 Hàm truyền lý tưởng:.4

1.2.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm.5

1.2.5 Phương pháp ổn định động cơ dùng thuật toán PID.6

1.2.5.1 Thuật toán PID.6

1.2.5.2 Phương pháp hiệu chỉnh thông số bộ PID Ziegler-Nichols:.7

1.3. Kết chương

Chương 2 : Giới thiệu vi điều khiển PIC16F887.9

1.4. Giới thiệu chương

1.5. Nội dung

2.2.1 Một vài chi tiết chính của vi điều khiển PIC16F887.9

2.2.2 Bộ dao động của PIC16F887.11

2.2.3 Các Port I/O.12

2.2.4 Hoạt động của khối giao tiếp EUSART.13

2.2.5 Cấu tạo và hoạt động của khối điều xung PWM.15

2.2.6 Ngắt ngoài trên chân RB0.17

2.2.7 Cấu tạo và hoạt động của bộ Timer1.18

Mục lục

2.2.8 Cách nạp cho PIC16F887.18

1.6. Kết chương

Chương 3: Thiết kế và thi công phần cứng.21

1.7. Mở chương

1.8. Nội dung

3.2.1 Sơ đồ khối phần cứng.21

3.2.2 Sơ đồ nguyên lý và hoạt động của các khối mạch.22

3.2.3 Tính toán các thông số của mạch.24

3.2.3.1 Mạch đảo chiều động cơ.24

3.2.3.2 Tính toán cho FET.25

3.2.3.3 Tính toán mạch lái cho FET.27

3.3.4 Layout và thi công mạch.30

1.9. Kết chương

Chương 4 : Thiết kế phần mềm.32

1.10. Mở chương

1.11. Nội dung

4.2.1 Phần mềm cho vi điều khiển PIC16F887.32

4.2.1.1 Thuật toán chương trình chính.32

4.2.1.2 Thuật toán chương trình xử lý phím.35

4.2.1.3 Thuật toán chương trình đo tốc độ động cơ.38

4.2.1.4 Thuật toán chương trình phục vụ ngắt nhận UART.40

4.2.2 Phần mềm trên máy vi tính giao tiếp với mạch điều khiển.42

1.12. Kết luận chương

1.13. Nhận xét đánh giá hệ thống

Mục lục

1.14. Hướng phát triển đề tài

 

pdf55 trang | Chia sẻ: lethao | Lượt xem: 8282 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển động cơ DC qua vi điều khiển PIC16F887A, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
16F887 được sử dụng làm khối điều khiển trung tâm, điều khiển động cơ dùng thuật toán PID và giao tiếp với máy tính theo chuẩn giao tiếp RS232 cho phép người sử dụng giám sát trạng thái của động cơ. Trang 8 Chương 2: Giới thiệu vi điều khiển PIC16F887 Chương 2 : Giới thiệu vi điều khiển PIC16F887 1.4. Giới thiệu chương Chương này giới thiệu cơ bản về vi điều khiển PIC16F887 của hãng Microchip và hoạt động của nó bao gồm nội dung về cách cấu hình xung clock, hoạt động khối giao tiếp UART, khối PWM, ngắt ngoài trên chân RB, cấu tạo và hoạt động của các bộ timer, và cách nạp chương trình cho PIC16F887. 1.5. Nội dung 2.2.1 Một vài chi tiết chính của vi điều khiển PIC16F887 PIC16F887 là vi điều khiển 8-bit có kiến trúc Harvard của Microchip có những thông số kỹ thuật như sau: - Clock hoạt động tối đa 20MHz. - Chu kỳ máy bằng bốn lần chu kỳ xung clock. - Chip có nhiều dạng vỏ khác nhau, loại chip được sử dụng trong đề tài là loại 40 chân PDIP. - Điện áp hoạt động rộng từ 2V đến 5.5V. - Bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau, bus địa chỉ cũng như bus dữ liệu là riêng biệt. Bộ nhớ chương trình Flash 8K ô nhớ cho phép ghi 100,000 lần. Mỗi ô nhớ có 14 bit. Bộ nhớ dữ liệu RAM có 512 Byte gồm các thanh ghi chức năng đặc biệt và các thanh ghi đa mục đích. Ngoài ra PIC16F887 được tích hợp 256 Byte EEPROM cho phép ghi đến 1,000,000 lần. - 35 chân I/O của 5 port điều khiển là PortA, PortB, PortC, PortD, PortE. - Bộ chuyển đổi ADC 10-bit với 14 kênh. - 3 bộ timer. Bộ timer0 8-bit, bộ timer1 16-bit và bộ timer2 8-bit. - Module Capture, Compare và PWM - Module Enhanced USART hỗ trợ RS-485, RS-232. Những chi tiết trên được thể hiện cụ thể trong hình 2.1. Trang 9 Chương 2: Giới thiệu vi điều khiển PIC16F887 Hình 2.1 Sơ đồ khối của PIC16F887 Trang 10 Chương 2: Giới thiệu vi điều khiển PIC16F887 2.2.2 Bộ dao động của PIC16F887 Sơ đồ khối của bộ dao động được minh họa trong hình 2.2. Hình 2.2 Sơ đồ khối bộ dao động của PIC16F887 Clock hệ thống của PIC16F887 có thể được chọn từ hai nguồn dao động nội (Internal Oscillator) hoặc dao động ngoại (External Oscillator) nhờ bộ chọn kênh MUX. Bộ MUX được điều khiển bởi các bit FOSC (bit 2, bit 1, bit 0 của thanh ghi CONFIG1 16-bit định vị tại địa chỉ 2007H và 2008H trong bộ nhớ chương trình) và bit SCS (bit 0 của thanh ghi OSCCON). Nếu SCS = 1, clock hệ thống được chọn từ INTOSC. Nếu SCS = 0, clock hệ thống được chọn từ bộ dao động ngoại. Các bit FOSC được sử dụng để cấu hình bộ dao động ngoại là LP, XT, HS, RC, RCIO hay EC.  Bộ dao động nội gồm 2 bộ dao động HFINTOSC 8MHz và LFINTOSC 31kHz. Clock 8MHz của bộ HFINTOSC được chia thành các tần số 8MHz, 4MHz, 2MHz, 1MHz, 500kHz, 250kHz, 125kHz nhờ bộ chia tần số postscaler. Các bit IRCF điều khiển bộ MUX chọn kênh cho INTOSC. Trang 11 Chương 2: Giới thiệu vi điều khiển PIC16F887  Bộ dao động ngoại (được tích hợp bên trong PIC) cần được kết nối với các bộ lọc tại các chân OSC1, OSC2. Trong đề tài, tôi sử dụng thạch anh 12MHz và 2 tụ 33pF kết nối như hình 2.3. Bộ dao động ngoại được hoạt động ở chế độ HS. Tín hiệu dao động được qua bộ đệm Trigger theo sườn xuống và tạo thành xung clock HS 12MHz cung cấp cho clock hệ thống. Hình 2.3 Bộ dao động ngoại ở chế độ HS. 2.2.3 Các Port I/O PIC16F887 tất cả 35 chân I/O mục đích thông thường (GPIO: General Purpose Input Ouput) có thể được sử dụng. Tùy theo những thiết bị ngoại vi được chọn mà một vài chân có thể không được sử dụng ở chức năng GPIO. Thông thường, khi một thiết bị ngoại vi được chọn, những chân liên quan của thiết bị ngoại vi có thể không được sử dụng ở chức năng GPIO. 35 chân GPIO được chia cho 5 Port: PortA gồm 8 chân, PortB gồm 8 chân, PortC gồm 8 chân, PortD gồm 8 chân và PortE gồm 3 chân. Mỗi port được điều khiển bởi 2 thanh ghi 8-bit, thanh ghi Port và thanh ghi Tris. Thanh ghi Tris được sử dụng để điều khiển port là nhập hay xuất. Mỗi bit của Tris sẽ điều khiển mỗi chân của port đó, nếu giá trị của bit là 1 thì chân liên quan là nhập, ngược lại nếu giá trị của bit là 0 thì chân liên quan là xuất. Thanh ghi Port được sử dụng để chứa giá trị của port liên quan. Mỗi bit của thanh ghi Port sẽ chứa giá trị của chân liên quan. Cấu trúc của chân GPIO được thể hiện trong hình 2.4 Trang 12 Chương 2: Giới thiệu vi điều khiển PIC16F887 Hình 2.4 Cấu tạo của chân GPIO 2.2.4 Hoạt động của khối giao tiếp EUSART Khối giao tiếp nối tiếp EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter) cho phép cấu hình hoạt động ở chế độ giao tiếp nối tiếp đồng bộ và không đồng bộ. Trong đề tài này, chế độ giao tiếp không đồng bộ được sử dụng. Phần này sẽ tập trung mô tả hoạt động của module EUSART ở chế độ không đồng bộ.  Hoạt động truyền: Sơ đồ khối bộ truyền được thể hiện trong hình 2.5. Hình 2.5 Sơ đồ khối bộ truyền của module EUSART Trang 13 Chương 2: Giới thiệu vi điều khiển PIC16F887 Bộ phận chính của khối truyền là thanh ghi truyền TSR. Thanh ghi này không thể truy cập bằng phần mềm, mà được truy cập gián tiếp qua thanh ghi đệm truyền TXREG. Bộ truyền được kích hoạt khi cấu hình các bit TXEN=1, SYNC=0, SPEN=1. TXEN=1 kích hoạt bộ truyền của EUSART. SYNC=0 cấu hình EUSART hoạt động ở chế độ không đồng bộ. SPEN=1 cho phép bộ EUSART hoạt động và cấu hình chân TX/CK là chân xuất. - Quá trình truyền được khởi tạo bằng cách ghi dữ liệu truyền vào thanh ghi TXREG. Nếu đây là dữ liệu truyền đầu tiên hoặc dữ liệu truyền trước đã truyền hoàn tất thì dữ liệu trong TXREG ngay lập tức sẽ được truyền vào thanh ghi TSR. Nếu thanh ghi TSR vẫn còn chứa dữ liệu của ký tự truyền trước thì dữ liệu mới trong TXREG sẽ được giữ cho đến khi bit Stop của ký tự đang truyền hoàn tất. Sau đó dữ liệu chờ trong TXREG sẽ được truyền vào TSR. - Các bước thiết lập quá trình truyền: o Khởi tạo cặp thanh ghi SPBRGH, SPBRG và các bit BRGH, BRG16 để cấu hình tốc độ Baud. o Thiết lập bit SYNC=0, và bit SPEN=1. o Gởi dữ liệu cần truyền vào TXREG, quá trình truyền sẽ bắt đầu.  Hoạt động nhận: Sơ đồ khối bộ nhận được thể hiện trong hình 2.6. Dữ liệu được nhận trên chân RX/DT và đẩy vào khối Data Recovery. Khi tất cả 8 hoặc 9 bit của ký tự nhận đã được dịch vào, chúng sẽ ngay lập tức được chuyển vào bộ đệm 2 ký tự FIFO. Bộ đệm FIFO và thanh ghi RSR không thể truy cập trực tiếp bằng phần mềm mà được truy cập gián tiếp thông qua thanh ghi RCREG. Dữ liệu trong bộ đệm nhận được đọc bằng cách đọc thanh ghi RCREG. Bộ nhận được kích hoạt khi cấu hình các bit CREN=1, SYNC=0, SPEN=1. CREN=1 kích hoạt bộ nhận của EUSART. SYNC=0 cấu hình EUSART hoạt động ở chế độ không đồng bộ. SPEN=1 cho phép bộ EUSART hoạt động và cấu hình chân RX/DT là chân nhập. Trang 14 Chương 2: Giới thiệu vi điều khiển PIC16F887 Cờ ngắt nhận RCIF=1 khi bộ nhận EUSART được kích hoạt và có một ký tự đã được nhận trong bộ đệm nhận FIFO và chưa được đọc. Bit RCIF là bit chỉ đọc, không thể ghi bằng phần mềm. Ngắt nhận được kích hoạt khi cấu hình các bit sau: RCIE=1, PEIE=1 và GIE=1. Sau khi đã thiết lập các bit như trên, ngắt nhận xảy ra ngay khi nhận xong một ký tự trong bộ đệm nhận. Cờ RCIF được xóa bằng phần cứng khi không có ký tự nào chưa đọc trong bộ đệm nhận. Hình 2.6 Sơ đồ khối bộ nhận USART. 2.2.5 Cấu tạo và hoạt động của khối điều xung PWM PIC16F887 có hai bộ điều xung, hai bộ này sẽ tạo ra các tín hiệu điều xung trên các chân CCP1 và CCP2. Độ rộng, chu kỳ, và độ phân giải được xác định bởi các thanh ghi PR2, T2CON, CCPR1L, CCPR2L, CCP1CON, CCP2CON. Để các chân CCPx (CCP1 và CCP2) hoạt động ở chế độ PWM, cần xóa bit TRIS tương ứng của các chân đó. Sơ đồ khối của các bộ điều xung được mô tả trong hình 2.7. Chú thích (1) trong hình 2.7 biểu thị rằng thanh ghi 8-bit TMR2 được kết hợp với 2-bit prescaler của bộ dao động nội để tạo ra bộ định thời 10-bit. Các thanh ghi CCPRxH là các thanh ghi chỉ đọc, kết hợp với 2 bit 5 và 4 của các thanh ghi CCPxCON có vai trò định độ rộng của xung, các thanh ghi này được ghi gián tiếp thông qua các thanh ghi CCPRxL. Thanh ghi 8-bit PR2 định chu kỳ cho xung ra. Trang 15 Chương 2: Giới thiệu vi điều khiển PIC16F887 Hình 2.7 Sơ đồ khối bộ PWM. Sóng điều xung tại các chân CCPx có giản đồ thời gian như hình 2.8. Hình 2.8 Giản đồ thời gian của sóng điều xung tại chân CCPx Thanh ghi TMR2 kết hợp với 2 bit prescaler sẽ đếm lên nhờ xung clock của hệ thống. Khi giá trị của TMR2 nhỏ hơn giá trị của CCPRxL:CCPxCON, chân CCPx ở mức cao. Khi giá trị của TMR2 bằng với giá trị này, bộ so sánh sẽ đảo chân CCPx xuống mức 0. Khi giá trị của TMR2 bằng với PR2, TMR2 sẽ được xóa về 0 đồng thời kết thúc chu kỳ xung, chân CCPx lại được thiết lập mức cao. Chu kỳ của xung được tính theo công thức sau: Chu kỳ PWM = [(PR2)+1].4.TOSC.(giá trị Prescale của TMR2) Ở đây TOSC là chu kỳ của clock hệ thống. TOSC = 1/FOSC. Độ rộng xung được tính theo công thức sau: Độ rộng xung = (CCPxL:CCPxCON).TOSC.(giá trị Prescale của TMR2) Trang 16 Chương 2: Giới thiệu vi điều khiển PIC16F887 2.2.6 Ngắt ngoài trên chân RB0 Hình 2.9 là sơ đồ khối logic của hệ thống ngắt trong PIC16F887. Hình 2.9 Sơ đồ khối logic của hệ thống ngắt trong PIC16F887. Ngắt ngoài trên chân RB0 được kích khởi theo sườn. Sườn lên nếu như bit INTEDG=1 (bit 6 của thanh ghi OPTION_REG), sườn xuống nếu INTEDG=0. Khi một sườn thích hợp xuất hiện trên chân RB0, cờ INTF được bật lên 1. Ngắt này có thể được cho phép nếu bit INTE=1, không cho phép nếu INTE=0. Cờ INTF cần được xóa bằng phần mềm trong trình phục vụ ngắt trước khi cho phép ngắt trở lại. Trang 17 Chương 2: Giới thiệu vi điều khiển PIC16F887 2.2.7 Cấu tạo và hoạt động của bộ Timer1 Bộ timer1 là bộ định thời 16-bit có cấu tạo như hình 2.10. Hình 2.10 Sơ đồ khối của bộ timer1. Bộ timer1 là bộ đếm lên 16-bit được truy xuất gián tiếp thông qua cặp thanh ghi TMR1H, TMR1L. Đọc hoặc ghi các thanh ghi này sẽ cập nhật trực tiếp giá trị cho bộ timer. Khi được sử dụng với nguồn clock nội, bộ timer 1 sẽ có vai trò là bộ định thời. Khi được sử dụng với nguồn clock ngoại, nó sẽ có vai trò là định thời hoặc bộ đếm. Sử dụng bit TMR1CS để chọn nguồn clock. Các bit T1CKPS định giá trị cho bộ chia tần số Prescaler. Khi bộ TMR1 tràn (từ FFFFh đến 0000h) cờ ngắt TMR1IF sẽ được thiết lập lên 1. Nếu lúc này cờ TMR1IE =1, cờ PEIE=1 và GIE=1 thì ngắt timer1 sẽ xảy ra. Cờ TMR1IF cần được xóa trong trình phục vụ ngắt timer1. 2.2.8 Cách nạp cho PIC16F887 Có nhiều cách nạp cho chip PIC16F887, trong đề tài này sử dụng cách nạp bằng mạch nạp ezPIC Programmer của Sunrom và phần mềm nạp PICPgm Programmer. Mạch nạp được kết nối qua cổng COM của máy vi tính. Sơ đồ nguyên Trang 18 Chương 2: Giới thiệu vi điều khiển PIC16F887 lý, mạch thực tế của mạch nạp ezPIC Programmer của Sunrom được cho ở hình 2.11 và 2.12. Hình 2.11 Sơ đồ nguyên lý mạch nạp ezPIC Programmer của Sunrom. Hình 2.12 Mạch nạp ezPIC Programmer của Sunrom. Trang 19 Chương 2: Giới thiệu vi điều khiển PIC16F887 Phần mềm nạp PICPgm Programmer được viết bởi Christian Stadler, phần mềm này giao tiếp được với nhiều mạch nạp, trong đó có ezPIC Programmer của Sunrom. Đặc biệt PICPgm Programmer nạp được hầu hết các dòng PIC của Microchip. Phần mềm này rất dễ sử dụng và hoạt động rất ổn định, giao diện được thể hiện trong hình 2.13. Hình 2.13 Giao diện phần mềm PICPgm Programmer. 1.6. Kết chương Chương này đã mô tả sơ lược cấu tạo của PIC16F887, hoạt động của một vài thiết bị ngoại vi được sử dụng trong đề tài, cách nạp cho PIC16F887 bằng mạch nạp ezPIC và chương trình nạp PICPgm Programmer. Chương tới sẽ trình bày quá trình thiết kế và thi công phần cứng. Trang 20 Chương 3: Thiết kế và thi công phần cứng Chương 3: Thiết kế và thi công phần cứng 1.7. Mở chương Chương này sẽ trình bày cách thiết kế và thi công phần cứng, tính toán và chọn lựa các linh kiện sử dụng. 1.8. Nội dung 3.2.1 Sơ đồ khối phần cứng Sơ đồ khối phần cứng được mô tả như hình 3.1. Hình 3.1 Sơ đồ khối phần cứng. Khối điều khiển trung tâm sẽ kết nối với khối điều khiển công suất qua chân điều xung CCP1, điều khiển khối công suất đảo chiều động cơ. Trang 21 Khối điều khiển trung tâm PIC16F887 Khối điều khiển công suất Động cơ Encoder Bộ phận hiển thị LCD 16x2 MAX232 chuyển đổi mức điện áp Khối sửa dạng xung Các phím điều khiển PWM Cổng DB9 U A R T R S 2 3 2 Đảo chiều Chương 3: Thiết kế và thi công phần cứng Khối điều khiển công suất điều khiển công suất cung cấp cho động cơ. Khối Encoder đọc tốc độ động cơ và xuất ra các xung đếm, các xung này được sửa thành xung vuông và đưa vào chân ngắt ngoài RB0 của vi điều khiển PIC16F887 cho phép PIC16F887 giám sát được tốc độ của động cơ. Các phím điều khiển cho phép người dùng cài đặt các thông số của hệ thống. Khối hiển thị sử dụng LCD cho phép người dùng theo dõi hoạt động của động cơ và các thông số của hệ thống. Khối giao tiếp máy tính theo chuẩn giao tiếp nối tiếp không đồng bộ sử dụng IC chuyển đổi điện áp MAX232. 3.2.2 Sơ đồ nguyên lý và hoạt động của các khối mạch Sơ đồ nguyên lý trong hình 3.2 được thiết kế dựa trên sơ đồ khối trên. Chip PIC16F887 điều khiển trung tâm làm nhiệm vụ tính toán, xuất ra xung điều khiển cho khối điều khiển động cơ, điều khiển đảo chiều động cơ. Điều khiển hiển thị LCD và giao tiếp với máy tính. Khối giao tiếp máy tính gồm Max232 chuyển mức tín hiệu RS232 với mức logic 0 (+3V đến +15V) sang TTL 0V, và mức logic 1 (-15V đến -3V) thành 5V. Nhờ khối này, vận tốc hiện thời của động cơ sẽ được cập nhật lên máy tính và các từ máy tính ta có thể điều khiển tốc độ động cơ, thay đổi các thông số của bộ điều khiển PID. Giá trị của các tụ trên sơ đồ mạch là 10u được chọn theo datasheet của nhà sản xuất. Khối điều khiển công suất (mạch Drive cho FET) kích cho FET hoạt động theo tín hiệu PWM từ PIC16F887. Để đảm bảo cho FET chuyển mạch nhanh ở đây ta dùng mạch kích kiểu totem-pole gồm 2 BJT 2SD414 và 2SB548. Khối đảo chiều động cơ dùng 2 tiếp điểm để đảo điện áp đặt vào động cơ. Khối hiển thị dùng LCD 16x2 để hiện thị thông số Ki, Kp, Kd tốc độ hiện thời, tốc độ cài đặt. Khối nguồn cung cấp: mạch ổn áp dùng IC 7805 cấp điện áp 5V cho mạch hoạt động. Trang 22 Chương 3: Thiết kế và thi công phần cứng D I O D E C H O N G C O N D U C T O R 1 N 4 0 0 7 D I O D E D O N G C O 1 N 4 0 0 7 R E L A Y D A O C H I E U R E L A Y D P D T 3 4 5 6 8 7 1 2 R b K E O R E L A Y 2 K 7 R H A N D O N G D R I V E R 1 K 8 r w R b D R I V E R 1 K r s K H O I C O N G S U A T 2 S B 5 4 8 g n d d 7 d 6 g n d v c c C 1 0 . 1 u F d 5 v r e f 1 2 V g n d R 7 4 k 7 d 3 d 2 k 0 J 5 C O N 2 1 2 v c c g n d k 1 p w m k 2 d i r k 3 k 4 k 5 x t a l 1 x t a l 2 g n d V C C d 0 C 1 8 1 5 D R I V E R 2 S C 1 8 1 5 d 1 C 1 8 1 5 K E O R E L A Y 2 S C 1 8 1 5 R h a n d o n g F E T t r e n 1 0 0 R b D R I V E R V D K 4 K 7 d i r F E T I R F 5 4 0 / T O 2 S D 4 1 4 R h a n d o n g F E T 4 k 7 - + U 9 A L M 3 2 4 3 2 1 4 11 e n c o d e r P 1 C O N N E C T O R D B 9 594837261 U 2 M A X 2 3 2 C 1 +1 C 1 -3 C 2 +4 C 2 -5VCC 16 G N D1 5 V+ 2 V -6 R 1 O U T1 2 R 2 O U T9 T 1 I N1 1 T 2 I N1 0 R 1 I N1 3 R 2 I N8 T 1 O U T1 4 T 2 O U T7 R 1 51 k R 1 61 0 k Y 1 1 2 M h z v c c C 3 1 0 u C 4 1 0 u C 6 2 . 2 u F v r e f r s t C 9 0 . 1 u C 1 0 3 3 p F C 1 1 3 3 p F C 1 2 1 0 u J 8 D o n g C o 1 2 C 1 4 1 0 u K H O I G I A O T I E P M A Y T I N H K H O I H I E N T H I K H O I N G U O N K H O I E N C O D E R K H O I D I E U K H I E N T R U N G T A M1 2 Vx t a l 1 V C C x t a l 2 g n d R 2 6 8 0 R 1 4 k 7 1 2 3 4 5 6 7 8 9 R 3 1 8 k S W 1 S W S W 2 I N C S W 3 D E C S W 4 C H A N G E S W 6 O K S W 7 C A N C E L S W 8 O N / O F V C C r s t p w m K 0 K 1 K 2 K 3 d1 K 4 d2 d7d3 d4 d6d0 d5 K 5 K 0 K 3 K 1 K 2 K 4 K 5 a b gnd L C D U 4 L C D VSS 1 VDD 2 VEE 3 RS 4 RW 5 E 6 D0 7 D1 8 D2 9 D3 10 D4 11 D5 12 D6 13 D7 14 A 15 K 16 K H O I P H I M N H A N d 4 r x t x V C C V C C V C C v c c g n d g n d r x t x b - + D 1 B R 8 0 5 D 2 1 3 4 a C 2 4 7 0 0 u F C 5 3 3 0 0 u F C 7 0 . 1 u F R H A N D O N G L E D D A O C H I E U 2 K 2 L E D B A O D A O C H I E U L E D U 6 L M 7 8 0 5 / T O V I N1 GND 2 V O U T3 J 1 C O N 2 1 2 g n d v c c R 4 1 8 k R 5 8 2 0 D 2 B Z X 8 4 C 1 6 / S O T e n c o d e r R 61 0 k v c c 1 2 V J 2 o u t E n c o d e r 1 2 3 U 3 P I C 1 6 F 8 8 7 A M C R L / V P P1 R A 0 / A N 0 / U L P W U / C 1 2 I N 0 -2 R A 1 / A N 1 / C 1 2 I N 1 -3 R A 2 / A N 2 / V R E F - / C V R E F / C 2 I N +4 R A 3 / A N 3 / V R E F + / C 1 I N +5 R A 4 / T 0 C K I / C 1 O U T6 R A 5 / A N 4 / S S / C 2 O U T7 R E 0 / A N 58 R E 1 / A N 69 R E 2 / A N 71 0 V D D1 1 V S S1 2 R A 7 / O S C 1 / C L K I N1 3 R A 6 / O S C 2 / C L K O U T1 4 R C 0 / T 1 O S O / T 1 C K I1 5 R C 1 / T 1 O S I / C C P 21 6 R C 2 / P 1 A / C C P 11 7 R C 3 / S C K / S C L1 8 R D 01 9 R D 12 0 R D 22 1 R D 32 2 R C 4 / S D I / S D A2 3 R C 5 / S D O2 4 R C 6 / T X / C K2 5 R C 7 / R X / D T2 6 R D 42 7 R D 5 / P 1 B2 8 R D 6 / P 1 C2 9 R D 7 / P 1 D3 0 V S S3 1 V D D3 2 R B 0 / A N 1 2 / I N T3 3 R B 1 / A N 1 0 / C 1 2 I N 3 -3 4 R B 2 / A N 83 5 R B 3 / A N 9 / P G M / C 1 2 I N 2 -3 6 R B 4 / A N 1 13 7 R B 5 / A N 1 3 / T 1 G3 8 R B 6 / I C S P C L K3 9 R B 7 / I C S P D A T4 0 rs en rw v c c g n de n Hình 3.2 Sơ đồ nguyên lý. Trang 23 Chương 3: Thiết kế và thi công phần cứng 3.2.3 Tính toán các thông số của mạch 3.2.3.1 Mạch đảo chiều động cơ Hình 3.3 Phần mạch đảo chiều động cơ. Để điều khiển chiều quay của động cơ điện 1 chiều, ta có thể dùng mạch cầu H, hoặc có thể dùng Relay. Vì dùng relay chi phí thấp hơn nên trong đồ án này chúng tôi đã lựa chọn giải pháp này. Nguyên lý của mạch này như sau: Khi chân dir ở mức thấp, BJT Q2 tắt, tiếp điểm 3 nối đến 4, tiếp điểm 6 nối đến 8, khi đó Vcc nối tới chân 2 của CON2, cực D của FET nối tới chân 2 của CON2 động cơ chạy theo chiều thuận (chiều quy ước). Khi có tín hiệu kích 5V tại chân dir, BJT Q2 dẫn, tiếp điểm 3 nối đến 5, tiếp điểm 6 nối đến 7, lúc đó nguồn cung cấp cho động cơ đảo ngược so với trường hợp trên, do đó động cơ quay theo chiều ngược lại. Ta tính chọn với dòng cực đại qua động cơ là 5A, Chọn Relay 10A. Công suất của relay 530mW, -> dòng qua relay 0.530/12 = 44mA. Công suất tổn hao trên BJT Q2 chủ yếu là công suất dẫn: P = Vcesat xIcsat = 0.25x44mA = 11mW. Vậy chọn BJT 2SC1815 có: Ic = 150mA, Vce = 50V, công suất 400mW, hfemin = 70. Để BJT dẫn bảo hòa thì Ibmin = Ic/hfemin = 44/70 = 0.63mA. Trang 24 Chương 3: Thiết kế và thi công phần cứng Chọn dòng qua R13 khoảng 0.7mA, => R13 = 0.7V/0.7mA = 1k. Chọn dòng Ib ~ 1.5Ibmin => chọn Ib = 1mA Dòng qua R11 = Ib + IR13 = 1.7mA R11 = (5V-0.7V)/1.7 = 2.53k =>chọn R11 = 2k2. 3.2.3.2 Tính toán cho FET Tính dòng tối đa qua động cơ: Ta có phương trình của động cơ ở trạng thái xác lập: amLe IKBTT φω =+= φ ω m L a K BTI += Ứng với tải cụ thể ta có thể xác định được TL từ đó ta có thể xác định được dòng Ia cực đại qua động cơ. Giả sử ta tính với dòng tối đa qua động cơ là 5 A Ta phải chọn MOSFET có VDS >2Vđộng cơ, dòng >1.5 -> 2lần Imax, khoảng10A, công suất tiêu tốn trên MOSFET tùy thuộc vào từng loại FET, ở đây ta chọn các thông số của IRF540 để tham khảo sau đó kiểm tra lại công suất có đảm bảo hay không.. Công suất tiêu tán trên MOSFET bao gồm 2 thành phần: công suất tiêu tán khi FET dẫn và công suất chuyển mạch: Ptt = Pd + Psw Công suất tiêu tán khi FET dẫn được tính theo công thức: T TRIP onDSond .. 2 = Theo datasheet của IRF540, RDsonMax = 2.5Ω (Tj=150oC), Imax = 2.5 A, T Ton max = 1 Pdmax = 52x2.5 = 62.5W Công suất tiêu tán khi MOSFET hoạt động chuyển mạch: Trang 25 Chương 3: Thiết kế và thi công phần cứng Hình 3.4 Dạng sóng VDS và VGS khi FET chuyển mạch. Tổn hao trong quá trình chuyển từ off sang on E1 = rDScc tr r DS DSDS tr dsds tIVdttt VVIdttitv .. 2 1)..(.)().( =−=∫∫ Tương tự như trên tổn hao khi từ on sang off: E2 = fDScc tf dsds tIVdttitv ..2 1.)().( ==∫ Psw = swfrDScc fttIV )..(.2 1 + Trang 26 Chương 3: Thiết kế và thi công phần cứng Tần số điều xung được sử dụng ở đây là 24khz, trong phần mềm sử dụng 2000 mức điều xung, tuy nhiên, ta chỉ cần mạch đáp ứng 100 mức điều xung (vì thời gian đáp ứng càng nhanh thì giá trị dòng đỉnh nạp cho tụ ngõ vào của FET càng lớn, ta không muốn dòng đỉnh này quá lớn). Thời gian của 1 mức điều xung lúc này là: 1/(24.1000.100) = 0.417µs =417ns. Tổng thời gian nạp và xả tụ ngõ vào tại cực G phải nhỏ hơn giá trị này. Ta chọn tr + tf =200ns Psw = 30.5. 200.10-9.24.103 = 720 mW. Trong đó fsw là tần số chuyển mạch. Công suất tổng cộng lớn nhất: 63.2W Vậy MOSFET IRF540 có các thông số: VDSS = 100V, IDS = 33A, Pmax = 130W thỏa mãn các yêu cầu đề ra. 3.2.3.3 Tính toán mạch lái cho FET Sơ đồ mạch Driver: Hình 3.5 Mạch lái cho FET. Mạch lái được mắc theo kiểu totem-pole gồm 2 BJT 2SD414 và 2SB548 để đảm bảo tần số chuyển mạch nhanh cho FET. Tính công suất của Q3 và Q4: Trang 27 Chương 3: Thiết kế và thi công phần cứng Ta tính dựa vào điện tích cần nạp cho tụ CGS. PDRI = V.QG.fsw = 12.72.10-9.24.3 = 21mW. QG :tổng điện tích nạp hoặc xả cho cực G. Theo datasheet, QG = 72nC Mà: tx = QG/IG => IG = QG/tx Tx thời gian nạp hoặc xả tụ ngõ vào, 2.tx =200ns=(tr + tf) IG > 72.2/200 = 720mA Chọn BJT Q3,Q4: có Vce > 2Vcc, P>2.21mW. Chọn BJT 2SD414 và 2SB548. Tính R14: R14 = (24V-0.7V).60/720mA = 1.94k -> chọn 1k8 Tính chọn Q6: Dạng sóng chuyển mạch của BJT có dạng như sau: Hình 3.6 Dạng sóng chuyển mạch trên Q6. Công suất tổn hao trong BJT ở chế độ chuyển mạch gồm công suất tổn hao khi dẫn bão hòa và công suất tổn hao chuyển mạch. P = Psw + Pdẫn Tones.Icsat. T Pon Vc= T TIVP onCEsCEsdan = (1) Dựa vào đồ thị ta thấy : trong quá trình chuyển đổi trạng thái làm việc, dòng điện cực góp ic(t) và thời gian t có quan hệ tuyến tính : Trang 28 Chương 3: Thiết kế và thi công phần cứng Ic = Kt Với K= Icsat-Icoff Tsw Icoff có thể bỏ qua => K= Icsat Tsw => ic= Icsat Tsw t Trong quá trình của mỗi lần chuyển đổi trạng thái làm việc, năng lượng tiêu hao của BJT có thể tính theo công thức : Tsw Tsw 0 0 Icsat w.Icsat.VccE= icVc tVc Tsw 2 Tscdt cdt= =∫ ∫ Trong mỗi chu kỳ, BJT chuyển đổi trạng thái làm việc 2 lần, trong 2 lần chyển đổi đó, năng lượng tiêu hao là như nhau. Như vậy năng lượng tiêu hao trong quá trình chuyển mạch là : Esw= 2E =Tsw.Icsat.Vcc Công suất tiêu tán trong quá trình chuyển mạch : Psw=Icsat.Vcc. w T Ts (2) Từ (1) và (2) ta có : Ptt= Tones.Icsat. T Vc + Icsat.Vcc. w T Ts Yêu cầu thời gian chuyển mạch Tsw của BJT phải nhỏ hơn thời gian chuyển mạch của khóa điện tử. Thời gian tsw của BJT thông thường khoảng vài chục đến vài trăm ns, ở đây ta lấy tsw=100ns. Với BJT Q5, icsat = Vcc/R14 = 12/1k8= 6.7mA. Ton/T max =1, 1/T = f =24kHz thay vào công thức trên ta được : Pttmax = 0.2x6.7 + 6.7x12x100x10-9x24x10-3 = 1.36mW. Chọn BJT Q6 có Vce > 12x2 =24V, Ic>6.7x2, Ptt>1.36mW, chọn BJT Q6 là C1815. Để Q6 dẫn bão hòa dòng ibQ6 > icQ6/βmin = 6.7/70 ~0.1mA. Trang 29 Chương 3: Thiết kế và thi công phần cứng Chọn ibQ6 = 0.2mA. R15 có tác dụng giảm thời gian tắt của BJT. Chọn dòng qua R15 khoảng 0.7mA. R15 = Vbe/Ir15 = 0.7V/0.7mA =1k. R6 = (5V-0.7V)/(0.7mA+0.2mA) = 4k78. Chọn R6 = 4k7. 3.3.4 Layout và thi công mạch Layout và sơ đồ nguyên lý được thiết kế bằng phần mềm Orcad của hãng Cadence. Mạch in được thiết kế như hình 3.7. Mạch in được thi công bằng phương pháp ủi mạch lên board đồng và hàn gắn các linh kiện theo sơ đồ nguyên lý. Hình ảnh mạch hoàn chỉnh được thể hiện trong hình 3.8. Hình 3.7 Layout của phần mạch điều khiển. Trang 30 Chương 3: Thiết kế và thi công phần cứng Hình 3.8 Mạch điều khiển sau khi thi công xong. 1.9. Kết chương Trong chương này, phần cứng đã được mô tả, thiết kế và tính toán một cách chi tiết. Các IC được sử dụng là PIC16F887, LM324, MAX232, LCD16x2. Ngoài ra còn có các linh kiện khác như tụ, điện trở, relay, nút nhấn, cổng DB9, BJT, FET, cầu diode và các connector. Trang 31 Chương 4: Thiết kế phần mềm Chương 4 : Thiết kế phần mềm 1.10. Mở chương Việc thiết kế phần mềm là công đoạn khó nhất của đồ án này bởi hệ thống yêu cầu xử lý phức tạp. Do đó, em quyết định chọn ngôn ngữ bậc cao C để thiết kế phần mềm. Phần mềm được biên soạn và biên dịch trên phần mềm CCS. Phần mềm được chia thành hai phần: - Thiết kế phần mềm cho vi điều khiển PIC16F887. - Thiết kế phần mềm trên máy vi tính giao tiếp với mạch điều khiển. Phần mềm này được viết bằng Visual Basic. Cuối chương sẽ là phần nhận xét về đề tài và định hướng phát triển đề tài. 1.11. Nội d

Các file đính kèm theo tài liệu này:

  • pdfĐiều khiển động cơ DC qua vi điều khiển PIC16F887A.pdf