Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,7 MB
Nội dung
Báo cáo đồ án môn học I Lời cảm ơn Kính gửi Thầy TS. Nguyễn Thiện Thành! Em là Nguyễn Uy Danh, sinh viên năm 4, khoa Điện_Điện Tử, Đại Học Bách Khoa Tp.HCM. Học kỳ này, em rất vinh dự được thực hiện đề tài của đồ án môn học I dưới sự hướng dẫn tận tình của Thầy. Chính sự nhiệt tình chỉ dẫn của Thầý đã giúp em hoàn thành đồ án khá tốt, đạt được những yêu cầu cơ bản mà đề tài đặt ra. Và cũng qua đó, em đã học hỏi, tiếp cận được nhiều vấn đề thực tế hơn, bổ sung những “khe hở” kiến thức do việc học thiên về lý thuyết để lại. Em xin chân thành cảm ơn Thầy. Cũng qua đây, em xin gửi lời cảm ơn chân thành của mình đến gia đình, bạn bè – những người đã động viên, quan tâm hết mực đến em trong suốt quá trình thực hiện đồ án. Đó là những động lực thúc đẩy em cố gắng hơn, quyết tâm hơn, để cuối cùng em có được kết quả như ngày hôm nay. Em xin gửi lời cảm ơn đến tất cả. Sinh viên thực hiện Nguyễn Uy Danh GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh1 Báo cáo đồ án môn học I Chương I : Giới thiệu về đề tài I.Tóm tắt đề tài đồ án môn học I 1. Giới thiệu các module mạch của đề tài Đề tài đồ án môn học I của em là : “ ĐiềukhiểnON_OFFtốcđộđộngcơ DC”. Với yêu cầu đề tài như trên, hướng thực hiện đề tài của em được tóm tắt như sau: - Sử dụng vi điềukhiển PIC16F877A làm chip điềukhiển trung tâm. - Xây dựng bàn phím gồm 13 phím. Trong đó: +1 phím để đồng thời reset vi điềukhiển và dừng độngcơDC + 10 phím ứng với 10 số từ 0 đến 9 để người dùng nhập tốcđộ đặt + 1 phím ra lệnh độngcơ quay thuận (FORWARD) + 1 phím ra lệnh độngcơ quay ngược (REVERSE) - Sử dụng 8 led 7 đoạn. Trong đó + 4 led dùng để người dùng nhập tốcđộ đặt mong muốn + 4 led để người dùng quan sát tốcđộđo trực tiếp từ độngcơ - Sử dụng driver cầu H L293D trực tiếp điềukhiển chiều quay, đóng ngắt độngcơDC - Đối tượng điềukhiển là độngcơDCcó gắn encoder đồng trục. - Ngoài ra, trên mạch còn có các linh kiện khác để thực hiện truyền tín hiệu giữa vi điềukhiển trung tâm với các thiết bò hiển thò nói trên. Tất cả các module mạch trên sẽ được em trình bày rõ trong các phần tiếp theo của đề tài. GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh2 Báo cáo đồ án môn học I 2. Sơ đồ nguyên lý kết nối các module trong mạch 3. Cách vận hành mạch + Bước 1: ta sẽ nhập tốcđộ đặt từ bàn phím. Tốcđộ đặt này gồm có 4 chữ số, sẽ hiện lên thông qua 4 led. Ta phải nhấn đủ 4 con số thì mạch mới hoạt động được, nếu không nhấn đủ mạch sẽ “treo đó”, chờ người dùng nhấn số tiếp. Nếu nhập sai tốc độ, ta có thể nhấn phím reset để nhập tốcđộ lại từ đầu. Nếu nhấn nhầm sang các phím RESERVE hoặc FORWARD trước khi nhập đủ 4 số ở phần cài đặt tốcđộ thì người dùng hoàn toàn có thể nhấn lại mà không ảnh hưởng đến kết quả. + Bước 2: ta nhấn tiếp RESERVE hay FORWARD cho độngcơ chạy theo ý muốn. Trong quá trình độngcơ quay, vi điềukhiển sẽ nhận liên tục nhận xung phát ra từ GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh3 Báo cáo đồ án môn học I encoder, tính toán ra tốcđộ và so sánh với tốcđộ đặt ban đầu để ra quyết đònh ON_OFFđộng cơ. Tốcđộ nhận về sẽ được so sánh với tốcđộ đặt cứ 1ms một lần. Ngoài ra cứ 1s thì vi điềukhiển sẽ cập nhật tốcđộ thực của động cơ, thể hiện ra 4 led 7 đoạn để người dùng có thể theo dõi và đánh giá. II. Các yêu cầu của đề tài 1. Thông qua đề tài, làm quen với cách thức điềukhiển đối tượng động cơ. 2. Tìm hiểu thực tế các linh kiện, các loại IC, hoạt động của các loại cảm biến…. 3. Thiết kế, thi công mạch điềukhiển và mạch động lực điềukhiểnđộngcơDC 4. Viết chương trình cho vi điềukhiển PIC16F877A thực hiện thành công theo yêu cầu đề ra. 5. Đánh giá về sai số ,chất lượng hệ thống điềukhiển 6. Tìm hiểu các hướng phát triển của đề tài, nâng cao chất lượng của hệ thống GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh4 Báo cáo đồ án môn học I Chương II : Giới thiệu về các linh kiện, phần tử sử dụng trong mạch I. Vi điềukhiển PIC16F877A 1. Khái quát về vi điềukhiển PIC16F877A 1.1.Sơ đồ chân và sơ đồ nguyên lý của PIC16F877A Sơ đồ chân GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh5 Báo cáo đồ án môn học I Sơ đồ nguyên lý 1.2. Nhận xét Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như sau : - PIC16F877A có tất cả 40 chân - 40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chan thạch anh và một chân dùng để RESET vi điều khiển. - 5 port của PIC16F877A bao gồm : + PORTB : 8 chân + PORTD : 8 chân + PORTC : 8 chân GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh6 Báo cáo đồ án môn học I + PORTA : 6 chân + PORT E : 3 chân 1.3. Khái quát về chức năng của các port trong vi điềukhiển PIC16F877A PORTA PORTA gồm có 6 chân. Các chân của PortA, ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điềukhiển ra ngoại vi và nhập dữ liệu từ ngoại vi vào vi điều khiển. Việc xuất nhập dữ liệu ở PIC16F877A khác với họ 8051. Ở tất cả các PORT của PIC16F877A, ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc nhập. Để chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại, ta phải xử lý bằng phần mềm, không như 8051 tự hiểu lúc nào là chức năng nhập, lúc nào là chức năng xuất. Trong kiến trúc phần cứng của PIC16F877A, người ta sử dụng thanh ghi TRISA ở đòa chỉ 85H để điềukhiển chức năng I/O trên. Muốn xác lập các chân nào của PORTA là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA. Ngược lại, muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh ghi TRISA. Điều này hoàn toàn tương tự đối với các PORT còn lại Ngoài ra, PORTA còn có các chức năng quan trọng sau : - Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang Digital - Ngõ vào điện thế so sánh - Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các nhiệm vụ đếm xung thông qua Timer0… - Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port) GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh7 Báo cáo đồ án môn học I PORTB PORTB có 8 chân. Cũng như PORTA, các chân PORTB cũng thực hiện được 2 chức năng : input và output. Hai chức năng trên được điềukhiển bới thanh ghi TRISB. Khi muốn chân nào của PORTB là input thì ta set bit tương ứng trong thanh ghi TRISB, ngược lại muốn chân nào là output thì ta clear bit tương ứng trong TRISB. Thanh ghi TRISB còn được tích hợp bộ điện trở kéo lên có thể điềukhiển được bằng chương trình. PORTC PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự điềukhiển của thanh ghi TRISC tương tự như hai thanh ghi trên. Ngoài ra PORTC còn có các chức năng quan trọng sau : - Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng - Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle: sử dụng trong điềukhiểntốcđộ và vò trí của độngcơ v.v…. - Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART PORTD PORTD có 8 chân. Thanh ghi TRISD điềukhiển 2 chức năng input và output của PORTD tương tự như trên. PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp song song PSP (Parallel Slave Port). PORTE PORTE có 3 chân. Thanh ghi điềukhiển xuất nhập tương ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điềukhiển của chuẩn giao tiếp PSP. GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh8 Báo cáo đồ án môn học I 1.4. Tại sao sử dụng PIC16F877A mà không dùng 8051 cho đề tài Trong chương trình đào tạo của Trường Đại Học Bách Khoa, em được học và thí nghiệm trên kit của vi điềukhiển 8051. Họ vi điềukhiển 8051 là một họ vi điềukhiển điển hình, phổ biến, dễ sử dụng và lập trình, rất phù hợp với sinh viên mới bắt đầu làm quen đến lập trình cho vi điều khiển. Tuy nhiên, cũng trong quá trình nghiên cứu và thí nghiệm với các chip điềukhiển thuộc họ 8051 ( điển hình là 89C51, 89052…), em nhận thấy nó có những nhược điểm cơ bản sau đây : - Bộ nhớ Ram nội có dung lượng thấp , chỉ có 128 bytes. Điều nàý gây trở ngại lớn khi thực hiện các dự án lớn với vi điềukhiển 8051. Để khắc phục ta phải mở rộng thêm làm hạn chế số chân dành cho các ứng dụng của vi điều khiển. - Số lượng các bộ giao tiếp với ngoại vi được tích hợp sẵn trong 8051 ít, không có các bộ ADC, PWM, truyền dữ liệu song song…. Khi muốn sử dụng các chức năng này, ta phải sử dụng thêm các IC bên ngoài, gây tốn kém và khó thực hiện vì dễ bò nhiễu nếu không biết cách chống nhiễu tốt. - Ngoài ra còn một số hạn chế khác như số lượng Timer của 8051 ít, chỉ có 2 Timer. Chính điều này làm cho giải thuật khi viết chương trình gặp khó khăn. Những nhược điểm căn bản trên của 8051, em đã quyết đònh không dùng vi điềukhiển này cho đề tài “điều khiểntốcđộ động cơ” của mình. Với kỳ vọng dựa trên nền tản kiến thức tiếp thu được khi học vi điềukhiển 8051, em rất muốn tự bản thân tìm hiểu một họ vi điềukhiển mới mạnh hơn, đầy đủ tính năng hơn để trước mắt là phucï vụ tốt cho đồ án , luận văn, sau nữa là cho các dự án trong tương lai nếu em có dòp sử dụng vi điềukhiển trong dự án của mình. Trong quá trình tím kiếm một họ vi điềukhiển mới thõa yêu cầu như em đã trình bày trên. Em nhận thấy PIC của hãng Microchip là một lựa chọn lý tưởng. Chỉ cần GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh9 Báo cáo đồ án môn học I xem xét qua các port và chức năng của các port mà em đã trình bày ở mục 1.3, ta cũng dễ dàng nhận ra những ưu điểm vượt trội của vi điềukhiển này so với 8051. Giá của PIC16F877A mà em mua trên thò hiện trường là 50000 đồng, mắc hơn 2 lần giá một con chip họ 8051. Việc sử dụng PIC16F877A trong một đề tài không lớn như đề tài “điều khiểntốcđộ động cơ” có thể là một lãng phí. Tuy nhiên với mục đích nâng cao kiến thức, nâng cao khả năng tự tìm tòi ,học hỏi qua các kênh thông tin giáo dục khác nhau, nhằm phục vụ mục đích lâu dài sau này, thì đây là một sự lựa chọn hoàn toàn xác đáng. Và trên thực tế, trong một thời gian tương đối ngắn, em đã nắm vững được những mãng kiến thức cơ bản nhất để sử dụng nó tốt trong đề tài của mình. Trên là toàn bộ nguyên do tại sao em chọn vi điềukhiển PIC16F877A cho đề tài đồ án môn học I của mình. Ở phần tiếp theo của báo cáo đồ án môn học I em sẽ đi sâu giới thiệu những phần mà em đã nghiên cứu được để phục vụ cho việc thực hiện đồ án của mình. 2. Tìm hiểu về vi điềukhiển PIC16F877A 2.1. Cấu trúc phần cứng của PIC16F877A PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điềukhiển đầu tiên của họ. Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau. PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điềukhiển PIC của mình. Cấu trúc tổng quát của PIC16F877A như sau : - 8K Flash Rom - 368 bytes Ram - 256 bytes EFPROM GVHD : TS. Nguyễn Thiện Thành SVTH: Nguyễn Uy Danh10 [...]... Đối tượng điềukhiển : ĐộngcơDC Đây cà độngcơ em sử dụng trong đề tài : Bên trong độngcơcó gắn một encoder đồng trục với nó dùng để xác đònh tốcđộ và vò trí của độngcơ Các thông số của độngcơ như sau: + Điện áp DC cấp cho độngcơ : 24VDC + Tốcđộ tối đa 4000 vòng/phút + Số xung của encoder 108xung/vòng + Điện cảm L=102mH Độngcơcó tất cả 6 dây ra : + 2 dây cung cấp nguồn 24 V cho đôngcơ + 2... vào 2 dây nguồn của độngcơ Sử dụng 2 bit RC6 và RC7 của PORTC vi điềukhiển nối vào 2 chân 2 và 7 của L293D để điềukhiển chiều quay Bit RC5 là bit cho phép độngcơ hoạt động Chân RA4 được đònh ở chế độ input để nhận xung từ encoder truyền về 2 Giải thuật điềukhiển b1: Đặt 2 bit RC6 và RC7 là 0, 1 hoặc ngược lại để xác đònh chiều quay của độngcơ Bật bit RC5 lên 1 cho phép độngcơ quay GVHD : TS Nguyễn... hơn 0 (cờ nhớ lên 1) thì tiến hành tắt độngcơ bằng cách cho bit EN=0 b5: Cứ sau 1s thì hiện tốcđộ của độngcơ ra led 7 đoạn một lần b6: Lặp lại liên tục quá trình trên, ta cótốcđộđo dao động xung quanh tốcđộ đặt GVHD : TS Nguyễn Thiện Thành 35 SVTH: Nguyễn Uy Danh Báo cáo đồ án môn học I Chương IV Chương trình viết bằng Assembly điềukhiểnON_OFFđộngcơDC Phần chương trình sẽ được em trình bày... độngcơ quay từ trái sang phải và ngược lại Một lỗ ở vòng trong cùng dùng để phát hiện điểm bắt đầu của độngcơCó thể viết chương trình cho vi điềukhiển nhận biết : nếu có một xung phát ra từ vòng trong cùng này, tức là độngcơ đã quay đúng một vòng Với những đặc tính trên, encoder dùng rất phổ biến trong việc xác đònh vò trí góc của độngcơ Vấn đề quan trọng trong việc tìm mua những loại động cơ. .. 5V cung cấp áp cho encoder + 1 dây tín hiệu kênh A và 1 dây kênh A bù đưa xung encoder ra ngoài Phương pháp điềukhiển : Thay đổi tốc độ động cơ bằng cách thay đổi áp cấp vào cho độngcơ Nguyên lý hoạt động của cảm biến encoder : có nhiều loại encoder khác nhau Mỗi loại lại có một nguyên lý hoạt động khác nhau, trong khuôn khổ báo cáo đồ án I em xin trình bày phần nguyên lý loại encoder trong đề tài... Timer0 ở chế độ đếm xung từ encoder Cứ sau mỗi 1ms ( thời gian lấy mẫu) ngắt timer1 xảy ra, trong chương trình phục vụ ngắt của timer1, tiến hành đọc xung của encoder chứa trong thanh ghi TMR0 của timer0 b3 : Từ số xung của Timer0 trong 1ms, ta tính toán được tốcđộ hiện tại của độngcơ b4 : Thực hiện phép trừ giữa tốcđộ đặt và tốcđộđo được Nếu hiệu số lớn hơn 0 ( không có nhớ) thì cho độngcơ tiếp tục... Driver L293D : L293D là IC dùng để điềukhiển cùng 1 lúc 2 độngcơ nhỏ Trong đề tài của mình, em chỉ dùng nó để điều khiển một động cơDòng giới hạn của L293 là 600mA Sơ đồ chân của L293 GVHD : TS Nguyễn Thiện Thành 22 SVTH: Nguyễn Uy Danh Báo cáo đồ án môn học I Sơ đồ hoạt đông của L293D GVHD : TS Nguyễn Thiện Thành 23 SVTH: Nguyễn Uy Danh Báo cáo đồ án môn học I Bảng điềukhiển các chân chức năng của L293D... xung trên một vòng Dođó ta có thể dùng vi điềukhiển đếm số xung đó trong một đơn vò thời gian và tính ra tốc độ động cơ GVHD : TS Nguyễn Thiện Thành 28 SVTH: Nguyễn Uy Danh Báo cáo đồ án môn học I Cái encoder mà em sử dụng trong đồ án của mình, hoàn toàn giống với mô hình ở trên Tuy nhiên, mô hình trên có nhược điểm lớn là : ta không thể xác đònh được độngcơ quay trái hay quay phải, vì có quay theo... của vi điềukhiển và có khả năng tạo một ngắt khi bộ đònh thời tràng và làm cho Vi điềukhiển thoát khỏi trạng thái ngủ Timer2 : là bộ đònh thời 8 bit bao gồm một bộ tiền đònh (prescaler), một bộ hậu đònh Postscaler và một thanh ghi chu kỳ viết tắt là PR2 Việc kết hợp timer2 với 2 bộ đònh tỉ lệ cho phép nó hoạt động như một bộ đinh thời 16 bit Module timer2 cung cấp thời gian hoạt động cho chế độ điều. .. 4 3 4 5 6 7 8 9 0 1 2 2 2 2 2 2 3 9 0 1 2 7 8 9 0 8 9 10 11 32 2 Giải thích Vi điềukhiển 16F877A hoạt động khi chân số 1 MCLR ở mức 1 và bò reset khi bò clear về mức 0 Với mạch reset ở trên, bình thường phím nhấn hở ra, chân reset mức 1 , vi điềukhiển hoạt động Khi nhấn phím xuống, chân 1 chạm đất bò clear về 0, vi điềukhiển được reset trở lại trạng thái ban đầu ( thanh ghi PC trỏ đòa chỉ 0000h trong . ra tốc độ và so sánh với tốc độ đặt ban đầu để ra quyết đònh ON_ OFF động cơ. Tốc độ nhận về sẽ được so sánh với tốc độ đặt cứ 1ms một lần. Ngoài ra cứ 1s thì vi điều khiển sẽ cập nhật tốc độ. của em là : “ Điều khiển ON_ OFF tốc độ động cơ DC . Với yêu cầu đề tài như trên, hướng thực hiện đề tài của em được tóm tắt như sau: - Sử dụng vi điều khiển PIC16F877A làm chip điều khiển trung. linh kiện, các loại IC, hoạt động của các loại cảm biến…. 3. Thiết kế, thi công mạch điều khiển và mạch động lực điều khiển động cơ DC 4. Viết chương trình cho vi điều khiển PIC16F877A thực hiện