Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
2,82 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP KHẢOSÁTTHƯỚCQUANGHỌC & THIẾTKẾCHẾTẠOBỘHIỂNTHỊTỌAĐỘXYZCHOMÁYNC Họ tên sinh viên : CAO TRẦN NGỌC BẢO Ngành : ĐIỀU KHIỂN TỰ ĐỘNG Tháng 06/2013 KHẢOSÁTTHƯỚCĐOQUANG & THIẾTKẾCHẾTẠOBỘHIỂNTHỊTỌAĐỘXYZCHOMÁYNC Tác giả : CAO TRẦN NGỌC BẢO Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư ngành Điều Khiển Tự Động Giáo viên hướng dẫn : Th.s LÊ VĂN BẠN Tháng 06/2013 i LỜI CẢM ƠN Đầu tiên em xin cảm ơn Ban giám hiệu Trường Đại Học Nơng Lâm TP.HCM Ban chủ nhiệm khoa Cơ khí – Công nghệ Trường Đại HọcHọc Nông Lâm TP.HCM tạo điều kiện thuận lợi suốt thời gian em theo học trường Em xin cảm ơn quý thầy mơn Điều Khiển Tự Động nói riêng q thầy khoa Cơ khí – Cơng nghệ nói chung tận tình dạy dỗ, truyền đạt kiến thức, kinh nghiệm sống năm em theo học trường Em xin chân thành cảm ơn thầy Th.s Lê Văn Bạn tận tình hướng dẫn, bảo tạo điều kiện thuận lợi để em hoàn thành đề tài thời hạn Cuối em xin cảm ơn cha mẹ, người thân bạn bè động viên, giúp đỡ lúc khó khăn Em xin chân thành cảm ơn TP.Hồ Chí Minh, tháng 06 năm 2013 Sinh viên thực Cao Trần Ngọc Bảo ii TÓM TẮT Ngày với phát triển nhanh chóng khoa học kỹ thuật, loại máy móc tối tân, đại xuất ngày nhiều đa dạng chủng loại Trong loại máyNC sử dụng rộng rãi có ưu điểm độ xác cao cải thiện đáng kể suất lao động Tuy nhiên loại máyNC nước ta thường phải nhập từ nước ngồi, giá thành cao Trong máyNC đại ngày nay, người ta sử dụng thướcđoquanghọc thay thướcđo chia vạch máyNC kỷ trước Thướcđoquanghọc có nhiều ưu so với thướcđo chia vạch, : độ xác cao, sai số thấp, giao tiếp máy người dễ dàng hơn… Do em chọn đề tài “Khảo sátthướcđoquangthiếtkếchếtạohiểnthịtọađộ trục XYZ”, với mục đích vận dụng tốt kiến thức học, thứ hai góp phần giúp cho việc giám sát, theo dõi máyNC thao tác dễ dàng thân thiện với người sử dụng Đề tài thực Bộ mơn Điều Khiển Tự Động, khoa Cơ khí – Công nghệ, trường Đại Học Nông Lâm TP.HCM từ ngày 28/02/2013 đến ngày 25/06/2013 Kết đạt : Chếtạo thành công hiểnthị trục tọađộ XYZ, kết cấu đơn giản, dễ sử dụng, kích thước nhỏ gọn Độ phân giải hiểnthị đạt µm Độ xác hiểnthị : +/-10 µm Mạch chạy ổn định, độ xác cao, tốc độ xử lý nhanh Giáo viên hướng dẫn Sinh viên thực Th.s Lê Văn Bạn Cao Trần Ngọc Bảo iii MỤC LỤC Trang CHƯƠNG : MỞ ĐẦU 1.1 Đặt vấn đề 1.2 Mục đích đề tài 1.2.1 Mục đích chung 1.2.2 Mục đích cụ thể 1.3 Hạn chế đề tài CHƯƠNG : TỔNG QUAN 2.1 Tổng quan thướcđoquanghọc 2.1.1 Một số máyNC thực tế 2.1.2 Một số hiểnthịthướcquang 2.1.3 Khái niệm chung 2.1.4 Cấu tạo .6 2.1.5 Phân loại 2.1.5.1 Theo nguyên lý đo dịch chuyển thướcquang 2.1.5.2 Độ phân giải 2.1.5.3 Số dây thước 2.2 Phương pháp hiểnthị LED đoạn .9 2.2.1 LED đoạn 2.2.2 Phương pháp quét LED đoạn 10 2.3 Tra cứu linh kiện điện tử 11 2.3.1 Ổn áp LM2576 – 5V 11 2.3.2 Ổn áp LD1117 – 3.3V .11 2.3.3 IC 74HC14 12 2.3.4 ULN2803 12 2.4 Nghiên cứu vi điều khiển ARM Cortex-M3 32bit 12 2.4.1 Giới thiệu dòng vi điều khiển ARM Cortex-M3 12 2.4.2 Tìm hiểu vi điều khiển STM32F100C8T6 14 iv 2.4.2.1 Tổng quan 14 2.4.2.2 Sơ đồ chân chức vi điều khiển STM32F100C8T6 15 2.4.2.3 Thanh ghi Timer/Counter chip ARM STM32f100C8T6 .16 2.5 Tìm hiểu phần mềm Keil ARM lập trình cho vi điều khiển ARM 16 2.6 Tìm hiểu phần mềm biên soạn chương trình Souce Insight 17 2.7 Chương trình SEGGER J-FLASH ARM nạp cho vi xử lý .18 2.8 Giới thiệu mạch nạp Cortex-M/R J-Link 19 CHƯƠNG : PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN 20 3.1 Địa điểm thời gian thực đề tài : 20 3.1.1 Địa điểm : 20 3.1.2 Thời gian : .20 3.2 Phương pháp nghiên cứu : .20 3.2.1 Chọn phương pháp thiếtkếhiểnthị .20 3.2.2 Phương pháp thiếtkế phần điện tử 20 3.3 Phương tiện thực : 21 3.3.1 Các thiết bị phần cứng .21 3.3.2 Các phần mềm sử dụng 21 CHƯƠNG : KẾT QUẢ - THẢO LUẬN 22 4.1 Sơ đồ khối đọc hiểnthị giá trị 22 4.2 Sơ đồ khối riêng cho trục tọađộ .22 4.3 Thực phần điện tử 23 4.3.1 Làm mạch nguồn 23 4.3.2 Mạch quét Led đoạn .24 4.3.3 Mạch xử lý xung từ Linear Encoder 24 4.3.4 Mạch xử lý .26 4.3.5 Mạch hiểnthị tổng hợp .27 4.4 Thực phần mềm .28 4.4.1 Sơ đồ đọc tín hiệu Encoder .28 4.4.2 Sơ đồ quét led bảy đoạn 28 4.4.3 Lưu đồ giải thuật mạch đọc hiểnthị .29 v 4.5 Chương trình cho vi xử lý 30 4.6 Kiểm tra chạy thử 31 4.6.1 Kiểm tra hiểnthị 31 4.6.1.1 Phần điện tử 31 4.6.1.2 Phần khí 32 4.6.2 4.7 Chạy thử nghiệm hiểnthị .34 Khảo nghiệm 34 4.7.1 Mục đích khảo nghiệm 34 4.7.2 Phương pháp bố trí khảo nghiệm 34 4.7.3 Xử lý số liệu 37 4.8 Kết .37 4.9 Thảo luận 40 CHƯƠNG : KẾT LUẬN - ĐỀ NGHỊ .41 5.1 Kết luận 41 5.2 Đề nghị 41 TÀI LIỆU THAM KHẢO PHỤ LỤC vi DANH SÁCH CÁC HÌNH Trang Hình 2.1 Máy phay NC MAKINO hiệu FANUC M6 Hình 2.2 Máy phay NC Nhật Bản ……… Hình 2.3 MáyNC DIY Rules Hình 2.4 : Thướcquanghiểnthị Mitutoyo .5 Hình 2.5 : Thướcquanghiểnthị Jenix Hình 2.6 : Thướcquanghiểnthị Sterling Hình 2.7 : Cấu tạothướcđoquanghọc Hình 2.8 : Phương pháp phản xạ ánh sáng Hình 2.9 : Phương pháp giao thoa ánh sáng Hình 2.10 : Phương pháp cho ánh sáng truyền qua Hình 2.11 : Sơ đồ chân LED đoạn Hình 2.12 : Sơ đồ chân hình thực tế LM2576 – 5V 11 Hình 2.13 : Sơ đồ chân hình thực tế LD1117 3.3V 11 Hình 2.14 : Sơ đồ chân hình thực tế 74HC14 12 Hình 2.15 : Sơ đồ chân hình thực tế ULN2803 12 Hình 2.16 : Sơ đồ khối chung cấu trúc nhân ARM Cortex-M3 13 thiết bị ngoại vi 13 Hình 2.17 : Sơ đồ chân hình thực tế STM32F100C8T6 14 Hình 2.18 : Hoạt động đếm xung chếđộ encoder 16 Hình 2.19 : Cửa sổ phần mềm Keil ARM .17 Hình 2.20 : Cửa sổ phần mềm Source Insight .18 Hình 2.21 : Giao diện phần mềm J-Flash 19 Hình 2.22 : Mạch nạp Cortex-M/R J-Link 19 Hình 3.1 : Sơ đồ hệ thống hiểnthịthướcquang 20 vii Hình 4.1 : Sơ đồ nguyên lý mạch nguồn 5V 23 Hình 4.2 : Sơ đồ nguyên lý mạch nguồn 3.3V 23 Hình 4.3 : Sơ đồ nguyên lý mạch quét Led đoạn .24 Hình 4.4 : Sơ đồ nguyên lý mạch xử lý xung 24 Hình 4.5 : Sơ đồ đấu dây thướcquang 26 Hình 4.6 : Sơ đồ nguyên lý mạch điều khiển 26 Hình 4.7 : Sơ đồ nguyên lý mạch đọc hiểnthị chung chohiểnthị 27 Hình 4.8 : Chương trình Source Insight 3.5 30 Hình 4.9 : Trình biên dịch Keil uVision ARM 4.20 30 Hình 4.10 : Board mạch in 31 Hình 4.11 : Board mạch in trục 31 Hình 4.12 : Mặt trước hiểnthị 32 Hình 4.13 : Mặt bên hiểnthị .32 Hình 4.14 : Bộhiểnthị trục XYZ sau hoàn thành 33 Hình 4.15 : Phần hiểnthị trục X .34 Hình 4.16 : Phần hiểnthị trục Y .34 Hình 4.17 : Phần hiểnthị trục Z 34 Hình 4.18 : Máy phay CNC Hình 4.19 : Thước chia vạch máy CNC 35 Hình 4.20 : Đồng hồ so 36 Hình 4.21 : Thướcquangđo trục X Hình 4.22 : Thướcquangđo trục Z .36 Hình 4.23 : Thướcquangđo trục Y .36 Hình 4.24 : Chi tiết hình chữ nhật phíp 38 Hình 4.25 : Chi tiết hình chữ nhật mica 39 viii DANH SÁCH CÁC BẢNG Trang Bảng Thông số kỹ thuật máy FANUC M6 3 Bảng Thông số kỹ thuật máy phay NC Nhật Bản 4 Bảng Thông số kỹ thuật máyNC DIY Rules 4 Bảng : Thông số thướcquang Mitutoyo . 5 Bảng : Thông số thướcquang Jenix 5 Bảng : Thông số thướcquang Sterling . 6 Bảng : Bảng mã LED đoạn Anode chung 9 Bảng : So sánh tính Timer/Counter . 16 Bảng : Thông số kỹ thuật thướcquang trục X 25 Bảng 10 : Thông số kỹ thuật thướcquang trục Y 25 Bảng 11 : Thông số kỹ thuật thướcquang trục Z 25 Bảng 12 : Số liệu khảo nghiệm lần 1 37 Bảng 13 : Số liệu khảo nghiệm lần 2 38 Bảng 14 : Số liệu khảo nghiệm lần 3 39 Bảng 15 : Số liệu khảo nghiệm lần 4 40 ix Cách tiến hành Vì điều kiện giới hạn nên ta khảo nghiệm trục tọađộ (trục Y) Đầu tiên ta nhấn nút reset để hiểnthị trở giá trị 000 000,thước chia vạch đồng hồ so vị trí zero Tiếp theo ta quay tay thước chia vạch đến giá trị đó, bàn trục Y dịch chuyển đoạn Sự dịch chuyển bàn trục Y dẫn đến thướcđoquang dịch chuyển đoạn tương ứng, hiểnthị nhận tín hiệu dịch chuyển từ thướcquanghiểnthị giá trị quãng đường dịch chuyển Đồng thời ta nhận kết thể đồng hồ so So sánh thông số nhận từ thước chia vạch máy CNC, hiểnthị đồng hồ so để đánh giá, thảo luận đồ xác hiểnthị 4.7.3 Xử lý số liệu Với số liệu thu trên, ta tiến hành xử lý số liệu để tính giá trị sai số trung bình lần đo rút kết luận 4.8 Kết Khảo nghiệm lần Đơn vị tính : mm Lần Bộhiểnthịđotọađộ trục Y 0.050 0.400 0.880 1.120 1.415 1.550 2.125 3.025 4.170 10 4.595 Đồng hồ so Thước chia vạch 0.05 0.39 0.87 1.13 1.43 1.56 2.12 3.03 4.18 4.61 0.05 0.40 0.88 1.12 1.42 1.55 2.13 3.03 4.17 4.60 Bảng 12 : Số liệu khảo nghiệm lần Sai số trung bình đồng hồ so so với thước chia vạch : 0.009 mm Sai số trung bình hiểnthị so với thước chia vạch: 0.002 mm Sai số trung bình hiểnthị so với đồng hồ so : 0.009 mm 37 Khảo nghiệm lần Đơn vị tính : mm Lần Bộhiểnthịđotọađộ trục Y 0.095 0.230 0.700 1.005 1.245 1.920 2.430 3.225 3.660 10 4.340 Đồng hồ so Thước chia vạch 0.11 0.23 0.69 1.01 1.25 1.93 2.43 3.23 3.66 4.35 0.10 0.23 0.70 1.00 1.25 1.92 2.42 3.22 3.66 4.34 Bảng 13 : Số liệu khảo nghiệm lần Sai số trung bình đồng hồ so so với thước chia vạch : 0.007 mm Sai số trung bình hiểnthị so với thước chia vạch: 0.003 mm Sai số trung bình hiểnthị so với đồng hồ so : 0.006 mm Khảo nghiệm lần Phay tay chi tiết hình chữ nhật với dài rộng cao 57 x 27 x 0.2 mm Hình 4.24 : Chi tiết hình chữ nhật phíp 38 Đơn vi tính : mm Thước chia vạch Chiều dài 57.00 Chiều dài 57.00 Chiều rộng 27.00 Chiều rộng 27.00 Chiều cao Hiểnthị 57.000 57.000 27.000 27.000 0.200 Thước kẹp 56.70 56.70 26.80 26.70 0.30 Giá trị sai lệch 0.300 0.300 0.200 0.300 0.100 Bảng 14 : Số liệu khảo nghiệm lần Do trục Z máy phay CNC CREATOR EDM MODEL: CJ-530 khơng có thước chia vạch nên ta khơng lấy kích thước Nhận xét : Trong q trình phay chi tiết, có sai số máy CNC dao phay gây nên kích thước thật chi tiết có sai số lớn so với số liệu hiểnthị Khảo nghiệm lần Phay tay chi tiết hình chữ nhật với dài rộng cao 70 x 50 x mm Hình 4.25 : Chi tiết hình chữ nhật mica 39 Đơn vị tính : mm Thước chia vạch 70.00 70.00 50.00 50.00 HiểnthịThước kẹp Giá trị sai lệch Chiều dài 70.005 69.70 0.305 Chiều dài 70.000 69.71 0.290 Chiều rộng 50.000 49.71 0.290 Chiều rộng 50.005 49.71 0.295 Chiều cao 4.000 3.92 0.080 Bảng 15 : Số liệu khảo nghiệm lần Tương tự lần khảo nghiệm thứ 3, ta khơng lấy kích thước chiều cao thước chia vạch Nhận xét : lần khảo nghiệm thứ 3, sai số máy CNC dao phay nên kích thước thật chi tiết có sai số lớn so với số liệu hiểnthị 4.9 Thảo luận Từ kết qua lần khảo nghiệm, ta thấy hiểnthị có sai số nằm khoảng từ - 10µm, tốc độ xử lý nhanh, đáp ứng tốt yêu cầu đặt Tuy nhiên hiểnthị có số khuyết điểm sau : - Giá trị dịch chuyển lớn sai số hiểnthị nhiều - Phần mạch adapter dễ bị nhiễu, làm ảnh hưởng đến trình đọc xung từ linear encoder 40 CHƯƠNG KẾT LUẬN - ĐỀ NGHỊ 5.1 Kết luận Sau thời gian tìm hiểu, nghiên cứu số mẫu hiểnthịthị trường Tôi thiết kế, chếtạo thành công hiểnthị trục tọađộXYZ theo yêu cầu đề tài đặt Phần khí : thiếtkế - chếtạo mẫu hiểnthị gọn nhẹ, di chuyển dễ dàng, lắp đặt sử dụng đơn giản Phần điện tử: mạch điện tương đối nhỏ gọn, giao tiếp tốt, tương đối ổn định Chương trình : đáp ứng yêu cầu đặt ra, dựa sở đọc xung từ linear encoder, xử lý, tính tốn hiểnthị giá trị đọc Giá trị hiểnthị : -999.999 đến 999.999 mm Giá trị nhỏ : µm Bộhiểnthị có độ xác +/-10 µm 5.2 Đề nghị Do thời gian khơng cho phép nên đề tài số hạn chế Sau đề nghị giúp cho đề tài có hiệu hồn chỉnh : Thiếtkế thêm nhiều nút nhấn chức năng, giúp hiểnthị đa Thiếtkế lại mạch adapter lọc nhiễu tốt, tránh làm ảnh hưởng tới việc đọc xung từ linear encoder Thêm phần tính vận tốc giúp hiểnthị đa Mở rộng thêm cổng kết nối hiểnthị với thiết bị ngoại vi khác 41 TÀI LIỆU THAM KHẢO Trần Văn Địch, 2005 Công nghệ CNC Nhà xuất Khoa Học Kỹ Thuật Dương Minh Trí, 2004 Linh kiện quang điện tử Nhà xuất Khoa Học Kỹ Thuật Phạm Minh Hà, 1997 Kỹ thuật mạch điện tử Nhà xuất Khoa Học Kỹ Thuật Cấu trúc, lập trình ARM Cortex-M3 (http://www.arm.vn) Tra cứu datasheet vi điều khiển ARM, ULN2803… http://www.alldatasheet.com 42 PHỤ LỤC Chương trình điều khiển INCLUDED FILES * **************************************************************** **************************************************************** ***** */ #include "stm32f10x.h" /* **************************************************************** **************************************************************** ***** * PRIVATE DEFINE * **************************************************************** **************************************************************** ***** */ /* **************************************************************** **************************************************************** ***** * DATA TYPE DEFINE * **************************************************************** **************************************************************** ***** 43 */ /* **************************************************************** **************************************************************** ***** * PRIVATE VARIABLES * **************************************************************** **************************************************************** ***** */ GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; NVIC_InitTypeDef NVIC_InitStructure; TIM_ICInitTypeDef TIM_ICInitStructure; unsigned int mang[10] = {504, 48, 728, 632, 816, 872, 1000, 56, 1016, 888}; unsigned char quetled[6] = {1, 2, 4, 8, 16, 32}; long enc; int tran=-1; char quet; int lap; int bien; long dem=-100; unsigned char mangso[6]; char dau; int tru1, tru2; long dem1; /* 44 **************************************************************** **************************************************************** ***** * LOCAL FUNCTIONS * **************************************************************** **************************************************************** ***** */ /** * @brief Configures the different system clocks * @param None * @retval None */ void RCC_Configuration(void) { /* Setup the microcontroller system Initialize the Embedded Flash Interface, initialize the PLL and update the SystemFrequency variable */ //SystemInit(); /* Enable GPIOB clocks */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //Cap xung clock cho GPIOB hoat dong RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //Cap xung clock cho GPIOA hoat dong RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); } /** * @brief Inserts a delay time with resolution is 10 milisecond * @param nCount: specifies the delay time length 45 * @retval None */ void Delay_ms( IO uint32_t num) { IO uint32_t index = 0; for(index = (4000 * num); index != 0; index ) { } } void Delay_us( IO uint32_t num) { IO uint32_t index2 = 0; /* default system clock is 72MHz */ for(index2 = (2 * num); index2 != 0; index2 ) { } } /** * @brief Configures GPIOA and GPIOB * @param None * @retval None */ void GPIO_Configuration(void) { GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_ 5|GPIO_Pin_11; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 46 GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_ 8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_ Pin_15; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure); } /* **************************************************************** **************************************************************** ***** * GLOBAL FUNCTIONS * **************************************************************** **************************************************************** ***** */ /** * @brief Main program * @param None * @retval None */ void Timer6_Configuration(void) { TIM_TimeBaseInitStructure.TIM_Prescaler=24000; /* delay 1ms*/ 47 TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeBaseInitStructure.TIM_Period=2; TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM6, &TIM_TimeBaseInitStructure); /*Khai bao Timer6 dua tren cac du lieu tren*/ TIM_Cmd(TIM6, ENABLE); /*Enable Timer6*/ TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);/*Enable Interrupt cua Timer6 */ } void Timer3_Configuration(void) { TIM_TimeBaseInitStructure.TIM_Prescaler=0; TIM_TimeBaseInitStructure.TIM_Period=0xFFFF; TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure); TIM_ICInitStructure.TIM_Channel=TIM_Channel_1|TIM_Channel_2; TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Falling; TIM_ICInitStructure.TIM_ICFilter=15; TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI; TIM_ICInit(TIM3, &TIM_ICInitStructure); TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Falling, TIM_ICPolarity_Falling); TIM_Cmd(TIM3,ENABLE); TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);/*Enable Interrupt cua Timer3 */ TIM_SetCounter(TIM3, 0); } void NVIC_Configuration(void) 48 { NVIC_InitStructure.NVIC_IRQChannel = TIM6_DAC_IRQn;/*Timer6 global interrupt*/ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;/*co 15 muc uu tien tu den 15; cao nhat =1; thap nhat=15*/ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;/*co 15 muc uu tien tu den 15; cao nhat =1; thap nhat=15*/ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;/*Timer3 global interrupt*/ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;/*co 15 muc uu tien tu den 15; cao nhat =1; thap nhat=15*/ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;/*co 15 muc uu tien tu den 15; cao nhat =1; thap nhat=15*/ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); } void TIM6_DAC_IRQHandler(void) { if (TIM_GetFlagStatus(TIM6, TIM_FLAG_Update)==SET) { TIM_ClearFlag(TIM6, TIM_FLAG_Update); //cho code o day if(dem5) quet=0; } } void TIM3_IRQHandler(void) { if (TIM_GetFlagStatus(TIM3, TIM_FLAG_Update)==SET) { TIM_ClearFlag(TIM3, TIM_FLAG_Update); enc = TIM_GetCounter(TIM3); if (enc == 65535) { tran ; } if(enc==0) { tran++; } } 50 } Chương trình int main(void) { RCC_Configuration(); GPIO_Configuration(); Timer6_Configuration(); NVIC_Configuration(); Timer3_Configuration(); while (1) { enc = TIM_GetCounter(TIM3); dem= (enc + tran * 65536)*5; if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12)==1) { TIM_SetCounter(TIM3, 0); tran=0; Delay_ms(500); } } } 51 ...KHẢO SÁT THƯỚC ĐO QUANG & THIẾT KẾ CHẾ TẠO BỘ HIỂN THỊ TỌA ĐỘ XYZ CHO MÁY NC Tác giả : CAO TRẦN NGỌC BẢO Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư ngành Điều Khiển Tự Động Giáo... số máy NC có thị trường Tìm hiểu loại thước quang hiển thị vài hãng sản xuất Tìm hiểu nguyên lý hoạt động thước quang Từ tiến hành thiết kế, chế tạo hiển thị trục XYZ ứng dụng thước đo quang. .. tiếp máy người dễ dàng hơn… Do em chọn đề tài Khảo sát thước đo quang thiết kế chế tạo hiển thị tọa độ trục XYZ , với mục đích vận dụng tốt kiến thức học, thứ hai góp phần giúp cho việc giám sát,