Thiết kế hệ thống điều khiển động cơ DC bằng nhiệt độ

59 22 0
Thiết kế hệ thống điều khiển động cơ DC bằng nhiệt độ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ý tưởng đề tài xuất phát từ bài toàn thực tế. Một thiết bị vừa có thể đo nhiệt độ phòng tại một thời điểm xác định vừa có thể điều khiển thiết bị (động cơ). Với một giá trị nhiệt độ khác nhau mà hệ thống sẽ điều khiển tắt hay bật và thay đổi tốc độ động cơ. Đồng thời người dùng có thể thiết lập các giá trị ngưỡng theo đúng yêu cầu riêng.

KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ LỜI NÓI ĐẦU Chƣơng TỔNG QUAN VỀ CÁC PHẦN TỬ 1.1 Tổng quan PIC 16F887A 1.1.1 Sơ đồ khối bảng mô tả chức chân PIC16F887A 1.1.2 Tổ chức nhớ 1.1.2.1 Tổ chức nhớ chƣơng trình 1.1.2.2 Tổ chức nhớ liệu 1.1.2.3 Các ghi mục đích chung 10 1.1.2.4 Các ghi chức đặc biệt 11 1.1.2.5 Các ghi trạng thái 11 1.1.3 Các cổng PIC 16F887A 12 1.1.3.1 PORTA ghi TRISA 12 1.1.3.2 PORTB ghi TRISB 13 1.1.3.3 PORTC ghi TRISC 15 1.1.3.4 PORTD ghi TRISD 16 1.1.3.5 PORTE ghi TRISE 17 1.1.4 Hoạt động cuả định thời 18 1.1.4.1 Bộ định thời TIMER0 18 1.1.4.2 Bộ định thời TIMER1 20 1.1.4.3 Bộ định thời TIMER2 22 1.2.1 Hình dáng kích thƣớc 24 1.2.2 Các chân chức 25 1.2.3 Sơ đồ khối HD44780 26 1.2.4 Tập lệnh LCD 30 1.2.5 Đặc tính chân giao tiếp 35 Chƣơng THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ DC BẰNG NHIỆT ĐỘ 36 2.1 Sơ đồ khối 36 2.2 Thiết kế khối 36 2.2.1 Mạch đo nhiệt độ 36 2.2.3 Chức ADC PIC16F887 38 2.2.4 Khối hiển thị 43 2.2.5 Motor DC 43 2.2.6 Khối nguồn 44 2.3 Sơ đồ mạch nguyên lý hệ thống 46 Chƣơng CHƢƠNG TRÌNH ĐIỀU KHIỂN 47 3.1 Lƣu đồ thuật toán 47 3.2 Chƣơng trình điều khiển 48 KẾT LUẬN 58 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ LỜI NÓI ĐẦU Ngày nay, với ứng dụng khoa học kỹ thuật tiên tiến, giới ngày thay đổi, văn minh đại Trong đó, phát triển kỹ thuật tự động hóa tạo hàng loạt thiết bị với đặc điểm bật nhƣ xác, bảo mật cao, tốc độ nhanh, gọn nhẹ nhữnh yếu tố cần thiết cho tiện lợi sống Ý tƣởng đề tài xuất phát từ toàn thực tế Một thiết bị vừa đo nhiệt độ phịng thời điểm xác định vừa điều khiển thiết bị (động cơ) Với giá trị nhiệt độ khác mà hệ thống điều khiển tắt hay bật thay đổi tốc độ động Đồng thời ngƣời dùng thiết lập giá trị ngƣỡng theo yêu cầu riêng Đề tài "Thiết kế hệ thống điều khiển động DC nhiệt độ" kết hợp nhiều mạch điện tử nhƣ sử dụng phần tử vi điều khiển chƣơng trình giảng dạy, tổng hợp kiến thức từ môn sở ngành kỹ thực hành môn Vi Điều Khiển Đề tài em gồm phần: Chương Tổng quan phần tử Chương Thiết kế hệ thống điều khiển Chương Chương trình điều khiển Để thực đƣợc đồ án em xin gửi lời cảm ơn chân thành đến tất thầy cô giáo, cán nhân viên trƣờng Đại học dân lập Hải phịng nói chung thầy cô giáo khoa Điện – Điện tử nói riêng đạy dỗ, giúp đỡ em suốt thời gian em học trƣờng Trong trình làm đề tài, hạn chế thời gian, tài liệu trình độ có hạn nên khơng tránh khỏi có thiếu sót Em mong đƣợc đóng góp ý kiến thầy cô bạn để đồ án tốt nghiệp em đƣợc hoàn thiện Em xin chân thành cảm ơn Hải Phòng, tháng năm 2013 Sinh viên thực Mạc Minh Đức KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ Chƣơng TỔNG QUAN VỀ CÁC PHẦN TỬ 1.1 Tổng quan PIC 16F887A Thông thƣờng có họ vi điều khiển bit 6811 Motorola, 8051 Intel, z8 Xilog Pic 16 Microchip Technology Mỗi loại có tập lệnh ghi riêng nhất, nên chúng thƣờng khơng tƣơng thích lẫn Ngồi có vi điều khiển 16 bit 32 bit đƣợc sản xuất hãng khác Với tất vi điều khiển khác tiêu chuẩn để lựa chọn là: * Đáp ứng đƣợc nhu cầu tính tốn tốn cách hiệu quả, đầy đủ chức cần thiết thấp mặt giá thành Trong phân tích nhu cầu dự án dựa vi điều khiển phải biết vi điều khiển bit, 16 bit hay 32 bit đáp ứng tốt nhu cầu tốn cách hiệu Những tiêu chuẩn là: - Tốc độ: tốc độ lớn mà vi điều khiển hỗ trợ - Kiểu đóng vỏ: Đóng vỏ kiểu DIP 40 chân hay QFP Đây yêu cầu quan trọng xét không gian, kiểu lắp ráp tạo mẫu thử cho sản phẩm cuối - Công suất tiêu thụ: Điều đặc biệt khắt khe sản phẩm dùng pin, ắc quy - Dung lƣợng nhớ Rom Ram chíp - Số chân vào định thời chíp - Khả dễ dàng nâng cấp cho hiệu suất cao giảm công suất tiêu thụ - Giá thành cho đơn vị: Điều quan trọng định giá thành sản phẩm mà vi điều khiển đƣợc sử dụng *) Có sẵn cơng cụ phát triển phần mềm nhƣ trình biên dịch, trình hợp ngữ gỡ rối *) Nguồn vi điều khiển sẵn có nhiều tin cậy Khả sẵn sàng đáp ứng số lƣợng tƣơng lai KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ Hiện vi điều khiển bit họ 8051 có số lƣợng lớn nhà cung cấp đa dạng nhƣ Intel, Atmel, Philip… Nhƣng mặt tính cơng có thề xem PIC vƣợt trội nhiều so với 89 với nhiều module đƣợc tích hợp sẵn nhƣ ADC10 BIT, PWM 10 BIT, PROM 256 BYTE, COMPARATER, VERF COMPARATER, đặc điểm tất vi điều khiển PIC sử dụng có chuẩn PI tức chuẩn cơng nghiệp thay chuẩn PC (chuẩn dân dụng) Ngồi PIC cịn đƣợc nhiều nhà sản xuất phần mềm tạo ngôn ngữ hỗ trợ cho việc lập trình ngồi ngơn ngữ Asembly cịn sử dụng ngơn ngữ C sử dụng CCSC, HTPIC hay sử dụng Basic có MirkoBasic… cịn nhiều chƣơng trình khác để hỗ trợ cho việc lập trình bên cạnh ngơn ngữ kinh điển asmbler Nên đề tài em lựa chọn sử dụng vi điều khiển PIC làm điều khiển chính, PIC16F887A 1.1.1 Sơ đồ khối bảng mô tả chức chân PIC16F887A Hình 1.1 PIC 16F887A KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ Hình 1.2 Sơ đồ khối PIC16F887A Bảng mơ tả chức chân PIC16F887A Pin Name DIP Pin# PLCC Pin# QFT Pin# I/O/P Type Buffer Type Description OSC1/CLKIN 13 14 30 ST/CMOS(4) Đầu vào xung dao động thạch anh/ngõ vào xung clock ngoại KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ OSC2/CLKOUT 18 O - Đầu xung dao động thạch anh Nối với thạch anh hay cộng hƣởng chế độ dao động thạch anh.Trong chế độ RC, ngõ chân OSC2 MCLR /Vpp 18 I/P ST Ngõ vào Master Clear(Reset) ngõ vào điện đƣợc lập trình Chân cho phép tín hiệu Reset thiết bị tác động mức thấp RA0/AN0 19 I/O TTL PORTA port vào hai chiều RA0 làm ngõ vào tuơng tự thứ RA1/AN1 20 I/O TTL RA1 làm ngõ vào tuơng tự thứ RA2/AN2/VREF – 21 I/O TTL RA2 làm ngõ vào tuơng tự điện áp chuẩn tƣơng tự âm RA3/AN3/VREF + 22 I/O TTL RA3 làm ngõ vào tuơng tự điện áp chuẩn tƣơng tự dƣơng RA4/T0CKI 23 I/O ST RA4 làm ngõ vào xung clock cho định thời Timer0 RA5/ SS /AN4 24 I/O TTL RA5 làm ngõ vào tƣơng tự thứ RB0/INT RB1 RB2 33 34 35 36 37 38 10 I/O I/O I/O TTL/ST(1) TTL TTL PORTB port hai chiều RB0 làm chân ngắt ngồ RB3/PGM 36 39 11 I/O TTL RB3 làm ngõ vào điện đƣợc lập trình mức thấp KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ RB4 RB5 37 38 41 42 14 15 I/O I/O TTL TTL RB6/PGC 39 43 16 I/O TTL/ST(2) RB7/PGD 40 44 17 I/O TTL/ST(3) RC0/T1OSO/T1CKI 15 16 32 I/O ST Interrupt-on-change pin Interrupt-on-change In-Crcuit Debugger pin Serial programming clock Interrupt-on-change pin In-Crcuit Debugger pin Serial programming data PORTC port vào hai chiều RC0 ngõ vào dao động Timer1 ngõ xung clock cho Timer1 RC1/T1OSI/CCP2 16 18 35 I/O ST RC1 ngõ vào dao động Timer1 ngõ vào Capture2/ngõ compare2/ngõ vào PWM2 RC2/CCP1 17 19 36 I/O ST RC2 ngõ vào capture1/ngõ compare1/ngõ vào PWM1 RC3/SCK/SCL 18 20 37 I/O ST RC3 ngõ vào xung Clock đồng nội tiếp/ngõ hai chế độ SPI I2C RC4 liệu bên SPI(chế độ SPI) liệu I/O(chế độ I C) RC4/SDI/SDA 23 25 42 I/O ST RC5/SDO 24 26 43 I/O ST RC5 liệu SPI(chế độ SPI) RC6/TX/CK 25 27 44 I/O ST RC6 chân truyền khơng đồng USART đồng với xung đồng hồ RC7/RX/DT 26 29 I/O ST RC7 chân nhận không đồng USART đồng với liệu RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 19 20 21 22 27 28 29 30 21 22 23 24 30 31 32 33 38 39 40 41 I/O I/O I/O I/O I/O I/O I/O I/O ST/TTL(3) ST/TTL(3) ST/TTL(3) ST/TTL(3) ST/TTL(3) ST/TTL(3) ST/TTL(3) ST/TTL(3) PORTD port vào hai chiều parallel slave port giao tiếp với bus vi xử lý KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ RE0/ RD /AN5 RE1/ WR /AN6 9 10 25 I/O 26 I/O RE2/ CS /AN7 10 11 27 I/O Vss VDD 12, 31 11, 32 13, 34 12, 35 7, 28 6, 29 P P 1,17,28, 40 12,13 33, NC ST/TTL(3) PORTE port vào hai chiều RE0 điều khiển việc đọc parrallel slave port ngoc vào tƣơng tự thứ ST/TTL(3) RE1 điều khiển việc ghi parallel slave port ngõ vào tƣơng tự thứ ST/TTL(3) RE2 điều khiển việc chọn parallel slave port ngõ vào tƣơng tự thứ Cung cấp nguồn dƣơng cho mức logicvà chân I/O Những chân không đƣợc nối bên đƣợc để trống Ghi chú: I = input; O = output; I/O = input/output; P = power - = Not used; TTL = TTL input; ST = Schmitt Trigger input Là vùng đệm có ngõ vào Trigger Schmitt đƣợc cấu hình nhƣ ngắt ngồi Là vùng đệm có ngõ vào Trigger Schmitt đƣợc sử dụng chế độ Serial Programming Là vùng đệm có ngõ vào Trigger Schmitt đƣợc cấu hình nhƣ ngõ vào mục đích chung ngõ vào TTL sử dụng chế độ Parallel Slave Port (cho việc giao tiếp với bus vi xử lý) Là vùng đệm có ngõ vào Trigger Schmitt đƣợc cấu hình chế độ dao động RC ngõ vào CMOS khác 1.1.2 Tổ chức nhớ Có khối nhớ vi điều khiển họ PIC16F88X, nhớ chƣơng trình nhớ liệu, với bus riêng biệt để truy cập đồng thời KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ Hình 1.3 Ngăn xếp đồ nhớ chƣơng trình PIC16F887A 1.1.2.1 Tổ chức nhớ chƣơng trình Các vi điều khiển họ PIC16F887A có đếm chƣơng trình 13 bit có khả định vị khơng gian nhớ chƣơng trình lên đến 8Kb.Các IC PIC16F887A có 8Kb nhớ chƣơng trình FLASH, IC PIC16F873/874 có Kb.Vectơ RESET đặt địa 0000h vectơ ngắt địa 0004h 1.1.2.2 Tổ chức nhớ liệu Bộ nhớ liệu đƣợc chia thành nhiều dãy chứa ghi mục đích chung ghi chức đặc biệt BIT RP1 (STATUS ) RP0 (STATUS ) bit dùng để chọn dãy ghi RP1:RP0 Bank 00 01 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ 10 11 Chiều dài dãy 7Fh (128 byte) Phần thấp dãy dùng để chứa ghi chức đặc biệt.Trên ghi chức đặc biệt ghi mục đích chung, có chức nhƣ RAM tĩnh Thƣờng ghi đặc biệt đƣợc sử dụng từ dãy đƣợc ánh xạ vào dãy khác để giảm bớt đoạn mã khả truy cập nhanh 1.1.2.3 Các ghi mục đích chung Các ghi truy cập trực tiếp gián tiếp thông qua ghi FSG (File Select Register) Hình 1.4 Các ghi PIC16F887A 10 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ Hình 2.10 Mạch biến áp 12V cấp nguồn động dùng IC LM7812 Ở ổn áp dùng IC 7805, 7812 để tạo nguồn +5V cung cấp nguồn cho mạch vi điều khiển IC 7812 nguồn +12V cung cấp cho động 45 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ 2.3 Sơ đồ mạch nguyên lý hệ thống Sơ đồ mạch nguyên lý hệ thống nhƣ hình 2.11 Hình 2.11 Sơ đồ mạch nguyên lý hệ thống điều khiển động DC nhiệt độ 46 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ Chƣơng CHƢƠNG TRÌNH ĐIỀU KHIỂN 3.1 Lƣu đồ thuật toán BẮT ĐẦU - LM35 Khởi tạo ADC Khởi tạo PWM Khởi tạo Timer0, Timer1 Khởi tạo LCD 16x2 - Đọc ADC từ LM35 - Nhiệt độ - Tốc độ động Motor - Tính toán PWM 47 Hiển thị LCD 16x2 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ 3.2 Chƣơng trình điều khiển // Khai báo LCD #ifndef _LCD_H_ #define _LCD_H_ #include #include "timer.h" #define LCD_RS RD7 //#define LCD_RW RA2 #define LCD_EN RD6 #define LCD_D4 RD5 #define LCD_D5 RD4 #define LCD_D6 RD3 #define LCD_D7 RD2 #define LCD_PORT TRISD void lcd_numb2(unsigned char number); void lcd_numb4(unsigned int number); /* write a byte to the LCD in bit mode */ extern void lcd_write(unsigned char); /* Clear and home the LCD */ extern void lcd_clear(void); /* write a string of characters to the LCD */ extern void lcd_puts(const char * s); /* Go to the specified position */ extern void lcd_goto(unsigned char colum, unsigned char row); /* intialize the LCD - call before anything else */ extern void lcd_init(void); 48 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ extern void lcd_putch(char); /* Set the cursor position */ #define lcd_cursor(x) lcd_write(((x)&0x7F)|0x80) /* Display ON/OFF Control defines */ #define DON 0b00001111 /* Display on */ #define DOFF 0b00001011 /* Display off */ #define CURSOR_ON 0b00001111 /* Cursor on */ #define CURSOR_OFF 0b00001101 /* Cursor off */ #define BLINK_ON 0b00001111 /* Cursor Blink */ #define BLINK_OFF 0b00001110 /* Cursor No Blink */ /* Cursor or Display Shift defines */ #define SHIFT_CUR_LEFT 0b00000100 /* Cursor shifts to the left */ #define SHIFT_CUR_RIGHT 0b00000101 /* Cursor shifts to the right */ #define SHIFT_DISP_LEFT 0b00000110 /* Display shifts to the left */ #define SHIFT_DISP_RIGHT 0b00000111 /* Display shifts to the right */ /* Function Set defines */ #define FOUR_BIT 0b00101100 /* 4-bit Interface */ #define EIGHT_BIT 0b00111100 /* 8-bit Interface */ #define LINE_5X7 0b00110000 /* 5x7 characters, single line */ #define LINE_5X10 0b00110100 /* 5x10 characters */ #define LINES_5X7 0b00111000 /* 5x7 characters, multiple line */ #endif //Chương trình LCD typedef union _BYTE_VAL { unsigned char Val; struct { unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; 49 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; } bits; } _BYTE_VAL; void lcd_write(unsigned char c) { _BYTE_VAL TempByte; TempByte.Val = c; LCD_D4 = TempByte.bits.b4; LCD_D5 = TempByte.bits.b5; LCD_D6 = TempByte.bits.b6; LCD_D7 = TempByte.bits.b7; LCD_STROBE(); LCD_D4 = TempByte.bits.b0; LCD_D5 = TempByte.bits.b1; LCD_D6 = TempByte.bits.b2; LCD_D7 = TempByte.bits.b3; LCD_STROBE(); } void lcd_clear(void) { LCD_RS = 0; lcd_write(0x01); delay_ms(2); } /* write a string of chars to the LCD */ void lcd_puts(const char *s) { LCD_RS = 1; // write characters while(*s) lcd_write(*s++); } 50 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ /* write one character to the LCD */ void lcd_putch(char c) { LCD_RS = 1; // write characters lcd_write( c ); } void lcd_goto(unsigned char colum, unsigned char row) { unsigned char pos[2] = {0x80,0xC0}; LCD_RS = 0; lcd_write(pos[row] + colum); } /* initialise the LCD - put into bit mode */ void lcd_init(void) { LCD_PORT = 0x00; LCD_RS = 0; LCD_EN = 0; // reset LCD lcd_write(0x30); delay_ms(20); lcd_write(0x30); delay_ms(20); lcd_write(0x32); delay_ms(20); lcd_write(0x28); delay_ms(10); // wait 15mSec after power applied, lcd_write(0x28); delay_ms(10); // wait 15mSec after power applied, lcd_write(0x28); delay_ms(10); // wait 15mSec after power applied, lcd_write(0x28); // Four bit mode,5x7 delay_ms(1); // wait 15mSec after power applied, lcd_write(0x08); 51 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ delay_ms(1); // wait 15mSec after power applied, lcd_clear(); // Clear screen delay_ms(1); // wait 15mSec after power applied, lcd_write(0x06); // Set entry Mode delay_ms(1); // wait 15mSec after power applied, lcd_write(0x0C); // Display On, Cursor On, Cursor Blink } void lcd_numb2(unsigned char number) { lcd_putch(number/10 + '0'); lcd_putch(number%10 + '0'); } void lcd_numb4(unsigned int number) { lcd_putch (((number/1000)%10)+ '0'); lcd_putch (((number/100)%10)+ '0'); lcd_putch (((number/10)%10)+ '0'); lcd_putch((number%10)+ '0'); } //Chương trình #define _XTAL_FREQ 20000000 #include #include "timer.h" #include "lcd.h" #include "main.h" #include #include #define MODE RC3 #define PWM RC1 #define ENCODER 32 #define SW_SET #define SW_INC #define SW_DEC RA0 RA1 RA2 52 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ enum { STOP = 0, LEFT = 1, RIGHT = }; int speed ; unsigned int duty_speed; void Control_motor(unsigned char rotate,unsigned int m_speed) { switch(rotate) { case STOP:{ CCPR2L = 0; MODE = 0; CCP2CON &= 0x0F; } break; case LEFT:{ CCPR2L = m_speed; CCP2CON |= 0x30; MODE = 0; } break; case RIGHT:{ CCPR2L = 100 - m_speed; CCP2CON |= 0x30; MODE = 1; } break; default: break; } } #define FASLE #define TRUE unsigned int value_adc, pulse_cnt = 0,nhietdo; unsigned char TMR0over = ,cnt_timer1 = 0, speed_flag, read_adc = 0; void interrupt Timer(void) 53 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ { if (PEIE && ADIE && ADIF) { ADIF = 0; value_adc = (ADRESH= 10) { read_adc = 0; GO_DONE = 1; } } } int cacul_speed_motor() { float speed_motor; speed_motor = (pulse_cnt*70)/ENCODER; // vong/phut speed_flag = FASLE; return (int)speed_motor; } void main() { TRISA = 0xFF; ADC_Init(); PWM_Init(); Timer0_Init(); Timer1_Init(); Enb_interrup(); lcd_init(); lcd_goto(0,0); lcd_puts("TEMP : "); lcd_goto(0,1); lcd_puts("SPEED: "); while(1) { delay_ms(300); if(speed_flag == TRUE) { speed = cacul_speed_motor(); lcd_goto(6,1); lcd_numb4(speed); 55 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ } } } //Khai báo Timer #ifndef _TIMER_H_ #define _TIMER_H_ #include void Timer0_Init(); void Timer1_Init(); void ADC_Init(); void PWM_Init(); void Enb_interrup(); #endif //Timer #include "timer.h" #include void Timer1_Init() { TMR1CS = 0; T1CKPS1 = 0; T1CKPS0 = 0; TMR1IF = 0; TMR1IE = 1; TMR1H = 0x3C; TMR1L = 0xAF; TMR1ON = 1; } void Timer0_Init() { TMR0IF = ; T0CS = 1; T0SE = 1; PS0 = 0; PS1 = 0; 56 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ TMR0IE = 1; TMR0 = 0x00; TRISA4 = 1; } void ADC_Init() { ANSEL = 0x80; // ADC chanel ANSELH = 0x00; ADCS1 = 1; // F/32 ADCS0 = 0; VCFG1 = 0; // Internal Vref VCFG0 = 0; CHS3 = 0; // AN3 CHS2 = 0; CHS1 = 1; CHS0 = 1; ADFM = 1; // ADFM = Right justified ADON = 1; // ON ADC ADIE = 1; // ADC Interrupt Enable ADIF = 0; // Clear ADC Interrupt Flag } void PWM_Init() { TRISC1 = 0; TRISC3 = 0; CCPR2L = 100; CCP2CON = 0x3C; PR2 = 199; T2CON = 0x01; TMR2ON = 1; } void Enb_interrup() { PEIE = ; GIE = ; } 57 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÕNG ================================================================================ KẾT LUẬN Đề tài "Thiết kế hệ thống điều khiển động DC nhiệt độ" đề tài mẻ khơng phải đề tài lớn, nhƣng qua em bổ xung đƣợc nhiều kinh nghiệm kiền thức có ích cho thân nhƣ: Hiểu đƣợc phƣơng pháp điều khiển sử dụng vi điều khiển Tìm hiểu thêm đƣợc mạch công suất Motor DC Xây dựng hệ thống điều khiển Hiểu biết cách lập trình C cho VĐK thành thạo Có nhiều kinh nghiệm việc thi công lắp rắp mạch điện tử Biết cách hiệu chỉnh thông số mạch thực tế Và qua thời gian làm đề tài với hƣớng dẫn bảo thầy em học hỏi, rèn luyện đƣợc tinh thần làm việc nghiêm túc cách thức không ngừng nghiên cứu kiến thức để bổ xung tích luỹ kiến thức cho Trong trình làm đề tài, hạn chế thời gian, tài liệu trình độ có hạn nên khơng tránh khỏi có thiếu sót Em mong đƣợc đóng góp ý kiến thầy cô bạn để đề tài em đƣợc hoàn thiện Sau em xin trân thành bày tỏ lịng biết ơn thầy NGUYỄN VĂN DƢƠNG thầy cô khoa giúp đỡ em hoàn thành đề tài này! Ngày 20 tháng năm 2013 Sinh viên Mạc Minh Đức 58 KHOA ĐIỆN TỬ VIỄN THÔNG - TRƢỜNG ĐẠI HỌC DÂN LẬP HI PHếNG ================================================================================ Tài liệu tham khảo Nguyễn Tăng C-ờng, Phan Quốc Thắng, Cấu trúc lập trình họ Vi Điều khiển 8051, Nhà xuất khoa học Kỹ Thuật Nguyễn Mạnh Giang, Cấu trúc, lập trình ghép nối ứng dụng Vi Điều Khiển, nhà xuất Lao Động XÃ Hội Phạm Minh Hà(2004), Kỹ thuật mạch điện tử, Nhà xuất Khoa học kỹ thuật Ngô Diện Tập, Vi Điều Khiển đo l-ờng điều khiển tự động, Nhà xuất Khoa Hoc Kỹ Thuật, Hà Nội Họ Vi Điều Khiển 8051, Tống Văn ON, nhà Xuất Lao Động XÃ Hội Các bạn có thĨ truy cËp c¸c trang Web rÊt hay cđa ViƯt Nam nh- : www.dientuvietnam.net www.picvietnam.com www.dientuvienthong.net www.vagam.dieukhien.net www.duyphi.phpnet.us/index.htm 59 ... Chƣơng THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ DC BẰNG NHIỆT ĐỘ 2.1 Sơ đồ khối Với yêu cầu đề tài thiết kế hệ thống điều khiển động DC theo nhiệt độ, tức từ nhiệt độ đo đƣợc từ môi trƣờng, hệ thống điều. .. điều khiển tốc độ động DC quay nhanh hay chậm, ta có sơ đồ khối hệ thống hình 2.1 Hình 2.1 Sơ đồ khối hệ thống điều khiển động DC nhiệt độ Với sơ đồ ta sử dụng cảm biến nhiệt độ Sensor đo nhiệt độ. .. bị vừa đo nhiệt độ phịng thời điểm xác định vừa điều khiển thiết bị (động cơ) Với giá trị nhiệt độ khác mà hệ thống điều khiển tắt hay bật thay đổi tốc độ động Đồng thời ngƣời dùng thiết lập

Ngày đăng: 05/02/2021, 04:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan