1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế chế tạo mạch điều khiển động cơ dc servo sử dụng sóng rf

78 55 0

Đ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

Nội dung

TRƯỜNG ĐẠI HỌC VINH KHOA ĐIỆN TỬ - VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đềtài: THIẾT KẾ CHẾ TẠO MẠCH ĐIỀU KHIỂN ĐỘNG CƠ DC SERVO SỬ DỤNG SÓNG RF Sinh viên thực : NGUYỄN TRỌNG HÀO Lớp : 52K- ĐTVT Giảng viên hướng dẫn : Th.S NGUYỄN PHÚC NGỌC NGHỆ AN, I 05/2016 LỜI CẢM ƠN Với hướng dẫn giúp đỡ từ thầy Khoa Điện Tử Viễn Thơng, em hồn thành xong đồ án tốt nghiệp Đặc biệt nhiệt tình quan tâm giảng viên trực tiếp hướng dẫn đề tài, Th.S Nguyễn Phúc Ngọc, Bộ môn KT Điện Tử, Khoa Điện Tử Viễn Thông, Trường Đại Học Vinh Em xin chân thành gửi lời cảm ơn đến thầy thầy cô khoa Cuối cùng, em xin kính chúc q thầy, sức khỏe thành công nhiều nghiệp giáo dục cao quý Nghệ An, ngày tháng 05 năm 2016 Sinh viên Nguyễn Trọng Hào I LỜI NÓI ĐẦU Ngày khâu q trình sản xuất cơng nghiệp hay nghiên cứu khoa cần phải sử dụng đến động Động xuất nhiều dây chuyền sản xuất nhằm cải thiện hay thay sức lao động người Nhưng để đạt hiệu tối ưu nhất, cần phải điều khiển động cách xác mặt tốc độ, vị trí số vịng quay hay chiều quay động mà đưa vào phục vụ đời sống Động DC servo xuất nhiều công nghiệp sản xuất Hầu dây chuyền sản xuất hay xưởng, nhà máy, xí nghiệp…đều sử dụng động DC Servo Một số ứng dụng động DC servo công nghiệp điều khiển vị trí, vận tốc, gia tốc, cấu servo máy CNC, băng tải, cấu robot… Điều khiển từ xa việc điều khiển mơ hình khoảng cách mà người khơng thiết phải đến gần hệ thống để cài đặt Điều khiển từ xa thâm nhập ứng dụng rộng rãi đời sống chúng ta, mang lại nhiều thuận lợi cho xã hội, thông tin cập nhật nhờ xác nhanh chóng q trình điều khiển từ xa Xuất phát từ ứng dụng quan trọng trên, em lựa chọn đề tài tốt nghiệp là: “Thiết kế chế tạo mạch điều khiển động DC Servo sử dụng sóng RF” Đề tài nhằm hướng tới mục đích đưa mạch chế tạo vào đời sống, điều khiển vật dụng có sử dụng động DC Servo với cơng suất tối đa 100W Từ tảng ta đưa hướng phát triển mạch để ứng dụng dây chuyền sản xuất, băng tải công nghiệp, với công suất động lớn nhiều Thay cho việc cài đặt hay điều khiển trực tiếp ưu điểm vượt trội công nghệ điều khiển từ xa Đề tài thực phương pháp: Kiến thực học trường, trang mạng, diễn đàn tài liệu hay báo nước Cấu trúc đồ án, phần lời nói đầu, kết luận, danh mục bảng hình vẽ, thuật ngữ khoa học, tài liệu tham khảo, phụ lục, nội dung đồ án trình bày chương: Chƣơng 1: Mở đầu Chương trình bày hiểu biết tổng quan điều khiển từ xa, việc sử dụng sóng vơ tuyến RF Nêu cụ thể cấu trúc phân loại động DC Servo Chƣơng 2: Phần cứng II Chương trình bày kiến thức liên quan đến phần tử mạch như: PIC (cụ thể PIC 16F877A), mạch cầu H (L298), trình dịch CCS, Module phátthu RF 315MHz phương pháp tạo xung PWM Chƣơng 3: Thiết kế chế tạo hệ thống điều khiển Chương đưa cách vận hành, cài đặt thống số cho mạch mơ hình lắp ráp thực tế hệ thống III TÓM TẮT ĐỀ TÀI Đồ án nghiên cứu thiết kế chế tạo mạch điều khiển động DC Servo từ xa, sử dụng module thu phát sóng RF Mạch sử dụng vi điều khiển PIC 16F877A mạch cầu H có Chip Drive L298 để điều khiển tốc độ, vị trí chiều quay động Mạch sử dụng boart thu phát RF 315MHz để điều khiển từ xa, có mạch nguồn ổn áp chuyển từ 12V DC sang 5V DC cung cấp cho thiết bị, linh kiện mạch ABSTRACT This thesis studies the design and manufacture of circuits uses DC Servo motor control remotely, using RF transceiver module Circuit uses using PIC microcontroller 16F877A and H-bridge circuit uses in Chip Drive L298 to control the speed, location and direction of rotation of the motor Boart circuit uses using 315Mhz RF transceiver for remote control, there is a steady source of pressure vessels switching from 12V DC to 5V DC supply for devices, components of the circuit IV MỤC LỤC LỜI CẢM ƠN - I LỜI NÓI ĐẦU II TÓM TẮT ĐỀ TÀI - IV DANH MỤC HÌNH VẼ - VIII DANH MỤC CÁC BẢNG - X THUẬT NGỮ VÀ TỪ VIẾT TẮT XI CHƢƠNG MỞ ĐẦU - 1.1 Giới thiệu điều khiển từ xa sử dụng sóng vơ tuyến - 1.1.1 Giới thiệu điều khiển từ xa 1.1.2 Tìm hiểu sóng vơ tuyến 1.1.3 Điều khiển từ xa sử dụng tần số sóng vơ tuyến (RF) - 1.1.4 Phân loại tần số sóng vơ tuyến 1.1.5 Ứng dụng điều khiển từ xa sử dụng sóng vơ tuyến - 1.2 Phân loại động DC Servo - 1.2.1 Động Servo DC có chổi than - 1.2.2 Động Servo DC khơng có chổi than - 1.2.3 Động AC Servo - 1.3 Hệ thống Servo -10 1.4 Kết luận chương 13 CHƢƠNG PHẦN CỨNG 14 2.1 Giới thiệu phân loại vi điều khiển PIC 14 2.2 Vi điều khiển PIC 16F877A 15 2.2.1 Bộ nhớ PIC 16F877A 19 2.2.2 Các cổng xuất nhập PIC16F877A 21 2.2.3 Các vấn đề Timer 22 2.2.4 Ngắt (Interrupt) - 29 2.3 Phương pháp điều chế độ rộng xung PWM 30 2.3.1 Nguyên lý điều chế 30 2.3.2 Ứng dụng PWM điều khiển - 31 2.3.3 Cấu tạo hoạt động khối điều xung PWM PIC 16F877A 32 2.4 Mạch cầu H Chip driver L298 - 33 V 2.4.1 Mạch cầu H 33 2.4.2 Mạch cầu H L298 - 34 2.5 LED hiển thị LCD 35 2.5.1 Chức hình dạng LCD 35 2.5.2 Chức chân LCD - 36 2.5.3 Đặc tính điện chân giao tiếp 37 2.5.4 Tập lệnh LCD 37 2.6 Trình dịch CCS (PIC C Compiler) - 40 2.6.1 Giới thiệu CCS - 40 2.6.2 Tạo PROJECT CCS 40 2.6.3 Bảng hỗ trợ 42 2.7 Bộ phát – thu RF 315MHz 46 2.8 Kết luận chương 49 CHƢƠNG THIẾT KẾ CHẾ TẠO HỆ THỐNG ĐIỀU KHIỂN 50 3.1 Yêu cầu thiết kế 50 3.2 Nội dung thiết kế - 50 3.2.1 Sơ đồ khối 50 3.2.2 Sơ đồ toàn mạch cách vận hành 52 3.3 Các lưu đồ thuật tốn chương trình 54 3.4 Kết luận chương 55 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI 56 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC 58 VI DANH MỤC HÌNH VẼ Hình 1.1 Hệ thống điều khiển từ xa Hình 1.2 Cấu tạo động Servo DMC chổi than Hình 1.3 Vectơ từ trường cố định vectơ dòng qua phần ứng Hình 1.4 Mạch động Servo Dc Hình 1.5 Sensor hiệu ứng Hall đĩa từ lắp đuôi động Hình 1.6 Sơ đồ khối mạch điều khiển chuyển mạch cho động ba pha Hình 1.7 Kết cấu động DC không chổi than Hình 1.8 Sơ đồ khối hệ điều khiển động DC kiểu tương tự CNC Hình 1.9 Mạch điều khiển động Servo DC Hình 1.10 Dạng ngồi động AC 10 Hình 1.11 Mơ hình hệ thống Servo 10 Hình 1.12 Xy lanh hay trục cam hay ly hợp phanh hãm 11 Hình 1.13 Điều khiển vị trí linh hoạt động servo 11 Hình 1.14 Điều khiển chạy trực tiếp 11 Hình 1.15 Sự giật lùi khí 12 Hình 2.1 Sơ đồ khối vi điều khiển PIC 16F877A [3] 17 Hình 2.2 Vi điều khiển PIC16F877A 17 Hình 2.3 Sơ đồ chân PIC 16F877A 18 Hình 2.4 Sơ đồ nguyên lý PIC 16F877A 18 Hình 2.5 Sơ đồ nhớ chương trình 18 Hình 2.6 Sơ đồ nhớ liệu 20 Hình 2.7 Sơ đồ khối Timer0 23 Hình 2.8 Cấu trúc ghi OPTION_REG REGISTER điều khiển hoạt động Timer0 24 Hình 2.9 Cấu trúc ghi INTCON cho phép ngắt Timer0 hoạt động 25 Hình 2.10 Sơ đồ khối Timer1 26 Hình 2.11 Cấu trúc ghi TICON điều khiển hoạt động Timer1 27 Hình 2.12 Sơ đồ khối Timer 28 Hình 2.13 Cấu trúc ghi T2CON điều khiển hoạt động Timer2 28 Hình 2.14 Sơ đồ hoạt động ngắt PIC 16F877A 30 VII Hình 2.15 Đồ thị dạng xung điều chế PWM 31 Hình 2.16 Sơ đồ khối PWM 32 Hình 2.17 Giản đồ thời gian sóng điều xung chân CCPx 32 Hình 2.18 Mạch cầu H 33 Hình 2.19 Nguyên lý hoạt động mạch cầu H 34 Hình 2.20 Sơ đồ chân IC L298 (phải) IC L298 (trái) 34 Hình 2.21 Sơ đồ nguyên lý IC L298 34 Hình 2.22 LCD sơ đồ chân 35 Hình 2.23 Giao diện chương trình CCS 40 Hình 2.24 Tạo file PCW compiler 41 Hình 2.25 Bảng hỗ trợ chức cho PIC 41 Hình 2.26 Tab General 42 Hình 2.27 Tab Communications 43 Hình 2.28 Tab SPI 43 Hình 2.29 Tab LCD 43 Hình 2.30 Tab Timer 44 Hình 2.31 Tab Analog 44 Hình 2.32 Tab Driver Tab Interrupt 45 Hình 2.33 Tab Other 45 Hình 2.34 Bộ phát RF tần số 315MHz 46 Hình 2.35 Sơ đồ nguyên lý phát RF 315MHz 47 Hình 2.36 Dạng sóng Remote 47 Hình 2.37 Boart thu RF tần số 315MHz 48 Hình 2.38 Sơ đồ nguyên lý thu RF 315MHz 48 Hình 3.1 Sơ đồ khối hệ thống 50 Hình 3.2 Sơ đồ khối nguồn 50 Hình 3.3 Sơ đồ khối điều khiển hiển thị 51 Hình 3.4 Ngõ vào encoder remote 51 Hình 3.5 Sơ đồ khối cơng suất 51 Hình 3.6 Sơ đồ nguyên lý mạch 52 Hình 3.7 Màn hình LCD hoạt động 52 Hình 3.8 Sơ đồ mạch in pdf 53 VIII Hình 3.9 Sơ đồ lắp ráp hệ thống 53 Hình 3.10 Lưu đồ chương trình tính PID 54 Hình 3.11 Lưu đồ chương trình 54 IX 3.2 Sơ đồ toàn mạch cách vận hành Sơ đồ nguyên lý nh Sơ đồ nguyên lý mạch Cách vận hành mạch - ước Khi cấp nguồn cho mạch, chờ cho PIC LCD hoạt động, hình LCD hiển thị hình sau: nh Màn hình LCD hoạt động Trong cột SV-PV bên trái cài đặt tốc độ, bên phải cài đặt vị trí SV giá trị cài đặt PV giá trị - ước 52 + Sau hiển thị LCD, sử dụng Remote để cài đặt điều khiển cho động + Nhấn C để cài đặt Muốn cài đặt vị trí hay tốc độ nhấn A (tăng) B (giảm), sau nhấn C để xác nhận + Nhấn D để nhảy đến số cần tăng (giảm), sau nhấn A để tăng giảm giá trị nhấn C để xác nhận lưu lại giá trị cài đặt + Nhấn D để thoát khỏi cài đặt muốn động quay thuận hay nghịch nhấn A B Kết thu nh Sơ đồ mạch in pdf Sơ đồ hệ thống kết nối điều khiển động DC Servo nh 9.Sơ đồ lắp ráp hệ thống 53 3.3 Các lƣu đồ thuật tốn chƣơng trình Chương tr nh tính PID PID Err = Pulse_set - Pulse P_part = Kp.Err D_part = Kd.(Err – Pre_err) I_part += Ki.Err Output += P_part + I_part + D_part SET_PWM1_DUTY(Output) END nh 10 Lưu đồ chương trình tính PID Lưu đồ chương tr nh START KHỞI TẠO PWM, KHỞI TẠO TIMER, KHỞI TẠO LCD TÍNH PID BIT_PID=1 CÀI ĐẶT TỐC ĐỘ VÀ VỊ TRÍ PHÍM = CÀI ĐẶT PHÍM = START RUN VỊ TRÍ = VỊ TRÍ ĐẶT END nh 11 Lưu đồ chương trình 54 3.4 Kết luận chƣơng Tác giả thiết kế chế tạo hoàn chỉnh mạch điều khiển động DC Servo từ xa, sử dụng phát-thu sóng RF với tần số 315MHz để điều khiển động DC Servo hoạt động theo yêu cầu 55 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI KẾT LUẬN Đề tài nghiên cứu, thiết kế chế tạo mạch điều khiển động sử dụng điều khiển từ xa dùng tần số vô tuyến RF Mạch thiết kế nhỏ gọn kích thước ổn định tốc độ Mạch chế tạo hoạt động cách tương đối xác tốc độ, vị trí cài đặt chiều quay động ƯỚNG PHÁT TRIỂN ĐỀ TÀI Tính tốn thiết kế mạch cơng suất điều khiển động có cơng suất lớn, lập trình để điều khiển động sử dụng kết nối với máy tính điện thoại smaphone Sử dụng LED SEG để hiển thị tốt tăng độ quan sát dù xa 56 TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Đức, Vũ Văn Yêm, Đào Ngọc Chiến, Nguyễn Quốc Khương, Nguyễn Trung Kiên, Bộ sách Kỹ Thuật Thông Tin – Thông Tin Vô Tuyến (Tập 4), NXB Khoa Học Kỹ Thuật, Hà Nội 2007 [2] Phạm Quang Trí, Giáo trình thực hành vi xử lý, Trường ĐHCN TP.HCM 2005 [3] Lâm Quỳnh Trang, Lê Trọng Hiền, Nguyễn Minh Trung, Đoàn Hiệp, Tài liệu động servo, Đại Học Bách Khoa Thành phố Hồ Chí Minh – Chương trình PFIEV, TP HCM 2008 [4] Nguyễn Quý Thường, Giáo Trình Kỹ Thuật Số, NX Đại Học Quốc Gia Hà Nội, Hà nội 2008 [5] PIC Việt Nam: http://www.picvietnam.com/forum/, truy cập cuối ngày 13/05/2016 [6] Mạch cầu H: http://hoiquandientu.com/baiviet/nguyen-tac-thiet-ke-mach-va-dieukhien-mach-cau-h-trong-dk-tai-hay-dong-co.html, truy cập cuối ngày 15/05/2016 [7] Điều khiển từ xa: http://tailieu.vn/tag/thiet-bi-dieu-khien-tu-xa.html, truy cập cuối ngày 15/05/2016 [8] http://www.alldatasheet.com/, truy cập cuối ngày 12/05/2016 57 PHỤ LỤC Chƣơng trình code cho VĐK PIC16F877A #include #device ADC=10 #use delay(clock=12000000) //Su dung anh 12Mhz #fuses HS,NOWDT,PROTECT,BROWNOUT,PUT,NOLVP,NOCPD,NOWRT,NOCPD #include //Goi thu vien LCD 16x2 //Dinh nghia phim nhan remote #define bt_set PIN_D0 #define bt_sh PIN_D1 #define bt_up PIN_C1 #define bt_down PIN_C3 int1 bit_start = 0; unsigned int32 temp_speed = 0,speed = 0; int1 bit_speed = 0; unsigned int8 coun_speed = 0; unsigned int16 data_rpm = 500,data_pos = 100,pv_pos = 0,coun_pv_pos = 0; //Cac bien dung cho PID int1 bit_pid = 0; #define sample_time //Thoi gian lay mau 5ms #define inv_sample_time 200 //Nghich dao cua thoi gian lay mau unsigned int32 pulse_set = 0; //Xung cai dat signed int32 err = 0,pre_err = 0,kp = 100,kd = 50,ki = 200; //err sai so, pre_err: sai so truoc //kp: phan ti le, kd: phan vi phan, ki: tich phan signed int32 p_part = 0,i_part = 0,d_part = 0; signed int32 output = 0; //Cac bien toc #define encoder 64 //Chan quay thuan nghich dong co #define dir_t PIN_D7 #define dir_n PIN_D6 unsigned int16 duty = 0; //Gia tri PWM signed int32 pulse = 0; unsigned int16 temp_pulse = 0; void pid(); unsigned int16 cai_dat(unsigned int8 set); void review_set(); void hien_thi_rpm_sv(unsigned int16 n); //Hien thi toc cai dat void hien_thi_pos_sv(unsigned int16 n); //Hien thi vi tri cai dat void hien_thi_rpm_pv(unsigned int16 n); //Hien thi toc thuc te void hien_thi_pos_pv(unsigned int16 n); //Hien thi vi tri thuc te void hien_thi_set(unsigned int16 n,unsigned int8 m); //Hien thi gia tri dang cai dat void catulate_pulse(); //Tinh toan xung void main(){ 58 //Khoi tao ENCODER SETUP_TIMER_0(T0_EXT_L_TO_H|T0_DIV_1); SET_TIMER0(255); ENABLE_INTERRUPTS(INT_TIMER0); //Khoi tao PWM SETUP_TIMER_2(T2_DIV_BY_4,255,1); //Tan so PWM 2.929Khz SETUP_CCP1(CCP_PWM); //Khoi tao CCP1 la PWM SET_PWM1_DUTY(duty); //Khoi tao ENCODER SETUP_TIMER_0(T0_EXT_L_TO_H|T0_DIV_1); SET_TIMER0(255); ENABLE_INTERRUPTS(INT_TIMER0); //Khoi tao Timer PID SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_1); SET_TIMER1(50536); ENABLE_INTERRUPTS(INT_TIMER1); //Khoi tao Lcd lcd_init(); lcd_gotoxy(1,1); printf(lcd_putc," Dieu Khien "); lcd_gotoxy(1,2); printf(lcd_putc," Dong Co DC "); delay_ms(2000); printf(lcd_putc,"\f"); //xoa man hinh LCD hien_thi_rpm_sv(data_rpm); //Hien thi gia tri hien_thi_pos_sv(data_pos); ENABLE_INTERRUPTS(GLOBAL); //Cho phep ngat catulate_pulse(); output_bit(dir_t,0); output_bit(dir_n,0); while(TRUE){ if((input(bt_set) == 1) && (bit_start == 0)){ delay_ms(10); if(input(bt_set) == 1){ review_set(); }; }; //Hien thi toc if(bit_speed == 1){ bit_speed = 0; speed = (speed * 60) / encoder; hien_thi_rpm_pv(speed); }; if((bit_pid == 1) && (bit_start == 1)){ pid(); } else{ SET_PWM1_DUTY(0); 59 }; hien_thi_pos_pv(pv_pos); //Chay thuan if(input(bt_up) == 1){ delay_ms(10); if(input(bt_up) == 1){ while(input(bt_up) == 1); pv_pos = 0; bit_start = 1; output_bit(dir_t,1); output_bit(dir_n,0); }; }; //Chay nghich if(input(bt_down) == 1){ delay_ms(10); if(input(bt_down) == 1){ while(input(bt_down) == 1); pv_pos = 0; bit_start = 1; output_bit(dir_t,0); output_bit(dir_n,1); }; }; } } void review_set(){ unsigned int8 mode = 1; int1 bit_review = 1; printf(lcd_putc,"\f"); lcd_gotoxy(1,1); printf(lcd_putc," Cai Dat Toc Do "); while(input(bt_set) == 1); while(bit_review == 1){ //Tang if(input(bt_up) == 1){ delay_ms(10); if(input(bt_up) == 1){ if(mode < 2) mode ++; else mode = 1; switch(mode){ case 1: lcd_gotoxy(1,1); printf(lcd_putc," Cai Dat Toc Do "); break; case 2: lcd_gotoxy(1,1); printf(lcd_putc," Cai Dat Vi Tri "); 60 break; }; while(input(bt_up) == 1); }; }; //Giam if(input(bt_down) == 1){ delay_ms(10); if(input(bt_down) == 1){ if(mode > 1) mode ; else mode = 2; switch(mode){ case 1: lcd_gotoxy(1,1); printf(lcd_putc," Cai Dat Toc Do "); break; case 2: lcd_gotoxy(1,1); printf(lcd_putc," Cai Dat Vi Tri "); break; }; while(input(bt_down) == 1); }; }; if(input(bt_set) == 1){ delay_ms(10); if(input(bt_set) == 1){ switch(mode){ case 1: data_rpm = cai_dat(1); catulate_pulse(); break; case 2: data_pos = cai_dat(2); break; }; }; }; //Thoat if(input(bt_sh) == 1){ delay_ms(10); if(input(bt_sh) == 1){ bit_review = 0; printf(lcd_putc,"\f"); hien_thi_rpm_sv(data_rpm); hien_thi_pos_sv(data_pos); }; }; 61 }; } unsigned int16 cai_dat(unsigned int8 set){ unsigned int16 data = 0; unsigned int8 coun_data = 1; unsigned int16 i; int1 bit_set = 1; printf(lcd_putc,"\f"); lcd_gotoxy(1,1); if(set == 1){ printf(lcd_putc," Cai Dat Toc Do "); data = data_rpm; }; if(set == 2){ printf(lcd_putc," Cai Dat Vi Tri "); data = data_pos; }; while(input(bt_set) == 1); while(bit_set == 1){ //Phim 4) coun_data = 1; while(input(bt_sh) == 1); }; }; hien_thi_set(data,coun_data); for(i = 0; i < 300; i ++){ delay_ms(1); if(input(bt_set) == 1) break; if((input(bt_sh) == 1) || (input(bt_up) == 1) || (input(bt_down) == 1)) break; }; hien_thi_set(data,0); for(i = 0; i < 300; i ++){ delay_ms(1); if(input(bt_set) == 1) break; if((input(bt_sh) == 1) || (input(bt_up) == 1) || (input(bt_down) == 1)) break; }; //Tang if(input(bt_up) == 1){ delay_ms(10); if(input(bt_up) == 1){ switch(coun_data){ case 1: data = data + 1; break; 62 case 2: data = data + 10; break; case 3: data = data + 100; break; case 4: data = data + 1000; break; }; if(data > 9999) data = 0; hien_thi_set(data,0); delay_ms(300); }; }; //Giam if(input(bt_down) == 1){ delay_ms(10); if(input(bt_down) == 1){ switch(coun_data){ case 1: data = data - 1; break; case 2: data = data - 10; break; case 3: data = data - 100; break; case 4: data = data - 1000; break; }; if(data > 9999) data = 9999; hien_thi_set(data,0); delay_ms(300); }; }; if(input(bt_set) == 1){ delay_ms(10); if(input(bt_set) == 1){ lcd_gotoxy(1,2); printf(lcd_putc," "); while(input(bt_set) == 1); bit_set = 0; }; }; } 63 return(data); } void catulate_pulse(){ pulse_set = data_rpm; pulse_set = (pulse_set * encoder) / 12000; } void hien_thi_rpm_sv(unsigned int16 n){ unsigned int8 a,b,c,d; a = n/1000; b = (n - (int16)a*1000)/100; c = (n - (int16)a*1000 - (int16)b*100)/10; d = (n - (int16)a*1000 - (int16)b*100 - (int16)c*10); a += 48; b += 48; c += 48; d += 48; lcd_gotoxy(1,1); printf(lcd_putc,"SV:%c%c%c%c",a,b,c,d); } void hien_thi_pos_sv(unsigned int16 n){ unsigned int8 a,b,c,d; a = n/1000; b = (n - (int16)a*1000)/100; c = (n - (int16)a*1000 - (int16)b*100)/10; d = (n - (int16)a*1000 - (int16)b*100 - (int16)c*10); a += 48; b += 48; c += 48; d += 48; lcd_gotoxy(10,1); printf(lcd_putc,"SV:%c%c%c%c",a,b,c,d); } void hien_thi_rpm_pv(unsigned int16 n){ unsigned int8 a,b,c,d; a = n/1000; b = (n - (int16)a*1000)/100; c = (n - (int16)a*1000 - (int16)b*100)/10; d = (n - (int16)a*1000 - (int16)b*100 - (int16)c*10); a += 48; b += 48; c += 48; d += 48; lcd_gotoxy(1,2); printf(lcd_putc,"PV:%c%c%c%c",a,b,c,d); } void hien_thi_pos_pv(unsigned int16 n){ unsigned int8 a,b,c,d; a = n/1000; 64 b = (n - (int16)a*1000)/100; c = (n - (int16)a*1000 - (int16)b*100)/10; d = (n - (int16)a*1000 - (int16)b*100 - (int16)c*10); a += 48; b += 48; c += 48; d += 48; lcd_gotoxy(10,2); printf(lcd_putc,"PV:%c%c%c%c",a,b,c,d); } void pid(){ bit_pid = 0; err = pulse_set - pulse; p_part = kp*err; d_part = kd*(err - pre_err); if(d_part > 0)d_part = 0; if(d_part < -1023)d_part = -1023; i_part += (ki*sample_time*err)/1000; if(i_part > 1023)i_part = 1023; output += p_part + i_part + d_part; if(output >= 1023){output = 1023;}; if(output = 200){ coun_speed = 0; speed = temp_speed; temp_speed = 0; bit_speed = 1; } } #INT_TIMER0 void ngat_timer0(){ SET_TIMER0(255); temp_pulse ++; temp_speed ++; coun_pv_pos ++; if(coun_pv_pos >= encoder){ coun_pv_pos = 0; pv_pos ++; if(pv_pos >= data_pos){ SET_PWM1_DUTY(0); output_bit(dir_t,0); output_bit(dir_n,0); bit_start = 0; }; }; } 66 ... tốt nghiệp là: ? ?Thiết kế chế tạo mạch điều khiển động DC Servo sử dụng sóng RF? ?? Đề tài nhằm hướng tới mục đích đưa mạch chế tạo vào đời sống, điều khiển vật dụng có sử dụng động DC Servo với công... án nghiên cứu thiết kế chế tạo mạch điều khiển động DC Servo từ xa, sử dụng module thu phát sóng RF Mạch sử dụng vi điều khiển PIC 16F877A mạch cầu H có Chip Drive L298 để điều khiển tốc độ,... điểm người ta sử dụng động Servo DC không chổi than 1.2.2 Động Servo DC chổi than Động Servo DC khơng có chổi than sử dụng phổ biến máy công cụ điều khiển số Cấu trúc giống động Servo DC chổi than

Ngày đăng: 01/08/2021, 10:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w