ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ) ĐO tốc độ ĐỘNG cơ DÙNG PIC (code và mạch in đầy đủ)
ĐỒ ÁN ĐO TỐC ĐỘ ĐỘNG CƠ DÙNG VI ĐIỀU KHIỂN MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT PIC Peripheral Interface Controller PWM Pulse Width Modulation EEPROM Electrically Eraseble Programmable Read Only Memory PWM Pulse Width Modulation PCB Printed Circuit Board LCD Liquid Crystal Display RAM Random Access Memory ROM Read Only Memory EEPROM Electrically Erasable Programmable Read Only Memory PDIP Plastic Dual Inline Package MOSFET Metal-Oxide Semiconductor Field-Effect Transistor GND Ground DC Direct Current AC AC PSP Parallel Slave Port SSP Synchronous Serial Port ĐỒ ÁN Trang 6/33 CHƯƠNG GIỚI THIỆU CHUNG VỀ ĐO TỐC ĐỘ ĐỘNG CƠ DÙNG VI ĐIỀU KHIỂN PIC 16F877A - 1.1 Giới thiệu Trong ngành công nghiêp, công tác điều khiển, vận hành, đo đạc thiết bị theo quy trình nhằm nâng cao hiệu sản xuất, nâng cao chất lượng sản phẩm đồng thời tiết kiệm chi phí sản xuất giữ vị trí quan trọng Trong công nghiệp động chiều sử dụng phổ biến như: truyền động cho số máy máy nghiền, máy nâng, vận chuyển, điều khiển băng tải, điều khiển robot…, điều quan trọng phải có tốc độ xác động phù hợp với nhiệm vụ - Để đo tốc độ động chiều có nhiều phương pháp, đồ án chúng em xin trình bày đo tốc độ động dùng họ vi điều khiển PIC16F877A phương pháp đếm xung PWM - 1.1.1 Nhiệm vụ đề tài Thiết kế mạch đo tốc độ động dùng vi điều khiển PIC 16F877A Tìm hiểu sơ đồ nguyên lý, chức nhiệm vụ linh kiện liên quan mạch Giải thích nguyên lý hoạt động mô hoạt động mạch Thiết kế PCB phần cứng mạch - 1.1.1 Hướng giải đề tài Thiết kế mạch nguyên lý đo tốc độ động Tìm hiểu linh kiện mạch Giải thích nguyên lý hoạt động - Tiến hành mô mạch phần mềm Protues Vẽ mạch in PCB thi công phần cứng - 1.1.2 Hướng nghiên cứu Tìm hiểu vi điều khiển PIC 16F877A, tìm hiểu phương pháp lập trình CCS cho PIC, phương pháp điều khiển xử lý liệu LCD16x02 - Xây dựng chương trình điều khiển cho vi xử lý để đo tốc độ động thông qua encoder Giao tiếp cảm biến đo tốc độ encoder PIC ĐỒ ÁN Trang 7/33 - Mô mạch Protues, vẽ PCB tiến hành thi công mạch - 1.2 Nguyên lý chung Khi cho động chạy, encoder tiến hành nhận xung truyền liệu cho PIC Vi điều khiển PIC tiến hành xử lý liệu, liệu xử lý xong xuất hình LCD ĐỒ ÁN Trang 8/33 CHƯƠNG GIỚI THIỆU LINH KIỆN CỦA ĐỀ TÀI 1.3 Vi xử lý PIC 16F877A Đây vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh thực thi chu kì xung clock Tốc độ hoạt động tối đa cho phép 20 MHz với chu kì lệnh 200ns Bộ nhớ chương trình 8Kx14 bit, nhớ liệu 368 byte RAM nhớ liệu EEPROM với dung lượng 256 byte Số PORT I/O với 33 pin I/O Hình 2.1: Vi điều khiển PIC 16F877A[1] 1.1.3 Đặc điểm kỹ thuật vi điều khiển PIC 16F877A Các đặc tính vi điều khiển PIC 16f877a - Timer0: đếm 8bit - Timer1: đếm 16bit với chia tần số - Timner2: đếm 8bit ĐỒ ÁN Trang 9/33 - Capture/Compare/PWM - biến đổi Analog -> Digital 10bit, ngõ vào - so sánh tương tự Compartor - định giám sát Watchdog Timer - 15 nguồn ngắt Interrupts - Cổng giao tiếp song song PSP với chân điều khiển RD, WR, CS bên - Các chuẩn giao tiếp nối tiếp SSP,SPI I2C - Chuẩn giao tiếp nối tiếp USART với bit địa - Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) Tần số hoạt động Reset Delay Bộ nhớ chương trình Flash (14bit word) Bộ nhớ liệu (byte) Bộ nhớ liệu EEPROM (byte) Các ngắt Các Port xuất/nhập Timer Module Capture/Compare/PWM Giao tiếp nối tiếp Giao tiếp song song Module A/D 10-bit Bộ so sánh tương tự Tập lệnh Số chân DC-20MHz POR, BOR (PWRT, OST) 8K 368 256 15 Port A, B, C, D, E MSSP, USART PSP kênh ngõ vào 35 lệnh 40 chân PDIP ĐỒ ÁN Trang 10/33 44 chân PLCC 44 chân TQFP 44 chân QFN Bảng 2.1: Tóm tắt đặc điểm PIC16F877A[1] 1.1.2 Sơ đồ chân ,cấu trúc chức PIC 16F877A loại 40 chân PDIP Hình 2.2: Sơ đồ chân HC-06[1] - Sơ đồ khối Pic16F877A ĐỒ ÁN Trang 24/33 Hình 2.15: Thạch anh 20MHz[3] CHƯƠNG THIẾT KẾ VÀ THI CÔNG MẠCH 1.6 Sơ đồ khối ĐỒ ÁN Trang 25/33 Hình 3.1: Sơ đồ khối 1.7 Khối nguồn Hình 3.2: Khối nguồn - Khối nguồn có nhiệm vụ cung cấp điện áp 5V cho toàn mạch hoạt động - Nguồn 12VDC đưa vào IC ổn áp 7805 cho điện áp ngõ 5VDC Các tụ C2, C1 dùng để lọc tin hiệu, C3 dùng để ổn định điện áp chiều ĐỒ ÁN Trang 26/33 thêm phẳng không gây nhiễu mạch Trong mạch, ta sử dụng nguồn điện áp 5V để sử dụng cung cấp cho PIC16F877A LCD 1.8 Khối hiển thị Hình 3.3: Khối hiển thị LCD 1.9 Khối thay đổi tốc độ động ĐỒ ÁN Trang 27/33 Hình 3.4: Khối thay đổi tốc độ động - Khối IRF640N dùng để Pam xung cho động chạy - Khối volum dùng để điều chỉnh tốc độ động 1.10 Khối vi xử lý 16F877A ĐỒ ÁN Trang 28/33 Hình 3.5: Khối vi xử lý 16F877A - Nguồn cấp cho khối điều khiển PIC 5V - Thành phần khối điều khiển PIC 16F77A đóng vai trò khối xử lý trung tâm, điều khiển tất hoạt động khối khác - Nhận tín hiệu từ khối cảm biến encoder - Điều khiển đọc liệu từ encoder cấp tín hiệu giải mã cho LCD khối hiển thị 1.11 Sơ đồ thuật toán xử lý ĐỒ ÁN Trang 29/33 Hình 3.6: Sơ đồ thuật toán xử lý - 1.12 Nguyên lý hoạt động Khi bật nguồn, mạch khởi động Động dừng, encoder không nhận xung chuyển liệu PIC PIC nhận tín hiệu xử lý chuyển tín hiệu giải mã sang LCD hiển thị “Toc la: 000” ĐỒ ÁN Trang 30/33 - Khi ta xoay biến trở, động bắt đầu chạy, encoder nhận xung chuyển liệu PIC PIC nhận liệu xử lý chuyển tín hiệu giải mã cho LCD hiển thị “Toc la: xxx” 1.13 Kết mô Hình 3.7: Kết mô 1.14 Sơ đồ mạch in ĐỒ ÁN Trang 31/33 Hình 3.8: Sơ đồ mạch in PCB Hình 3.9: Sơ đồ mach in PCB PDF 1.15 Thi công mạch ĐỒ ÁN Trang 32/33 Hình 3.10: Mạch thực tế ĐỒ ÁN Trang 33/33 Hình 3.11: Mặt sau mạch ĐỒ ÁN Trang 34/33 CHƯƠNG KẾT LUẬN - 1.5 Kết luận Qua thời gian nghiên cứu, tìm hiểu, thi công, đồ án hoàn thành Đồ án hoàn thành thời gian quy định đạt kết sau: • Mạch điện sau hoàn thành hoạt động tốt • Tốc độ đo tương đối xác • Đã tìm hiểu Pic 16F877A, biết cách xây dựng mạch in thi công mạch - 1.6 Hướng phát triển Do thời gian thực đề tài có hạn lượng kiến thức cá nhân định - nên mạch có nhiều hạn chế Ngoài việc đo tốc độ động cơ, ta điều khiển thay đổi tốc tộc - động thay đổi chiều quay Có thể đo thêm nhiều động Mở rộng đo thêm nhiệt độ động ĐỒ ÁN Trang 35/33 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] http://www.picvietnam.com [2] http://hshop.vn/ [3] http://google.com.vn Tiếng Anh: [4] http://alltransistors.com [5] http://www.alldatasheet.com [6] http://www.microchip.com ĐỒ ÁN Trang 36/33 PHỤ LỤC CODE CHƯƠNG TRÌNH #include #include #use delay(clock=20000000) #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9) #include #bit TMR1IF = 0x0C.0 //Khai bao file giao tiep LCD int16 CCP1Value,count1,count2=0; //Gia tri CCP hien tai int16 CCP1OldValue; //Gia tri CCP truoc BOOLEAN CCP1Captured; float Freq; int32 temp; int8 ngan,tram,chuc,donvi; int8 value,count; //Khai bao don vi void hien_thi(); void Convert_CCP1(); // -#int_CCP1 //Ngat nhan xung CCP1_isr() { if(TMR1IF) { CCP1Value = CCP_1 +(65535-CCP1OldValue); CCP1OldValue = CCP_1; TMR1IF=0; } else { CCP1Value = CCP_1 - CCP1OldValue; CCP1OldValue = CCP_1; } CCP1Captured = TRUE; } // #INT_TIMER0 //Ngat timer de pam xung dong co o chan ccp2 VOID NGAT_TIMER0() { SET_TIMER0(240); count++; count1++; ĐỒ ÁN Trang 37/33 count2++; if(count>100) { value=read_adc(); value=value/2; set_pwm2_duty(value); count=0; } if(count1>800) { Convert_CCP1(); count1=0; } } // void Init_ccp(void) { setup_ccp2(CCP_PWM); //Dung ccp2 de bam xung dieu khien dong co setup_ccp1(CCP_CAPTURE_RE);//Ccp1 la chan dung de nhan tin hieu tu encoder setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);//Khoi tao che hoat dong timer1 setup_timer_0(T1_INTERNAL);//Khoi tao che hoat dong cua timer0 setup_timer_2(T2_DIV_BY_1, 127, 1);//Khoi tao che hoat dong cua timer0 SET_TIMER0(240); CCP1Value = 0; //Gia tri hien tai CCP1OldValue = 0; //Gia tri cu CCP1Captured = TRUE; enable_interrupts(INT_CCP1); //Ngat nhan tin hieu ccp1 //enable_interrupts(INT_TIMER1); enable_interrupts(INT_TIMER0); //Bat che ngoai cua encoder enable_interrupts(GLOBAL); //Ngat toan cuc setup_adc_ports(sAN0); //Su dung ngo vao adc cua chan an0 setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); //Chon kenh adc cho chan(an0) delay_us(20); } // -void Convert_CCP1() //Chuyen doi xung tu ccp1 cua pic { Freq = (1.0/((float)CCP1Value*2e-7)); //For Time_Div_1 { temp = freq/8; //Doc adc if(temp2000){ hien_thi(); count2=0;temp = 0;} } } ... đo tốc độ động chiều có nhiều phương pháp, đồ án chúng em xin trình bày đo tốc độ động dùng họ vi điều khiển PIC1 6F877A phương pháp đếm xung PWM - 1.1.1 Nhiệm vụ đề tài Thiết kế mạch đo tốc độ. .. 1.1.1 Hướng giải đề tài Thiết kế mạch nguyên lý đo tốc độ động Tìm hiểu linh kiện mạch Giải thích nguyên lý hoạt động - Tiến hành mô mạch phần mềm Protues Vẽ mạch in PCB thi công phần cứng - 1.1.2... đo tốc độ động dùng vi điều khiển PIC 16F877A Tìm hiểu sơ đồ nguyên lý, chức nhiệm vụ linh kiện liên quan mạch Giải thích nguyên lý hoạt động mô hoạt động mạch Thiết kế PCB phần cứng mạch - 1.1.1