KHẢO SÁT THƯỚC QUANG HỌC THIẾT KẾ CHẾ TẠO BỘ HIỂN THỊ TỌA ĐỘ XYZ CHO MÁY NC

61 184 0
  KHẢO SÁT THƯỚC QUANG HỌC   THIẾT KẾ CHẾ TẠO BỘ HIỂN THỊ TỌA ĐỘ XYZ   CHO MÁY NC

Đ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

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ẢO SÁT THƯỚC QUANG HỌC & THIẾT KẾ CHẾ TẠO BỘ HIỂN THỊ TỌA ĐỘ XYZ CHO MÁY NC 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Ả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 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ọc Họ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áy NC 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áy NC nước ta thường phải nhập từ nước ngồi, giá thành cao Trong máy NC đại ngày nay, người ta sử dụng thước đo quang học thay thước đo chia vạch máy NC kỷ trước Thước đo quang họ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á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, theo dõi máy NC 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ển thị 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ển thị đạt µm  Độ xác hiển thị : +/-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 đo quang học 2.1.1 Một số máy NC thực tế 2.1.2 Một số hiển thị thước quang 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ước quang 2.1.5.2 Độ phân giải 2.1.5.3 Số dây thước 2.2 Phương pháp hiển thị 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ết kế hiển thị .20 3.2.2 Phương pháp thiết kế 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ển thị 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ển thị 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ển thị .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ển thị 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ển thị .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áy NC DIY Rules Hình 2.4 : Thước quang hiển thị Mitutoyo .5 Hình 2.5 : Thước quang hiển thị Jenix Hình 2.6 : Thước quang hiển thị Sterling Hình 2.7 : Cấu tạo thước đo quang họ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ển thị thước quang 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ước quang 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ển thị chung cho hiển thị 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ển thị 32 Hình 4.13 : Mặt bên hiển thị .32 Hình 4.14 : Bộ hiển thị trục XYZ sau hoàn thành 33 Hình 4.15 : Phần hiển thị trục X .34 Hình 4.16 : Phần hiển thị trục Y .34 Hình 4.17 : Phần hiển thị 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ước quang đo trục X Hình 4.22 : Thước quang đo trục Z .36 Hình 4.23 : Thước quang đ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áy NC DIY Rules    4  Bảng : Thông số thước quang Mitutoyo  . 5  Bảng : Thông số thước quang Jenix   5  Bảng : Thông số thước quang 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ước quang trục X   25  Bảng 10 : Thông số kỹ thuật thước quang trục Y   25  Bảng 11 : Thông số kỹ thuật thước quang 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ển thị 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 đo quang dịch chuyển đoạn tương ứng, hiển thị nhận tín hiệu dịch chuyển từ thước quang hiển thị 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ển thị đồng hồ so để đánh giá, thảo luận đồ xác hiển thị 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ển thị đo tọ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ển thị so với thước chia vạch: 0.002 mm Sai số trung bình hiển thị 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ển thị đo tọ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ển thị so với thước chia vạch: 0.003 mm Sai số trung bình hiển thị 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ển thị 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ển thị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ển thị 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ển thị 4.9 Thảo luận Từ kết qua lần khảo nghiệm, ta thấy hiển thị 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ển thị có số khuyết điểm sau : - Giá trị dịch chuyển lớn sai số hiển thị 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ển thị thị trường Tôi thiết kế, chế tạo thành công hiển thị trục tọa độ XYZ theo yêu cầu đề tài đặt  Phần khí : thiết kế - chế tạo mẫu hiển thị 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ển thị giá trị đọc  Giá trị hiển thị : -999.999 đến 999.999 mm  Giá trị nhỏ : µm  Bộ hiển thịđộ 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ết kế thêm nhiều nút nhấn chức năng, giúp hiển thị đa  Thiết kế 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ển thị đa  Mở rộng thêm cổng kết nối hiển thị 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,

Ngày đăng: 26/02/2019, 13:37