THIẾT KẾ MẠCH ĐIỀU KHIỂN ĐÔNG CƠ BƯỚC HỆ THỐNG NHÚNG( LẤY CODE PIC + MẠCH MÔ PHỎNG PROTEUS+ VIDEO THUYẾT MINH LIÊN HỆ ZALO 0327697318)THIẾT KẾ MẠCH ĐIỀU KHIỂN ĐÔNG CƠ BƯỚC HỆ THỐNG NHÚNG( LẤY CODE PIC + MẠCH MÔ PHỎNG PROTEUS+ VIDEO THUYẾT MINH LIÊN HỆ ZALO 0327697318)
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BÁO CÁO TIỂU LUẬN Môn học: HỆ THỐNG NHÚNG Đề tài: THIẾT KẾ MẠCH ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC GVHD: T.S TĂNG THỊ CẨM NHUNG SVTH1: BẰNG VĂN PHONG MSSV: K175520114105 SVTH2: CAO VĂN QUYẾT MSSV: K175520114042 Thái Nguyên - năm 2021 MỤC LỤC CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI .4 Đặt vấn đề Mục đích đề tài a Đối tượng phạm vi nghiên cứu .4 b Phương hướng thực CHƯƠNG 2: XÂY DỰNG SƠ ĐỒ KHỐI Tóm tắt đề tài Sơ đồ khối Chức khối CHƯƠNG 3: THIẾT KẾ SƠ ĐỒ NGUYÊN LÝ Khối hiển thị Khối Driver Khối nguồn 13 Khối Xử Lý 13 Khối chấp hành (Động bước) 15 Sơ đồ mạch nguyên lý 16 Code chương trình 18 Cách vận hành .24 CHƯƠNG 4: KẾT LUẬN 25 TÀI LIỆU THAM KHẢO 26 SVTH: Bằng Văn Phong – Cao Văn Quyết Trang | DANH MỤC HÌNH ẢNH Hình 1: Sơ đồ khối Hình 2: Màn hình LCD 16x2 Hình 3: IC L297 Hình 4: Thơng số kỹ thuật IC L297 10 Hình 5: IC L298 11 Hình 6: Sơ đồ chân IC L298 .12 Hình 7: Sơ đồ lượng sử dụng mạch 13 Hình 8: Động bước đơn cực 15 Hình 9: Sơ đồ nguyên lý mạch 16 Hình 10: PCB Mạch in 17 Hình 11: 3D mơ 17 Hình 12: Lưu đồ thuật tốn điều khiển 18 SVTH: Bằng Văn Phong – Cao Văn Quyết Trang | CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI Đặt vấn đề Ngày kỹ thuật vi điều khiển trở nên quen thuộc ngành kỹ thuật dân dụng Các vi điều khiển có khả xử lý hoạt động phức tạp mà cần chip vi mạch nhỏ, thay mơ hình điều khiển lớn phức tạp mạch điện gọn nhẹ, dễ dàng thao tác sử dụng Vi điều khiển khơng góp phần vào kỹ thuật điều khiển mà cịn góp phần to lớn vào việc phát triển thơng tin Chính lý trên, việc tìm hiểu, khảo sát vi điều khiển điều mà sinh viên ngành điện mà đặc biệt chuyên ngành kỹ thuật điện - điện tử phải quan tâm Đó nhu cầu cần thiết với sinh viên, đề tài thực đáp ứng nhu cầu Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng đươc lại điều phức tạp Phần cơng việc xử lý phụ thuộc vào người, chương trình hay phần mềm Nếu khơng có tham gia người hệ thống vi điều khiển vật vơ tri Do nói đến vi điều khiển giống máy tính bao gồm phần phần cứng phần mềm Mặc dù vi điều khiển bước dài để tiếp cận với kỹ thuật việc có sớm chiều Để tìm hiểu vi điều khiển cách khoa học mang lại hiệu cao làm tản cho việc xâm nhập vào hệ thống tối tân Việc trang bị kiến thức vi điều khiển cho sinh viên cần thiết Xuất phát từ thực tiển em đến định thực đề tài Thiết kế mạch điều khiển động bước sử dụng PIC 16F877A nhằm đáp ứng nhu cầu ham muốn học hỏi thân hiểu sâu vi điều khiển PIC Mục đích đề tài Lập trình PIC 16F877A, thiết kế mạch điều khiển động bước Đối tượng phạm vi nghiên cứu Xây dựng mạch điều khiển động bước bước theo phương pháp sử dụng độ rộng xung., sử dụng PIC 16F877A vi điều khiển trung tâm Dùng chương trình CCS lập trình C biên dịch chương trình Sử dụng khối nút nhấn gồm nút để điều khiển trạng thái động bước: nút để điều khiển động quay thuận quay nghịch Trang | nút để điều khiển động tăng tốc giảm tốc nút để điều khiển động bước hoạt động chế độ full bước hay nửa bước phím Stop để dừng động Hiển thị tốc độ trạng thái dùng hình LCD 16x2, lập trình chế độ bit (sử dụng chân để nhận tín hiệu từ PIC) Sử dụng hai kênh PWM vi điều khiển PIC 16F877A thay đổi tần số để điều khiển tốc độ động Sử dụng IC L298 IC L297 làm driver điều khiển Trang | CHƯƠNG 2: XÂY DỰNG SƠ ĐỒ KHỐI Tóm tắt đề tài a) Mục đích Sử dụng vi điều khiển Pic 16f877A thiết kế mạch điều khiển động bước b) Yêu cầu - Điều khiển động bước quay thuận, quay ngược, tăng tốc, giảm tốc - Hiển thị thông số trạng thái lên hình LCD 16X2 Mạch đơn giản, nhỏ gọn, dễ dàng thao tác, dễ dàng sử dụng c) Chức - Điều khiển động bước hai chế độ làm việc quay toàn bước quay nửa bước Điều khiển động bước quay thuận quay ngược Điều khiển động bước tăng tốc giảm tốc Hiển thị trạng thái động lên hình LCD 16x2 d) INPUT/OUPUT INPUT: Tín hiệu từ nút nhấn OUTPUT: o Hiển thị lên LCD 16x2 o Xung điều khiển động bước Sơ đồ khối Trang | Hình 1: Sơ đồ khối Chức khối a) Khối nguồn: Có nhiệm vụ cung cấp nguồn chiều cho hệ thống Nguồn chiều lấy từ pin động có cơng suất nhỏ Với động có cơng suất lớn dùng nguồn điện chỉnh lưu từ nguồn xoay chiều b) Khối hiển thị: Hiển thị trạng thái thơng số trạng thái c) Khối Driver: Có nhiệm vụ cấp nguồn điện điều chỉnh để đưa vào động Nó lấy điện từ nguồn cung cấp xung điều khiển từ khối điều khiển để tạo dòng điện cấp cho động hoạt động d) Khối xử lý: Đây khối điều khiển logic Có nhiệm vụ tạo tín hiệu điều khiển động Khối logic nguồn xung, hệ thống mạch điện tử Nó tạo xung điều khiển Động bước điều khiển theo bước theo nửa bước e) Trang | CHƯƠNG 3: THIẾT KẾ SƠ ĐỒ NGUN LÝ Khối hiển thị Màn hình LCD có chức hiển thị trạng thái hoạt động thông số trạng thái động bước Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) sử dụng nhiều ứng dụng VĐK LCD có nhiều ưu điểm so với dạng hiển thị khác: Nó có khả hiển thị kí tự đa dạng, trực quan (chữ, số kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn tài nguyên hệ thống giá thành rẽ … Thông số kĩ thuật mà hình LCD 1602: - Điện áp MAX: 7V - Điện áp MIN: - 0,3V - Điện áp mức thấp: 2.4 - Hoạt động ổn định: 2.7-5.5V - Dòng điện cấp nguồn: 350uA - 600uA - Nhiệt độ hoạt động: - 30 - 75 độ C Hình 2: Màn hình LCD 16x2 Khi sản xuất LCD, nhà sản xuất tích hợp chíp điều khiển (HD44780) bên lớp vỏ đưa chân giao tiếp cần thiết Các chân đánh số thứ tự đặt tên hình Chức chân LCD 1602: - Chân số - VSS: chân nối đất cho LCD nối với GND mạch điều khiển Trang | - Chân số - VDD: chân cấp nguồn cho LCD, nối với VCC=5V mạch điều khiển Chân số - VE: điều chỉnh độ tương phản LCD Chân số - RS: chân chọn ghi, nối với logic "0" logic "1": o Logic “0”: Bus DB0 - DB7 nối với ghi lệnh IR LCD (ở chế độ “ghi”- write) nối với đếm địa LCD (ở chế độ “đọc” - read) o Logic “1”: Bus DB0 - DB7 nối với ghi liệu DR bên - LCD Chân số - R/W: chân chọn chế độ đọc/ghi (Read/Write), nối với logic “0” để ghi nối với logic “1” đọc Chân số - E: chân cho phép (Enable) Sau tín hiệu đặt lên bus DB0-DB7, lệnh chấp nhận có xung cho phép chân sau: o Ở chế độ ghi: Dữ liệu bus LCD chuyển vào ghi bên phát xung (high-to-low transition) tín hiệu chân E o Ở chế độ đọc: Dữ liệu LCD xuất DB0-DB7 phát - - cạnh lên (low-to-high transition) chân E LCD giữ bus đến chân E xuống mức thấp Chân số đến 14 - D0 đến D7: đường bus liệu dùng để trao đổi thơng tin với MPU Có chế độ sử dụng đường bus là: Chế độ bit (dữ liệu truyền đường, với bit MSB bit DB7) Chế độ bit (dữ liệu truyền đường từ DB4 tới DB7, bit MSB DB7) Chân số 15 - A: nguồn dương cho đèn Chân số 16 - K: nguồn âm cho đèn Khối Driver a) IC L297 Hình 3: IC L297 L297 IC điều khiển động thường dùng ứng dụng điện tử Nó có chức tạo pha tín hiệu tín hiệu điều khiển tương ứng với pha động bước lưỡng cực pha động bước đơn cực Trang | IC L297 chế tạo để dùng với mạch cầu đôi (IC tích hợp linh kiện rời) ứng dụng điều khiển động bước Các tín hiệu vào xung clock, tín hiệu chiều quay, chế độ quay xuất tín hiệu điều khiển phần cơng suất Ngun lý làm việc L297 thực chất chuyển tín hiệu điều khiển logic đơn giản thành thành tín hiệu điều khiển pha động phù hợp Thông số kỹ thuật: Hình 4: Thơng số kỹ thuật IC L297 b) IC L298 Trang | Nguyên lí hoạt động thành phần mạch: Hình 6: Sơ đồ chân IC L298 - OUT 1, OUT đầu tương ứng kết nối động - OUT 3, OUT đầu tương ứng kết nối động Trên IC có chân ENA, IN1, IN2, IN3, IN4, ENB với chức điều khiển tương ứng với động kết nối với vị trí OUT 1,2 OUT 3,4 ENB: có chức điều khiển tốc độ động kết nối vào vị trí OUT 3, OUT ENA: có chức điều khiển tốc độ động kết nối vào vị trí OUT 1, OUT IN1, IN2, IN3, IN4: chân kết nối tín hiệu với VĐK Arduino, … để điều khiển động xoay Nguyên tắc hoạt động IN1, IN2 IN3, IN4 sau: cấp tín hiệu vào IN1 IN2 chênh lệch nhau, mức cao/thấp điều khiển động dừng/quay (có TH cấp là: IN1 - cao IN2 - thấp IN1 - thấp IN2 - cao) Cấp tín hiệu vào IN1 = IN2 động dừng quay Tương tự với cặp lại IN3 IN4 hoạt động tương tự - Trang | Khối nguồn Hình 7: Sơ đồ lượng sử dụng mạch - Khối chấp hành sử dụng động bước 42BYGH47-401A góc bước 1.8 độ với thông số Uđm = 12VDC, Iđm= 3A Do cơng suất tối đa động bước P= 36 W Khối xử lý sử dụng vi điều khiển PIC 16f877a với mức điện áp V Khối điều khiển sử dụng hai IC L297 với mức điện áp V, L298 với mức điện áp V Khối hiển thị sử dụng LCD 16x2 với điện áp sử dụng V Qua nhóm chúng em lựa chọn sử dụng adapter 12V - 5A IC ổn áp 7805 để cấp nguồn cho hệ thống Khối Xử Lý Khối xử lý sử dụng vi điều khiển PIC16f877A có chức tạo nhận tín hiệu gửi tới từ nút bấm, xử lý xuất xung PWM để điều khiển động Phương pháp PWM biết đến từ năm 1970 cải thiện hạn chế phương pháp truyền thống, nhiên mạch điều khiển dùng linh kiện rời BJT vi mạch số nên mạch điện phức tạp, khó đạt độ xác cao Trang | Ngày việc sử dụng vi mạch khả lập trình vi xử lý thiết bị điều khiển trở thành xu quan trọng, mang lại hiệu cao, tốc độ xử lý nhanh, độ xác cao, mạch phần cứng tinh gọn, giảm giá thành sản phẩm, hạn chế rủi ro Nguyên tắc ản phương pháp điều khiển PWM giữ nguyên giá trị điện áp thay đổi thời gian đặt điện áp vào động Điều có nghĩa, với tần số đóng ngắt công tắc đủ lớn, thời gian cấp điện áp vào động lâu điện áp trung bình cao, ngược lại thời gian cấp điện vào động ngắn điện áp trung bình giảm Như vậy, PWM kỹ thuật so sánh tỷ lệ phần trăm điện áp nguồn cách đóng ngắt nhanh nguồn điện cấp vào động tạo tín hiệu xung, với độ rộng xung (thời gian cấp điện áp) xác định tạo điện áp trung bình xác định Vi điều khiển PIC16F877A có hỗ trợ kênh điều xung phần cứng chân C1 (CCP2) C2(CCP1) sử dụng TIMER2 Khi khai báo điều chế xung PWM tần số độ rộng xung cụ thể vi điều khiển thực cơng việc xuất xung cách liên tục tự động có thay đổi giá trị độ rộng xung Các hàm hỗ trợ tạo xung PWM CCS: setup_timer_2 (mode, period, postscale) // hàm thiết lập timer - mode: T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16 - period: 255 - postscale: setup_ccp1(mode) setup_ccp2(mode) // hàm thiết lập chế độ PWM mode: - CCP_PWM: chọn chế độ PWM - CCP_OFF: tắt chế độ PWM set_pwm1_duty(value) set_pwm2_duty(value) // hàm thiết lập giá trị PWM Nếu value giá trị kiểu int bit: Nếu value giá trị long int 16 bit: Khối chấp hành (Động bước) Động bước loại động điện có nguyên lý ứng dụng khác biệt với đa số động điện thông thường Chúng thực chất động Trang | đồng dùng để biến đổi tín hiệu điều khiển dạng xung điện rời rạc thành chuyển động góc quay chuyển động rơto có khả cố định rơto vào vị trí cần thiết Các thơng số động gồm có: Bước góc, sai số bước góc, mơmen kéo, mơmen hãm, mơmen làm việc Đối với hệ điều khiển động bước, ta thấy hệ thống đơn giản khơng có phần tử phản hồi Điều có động bước q trình hoạt động khơng gây sai số tích lũy, sai số động sai số chế tạo Việc sử dụng động bước đem lai độ xác chưa cao ngày sử dụng phổ biến Vì cơng suất độ xác bước góc ngày cải thiện Nguyên tắc điều khiển động bước Động bước đơn cực, (có thể động vĩnh cửu động hỗn hợp) có 5,6 dây thường quấn sơ đồ Khi dùng, đầu nối trung tâm thường nối vào cực dương nguồn cấp, hai đầu lại mấu nối đất để đảo chiều từ trường tạo quận Hình 8: Động bước đơn cực Tín hiệu điều khiển - - Điều khiển đủ bước (full step): Winding 1a 1000100010001000100010001 Winding 1b 0010001000100010001000100 Winding 2a 0100010001000100010001000 Winding 2b 0001000100010001000100010 time —> Winding 1a 1100110011001100110011001 Winding 1b 0011001100110011001100110 Winding 2a 0110011001100110011001100 Winding 2b 1001100110011001100110011 time —> Điều khiển nửa bước (half step) Trang | Winding 1a 11000001110000011100000111 Winding 1b 00011100000111000001110000 Winding 2a 01110000011100000111000001 Winding 2b 00000111000001110000011100 time —> Sơ đồ mạch nguyên lý Hình 9: Sơ đồ nguyên lý mạch Trang | Hình 10: PCB Mạch in Hình 11: 3D mơ Trang | Code chương trình Hình 12: Lưu đồ thuật toán điều khiển Trang | a) Code chương trình #include #use delay(clock=20M) //pin LCD #define LCD_ENABLE_PIN PIN_B2 #define LCD_RS_PIN PIN_B0 #define LCD_RW_PIN PIN_B1 #define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B5 #define LCD_DATA6 PIN_B6 #define LCD_DATA7 PIN_B7 //LibraryLCD #include //Pin L297 #define ENBLE 64 #define HALF 65 #define DIR 66 #define PWM 67 //Pin Button #define tang 60 #define trai 61 #define phai 62 #define giam 63 #define stop 68 #define step 69 unsigned int16 a=0,td,hz=20 ,trang_thai=0; int st=0; #INT_TIMER0 void ngat_timer0(){ a++; if(a==td){ output_toggle(PWM); a=0; } set_timer0(218); } Trang | void kiem_tra_nut(){ td=1000/hz; if(!input(stop)){//nut STOP output_bit(ENBLE,0); disable_interrupts(INT_TIMER0|GLOBAL); trang_thai=0; while(!input(stop)){} } if(!input(trai)){//nut Quay Nguoc output_bit(ENBLE,1); enable_interrupts(INT_TIMER0|GLOBAL); output_bit(DIR,0); output_bit(HALF,1); trang_thai=2; while(!input(trai)){} } if(!input(phai)){//nut Quay thuan output_bit(ENBLE,1); enable_interrupts(INT_TIMER0|GLOBAL); output_bit(DIR,1); output_bit(HALF,1); trang_thai=1; while(!input(phai)){} } if(!input(giam)){ if(hz>1) hz-=2; td=1000/(hz); while(!input(giam)){} } if(!input(tang)){ if(hz