Vi điều khiển - Mạch, code đầy đủ
LỜI NÓI ĐẦU 2
CHƯƠNG 1: GIỚI THIỆU TỔNG QUÁT VỀ ĐỀ TÀI 3
1.1. Nhiệm vụ của đề tài 3
1.2. Sơ đồ khối hệ thống 3
1.3. Chức năng từng khối 3
VI ĐIỀU KHIỂN 3
CHƯƠNG 2 : THIẾT KẾ PHẦN CỨNG 8
2.1. Mạch nguồn 8
2.2. Khối cách ly 8
2.3. Khối điều khiển 10
2.4. Mạch cấp nguồn động cơ 11
2.5. Khối công suất 11
2.6. Khối cảm biến 12
CHƯƠNG 3 : THIẾT KẾ PHẦN MỀM 14
3.1. Sơ đồ khối 14
3.2 Chương trình : 20
LỜI NÓI ĐẦU
Cơ điện tử là một trong những nghành học mới ở nước ta, trong giai đoạn công nghiệp hóa,hiện đại hóa đất nước ngày nay và trong tương lai nó đã và đang khẳng định được vai trò quan trọng của mình.Cơ điện tử là sự kết hợp của ba chuyên nghành là cơ khí, tin học và điện tử mà sản phẩm của nó là một hệ thống tự động hóa góp phần tăng năng suất và giải phóng sức lao động của con người.
Kĩ thuật vi điều khiển là một môn học của nghành cơ điện tử. Nó được ứng dụng trong nhiều lĩnh vực sản xuất công nghiệp, tự động hóa .Kĩ thuật vi điều khiển có kiến trúc nhỏ gọn hơn nhiều so với kĩ thuật số do nó được tích hợp một cách tinh vi và có khả năng lập trình được nên việc thay đổi giải thuật điều khiển sẽ dễ dàng hơn.
Đề tài mà em thực hiện ở đây là sử dụng vi điều khiển để điều khiển rôbốt bằng động cơ bước chuyển động theo ý muốn của người điều khiển, có kết hợp cảm biến vật thể tránh vật cản.
Nội dung Đồ án bao gồm :
Chương 1 : Giới Thiệu Tổng Quát Về Đề Tài .
Chương 2 : Thiết kế phần Cứng.
Chương 3 : Thiết Kế Phần Mềm.
Qua nổ lực nghiên cứu của bản thân cùng với sự hướng dẫn của thầy giáo Th. Lê Xứng em đã hoàn thành đồ án này.
Với khoảng thời gian có hạn cũng như kiến thức em còn hạn chế nên hệ thống này hoạt động chưa được tối ưu và cũng không thể tránh khỏi những thiếu sót .Em kính mong thầy thông cảm, giúp đỡ và chỉ bảo cho em thêm những kinh nghiệm quý báu để có thể phát triển đề tài .
Sinh Viên Thực Hiện
Nguyễn Văn Nam
22 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3021 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Vi điều khiển - Mạch, code đầy đủ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI NÓI ĐẦU
Cơ điện tử là một trong những nghành học mới ở nước ta, trong giai đoạn công nghiệp hóa,hiện đại hóa đất nước ngày nay và trong tương lai nó đã và đang khẳng định được vai trò quan trọng của mình.Cơ điện tử là sự kết hợp của ba chuyên nghành là cơ khí, tin học và điện tử mà sản phẩm của nó là một hệ thống tự động hóa góp phần tăng năng suất và giải phóng sức lao động của con người.
Kĩ thuật vi điều khiển là một môn học của nghành cơ điện tử. Nó được ứng dụng trong nhiều lĩnh vực sản xuất công nghiệp, tự động hóa .Kĩ thuật vi điều khiển có kiến trúc nhỏ gọn hơn nhiều so với kĩ thuật số do nó được tích hợp một cách tinh vi và có khả năng lập trình được nên việc thay đổi giải thuật điều khiển sẽ dễ dàng hơn.
Đề tài mà em thực hiện ở đây là sử dụng vi điều khiển để điều khiển rôbốt bằng động cơ bước chuyển động theo ý muốn của người điều khiển, có kết hợp cảm biến vật thể tránh vật cản.
Nội dung Đồ án bao gồm :
Chương 1 : Giới Thiệu Tổng Quát Về Đề Tài .
Chương 2 : Thiết kế phần Cứng.
Chương 3 : Thiết Kế Phần Mềm.
Qua nổ lực nghiên cứu của bản thân cùng với sự hướng dẫn của thầy giáo Th. Lê Xứng em đã hoàn thành đồ án này.
Với khoảng thời gian có hạn cũng như kiến thức em còn hạn chế nên hệ thống này hoạt động chưa được tối ưu và cũng không thể tránh khỏi những thiếu sót .Em kính mong thầy thông cảm, giúp đỡ và chỉ bảo cho em thêm những kinh nghiệm quý báu để có thể phát triển đề tài .
Sinh Viên Thực Hiện
Nguyễn Văn Nam
CHƯƠNG 1: GIỚI THIỆU TỔNG QUÁT VỀ ĐỀ TÀI
1.1. Nhiệm vụ của đề tài
- Thiết kế và thi công Robot sử dụng động cơ bước đáp ứng được các yêu cầu sau:
+ Điều khiển Robot theo ý muốn của người lập trình.
+ Điều khiển động cơ bước ở chế độ full step, half step.
+ Sử dụng phím nhấn đơn.
+ Kết hợp cảm biến vật thể tránh vật cản.
1.2. Sơ đồ khối hệ thống
VI ĐIỀU KHIỂN
PHÍM NHẤN
CẢM BIẾN
KHỐI CÔNG SUẤT
KHỐI CHUYỂN ĐỘNG
1.3. Chức năng từng khối
- Khối Vi điều khiển : Điều hành mọi hoạt động của hệ thống , vi điều khiển đọc chương trình từ ROM nội và thực thi lệnh.
- Khối cảm biến : Có nhiệm vụ nhận tín hiệu từ bên ngoài đưa về vi điều khiển xử lý.
- Khối phím nhấn : Bao gồm các phím nhấn đơn để điều khiển chương trình hoạt động theo ý muốn.
- Khối công suất : Có nhiệm vụ kích cuộn dây và khuếch đại dòng cung cấp điều khiển động cơ .
- Khối chuyển động : Bao Gồm 2 động cơ bước đơn cực có nhãn hiệu là :
23LM – C047V là động cơ 1,8 độ/bước
Hình ảnh:
Thông số kỹ thuật :
Cấu tạo động cơ bước :
Động cơ bước đơn cực quấn theo sơ đồ trên, một đầu nối trung tâm trên các cuộn dây, khi hoạt động nó được nối lên đầu dương của nguồn cấp, hai đầu còn lại của mỗi mẩu được nối đất để đảo chiều từ trường tạo bởi cuộn đó.
Mấu 1 nằm ở cực trên và dưới của stato, mấu 2 nằm ở 2 cực bên phải và bên trái động cơ. Động cơ bước được dùng là động cơ nam châm vĩnh cửu.
Có nhiều cách để điều khiển động cơ bước : Full step, Half step, Micro step
Full Step :
+ Kích 1 cuộn dây :
+ Kích 2 cuộn dây :
Half Step :
Nếu cấp điện đồng thời 2 pha bằng nhau thì motor sẽ dịch chuyển nửa bước và dừng tại vị trí lưng chừng giữa trung điểm 2 cực AB.
CHƯƠNG 2 : THIẾT KẾ PHẦN CỨNG
2.1. Mạch nguồn
2.2. Khối cách ly
2.3. Khối điều khiển
2.4. Mạch cấp nguồn động cơ
2.5. Khối công suất
2.6. Khối cảm biến
+ Phần phát :
+ Phần Thu :
CHƯƠNG 3 : THIẾT KẾ PHẦN MỀM
3.1. Sơ đồ khối
+ Sơ đồ khối chung :
+ FULL_STEP
+ HALF STEP :
+ CUA TRÁI , PHẢI
+ Chương trình con ngắt ngoài :
+ Chương trình con DELAY :
3.2 Chương trình :
/***** Chương trình điều khiển động cơ bước full_step , half_step có kết hợp cảm biến hồng ngoại tránh vật cản **********/
/**NGUYỄN NAM – LỚP 07CDT2 - KHOA CƠ KHÍ – ĐẠI HỌC BKDN***/
ORG 00H
LJMP MAIN
ORG 0003H
LJMP INT0_ISR
ORG 30H
/***********************************************/
MAIN :
MOV IE,#10000001B // Cho phép Timer0 hoạt động
JNB P1.2,START
JNB P1.5,HALF_STEP
JNB P1.4,FULL_STEP_2
JNB P1.6,CUA
LJMP MAIN
/************** KÍCH 2 CUỘN DÂY ********************/
START :
FULL_STEP_1 : // Chế độ chạy full_step kích 1 lần 2 cuộn dây
MOV P2,#11001100B
CALL DELAY
MOV P2,#01100110B
CALL DELAY
MOV P2,#00110011B
CALL DELAY
MOV P2,#10011001B
CALL DELAY
LJMP FULL_STEP_1
/***************KÍCH 1 CUỘN DÂY *************************/
FULL_STEP_2 : // Chế độ chạy Full_step kích 1 lần 1 cuộn dây
MOV R7,#100
N2 :
MOV P2,#10001000B
CALL DELAY
MOV P2,#01000100B
CALL DELAY
MOV P2,#00100010B
CALL DELAY
MOV P2,#00010001B
CALL DELAY
DJNZ R7,N2
LJMP MAIN
/******************** HALF STEP ***********************/
HALF_STEP:
MOV R7,#200
N3:
MOV P2,#10001000B
CALL DELAY
MOV P2,#11001100B
CALL DELAY
MOV P2,#01000100B
CALL DELAY
MOV P2,#01100110B
CALL DELAY
MOV P2,#00100010B
CALL DELAY
MOV P2,#00110011B
CALL DELAY
MOV P2,#00010001B
CALL DELAY
MOV P2,#10011001B
CALL DELAY
DJNZ R7,N3
LJMP MAIN
/*****CHƯƠNG TRÌNH CUA PHẢI , CUA TRÁI *******/
CUA :
MOV R7,#87
CUA_PHAI :
MOV P2,#00001100B
CALL DELAY
MOV P2,#00000110B
CALL DELAY
MOV P2,#00000011B
CALL DELAY
MOV P2,#00001001B
CALL DELAY
DJNZ R7,CUA_PHAI
MOV R7,#100
CHAY_THANG :
MOV P2,#11001100B
CALL DELAY
MOV P2,#01100110B
CALL DELAY
MOV P2,#00110011B
CALL DELAY
MOV P2,#10011001B
CALL DELAY
DJNZ R7,CHAY_THANG
MOV R7,#87
CUA_TRAI:
MOV P2,#11000000B
CALL DELAY
MOV P2,#01100000B
CALL DELAY
MOV P2,#00110000B
CALL DELAY
MOV P2,#10010000B
CALL DELAY
DJNZ R7,CUA_TRAI
LJMP MAIN
/************** CHUONG TRINH NGAT **********************/
INT0_ISR: // NGAT NGOAI TIMER 0
MOV R5,#100 //CHANGE THIS
N4 :
MOV P2,#10011001B
CALL DELAY
MOV P2,#00110011B
CALL DELAY
MOV P2,#01100110B
CALL DELAY
MOV P2,#11001100B
CALL DELAY
DJNZ R5,N4
MOV R5,#75
CUA_180 :
MOV P2,#10011100B
CALL DELAY
MOV P2,#00110110B
CALL DELAY
MOV P2,#01100011B
CALL DELAY
MOV P2,#11001001B
CALL DELAY
DJNZ R5,CUA_180
RETI
/***********************************************************/
DELAY : // GIÁ TRỊ DELAY CHO TOÀN CHƯƠNG TRÌNH
MOV R1,#25 // Muốn thay dổi tốc độ động cơ thì thay đổi giá trị delay
LOOP1:
MOV R2,#12 // GẦN 7 ms
LOOP2:
MOV R3,#10
DJNZ R3,$
DJNZ R2,LOOP2
DJNZ R1,LOOP1
RET
END