1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo Cáo VXL 2 – VDK Pic Quạt Tự Động

18 335 0

Đ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áo VXL2 – QUẠT TỰ ĐỘNG BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN – ĐIỆN TỬ NGÀNH : ĐIỆN TỬ VIỄN THÔNG  BÁO CÁO VXL – VDK PIC QUẠT TỰ ĐỘNG Giáo viên : TRƯƠNG NGỌC SƠN SVTH : Nguyễn Quốc Sự 07117055 TP HỒ CHÍ MINH, THÁNG 11 NĂM 2010 Nhận xét giáo viên : GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG SƠ ĐỒ KHỐI : GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG  KHỐI CẢM BIẾN : LM35  KHỐI XỬ LÝ TRUNG TÂM :VDK PIC 16F877A  HIỂN THỊ: GỒM CÓ LED ĐOẠN  MẠCH ĐỘNG LỰC : CẦU H ĐIỀU KHIỂN ĐỘNG CƠ QUAY THUẬN QUAY NGHỊCH  MẠCH ĐIỀU CHỈNH :NÚT NHẨN ĐIỀU KHIỂN CHẾ ĐỘ HIỂN THỊ,MẠCH ĐỘNG LỰC GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG SƠ ĐỒ NGUYÊN LÝ: A.Tóm tắt : - Dùng LM35 đo nhiệt độ môi trường,dùng vdk Pic 16f877a,dùng PWM có sẵn vdk Pic để điều khiển tốc độ động theo nhiệt độ - Công việc thực hiện: o Tìm hiểu VDK Pic ADC VDK Pic 16f877A o Tìm hiểu LM35 o Tìm hiểu PWM VDK Pic 16f877A o Tìm hiểu ngôn ngữ lập trình CCS C cho VDK Pic GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG o Thiết kế mạch phần mềm Proteus o Viết code mô B.Nội Dung: Tìm hiểu VDK Pic ADC Trong VDK Pic 16F877A Hình dạng vdk Pic 16F877A Pic 16F877A có Port tất : PORT A ,PORT B ,PORT C ,PORT D ,PORT E THANH GHI ADCON0 GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG • Bit 5-3 : CHS2 CHS0: Các bit lựa chọn kênh tương tự Trong đề tài chọn kênh AN0 nên set CHS2:CHS0 = 000 • Bit 6,7 : Dùng lựa chọn tần số chuyển đổi • Bit GO/DONE: Bit chuyển đổi ADC diễn trình chuyển đổi kết thúc • Bit :ADON o Bit khối ADC mở nguồn o Bit khối ADC bị tắt nguồn để giảm bớt công suất tiêu thụ Thanh ghi ADCON1: GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG • Bit : ADFM Bit lựa chọn định dạng cho kết ADC 1= Canh lề phải || 0= Canh lề trái • Bit : Bit ADCS2 với ADCS1:0 (Trong ADCON0) cho phép lựa chọn xung clock cho chuyển đổi ADC GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG • Bit 3:0 : PCFG3: PCFG0: Bit điều khiển ADC Trong đề tài sử dụng ADC bit,tức có 256 mức x 10mv 0.55V=2.01V=>vref- 0.55V vref+ 2.01Vol Tìm hiểu LM35: + LM35 IC cảm biến nhiệt độ + Cảm biến nhiệt độ khoảng từ -55 đến 150 oC + Ngõ tương thích TTL + Độ nhạy: 10mV/10C +Có ưu điểm rẻ tiền +Khuyết điểm không chịu nhiệt độ cao KẾT NỐI LM35  Dạng 1: GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG Cảm biến đáp ứng ngõ vào từ 2oC đến 150oC Ngõ thay đổi: 10mV/1oC  Dạng 2: (Trong đề tài sử dụng dạng này) Cảm biến đáp ứng ngõ vào từ -55oC đến 150 oC Điện trở R1 chọn: R1= -Vs/50 uA Ngõ thay đổi: 10mV/oC V OUT= -0.55 đến 1.5 Vol Tính toán :1.5-(-0.55) x 1/10mV =205 Mức => chưa đủ toàn thang ADC Bit Max ADC toàn thang 255 Khai báo ADC : setup_adc(adc_clock_internal); //thiết lập adc dùng xung clok nội setup_adc_ports(AN0_VREF_VREF); //Khái báo adc channel 0,điện áp chuẩn Vref- Vref+ Tìm hiểu PWM VDK Pic 16f877A Với mục đích điều khiền khiển quay thuận nghịch nên chọn hai chân CCP1(17) CCP2 (16) chân điều xung Pwm có sẵn Tại chân hoạt động xuất chuỗi xung vuông , độ rộng điều chỉnh dễ dàng Xung dùng để tạo tín hiệu đóng ngắt Trasistor mạch động lực,với độ rộng xác định tạo điện áp trung bình xác định Thay đổi độ rộng xung thay đổi điện áp trung bình thay đổi tốc độ động Để sử dụng PWM trước hết phải khởi tạo chế độ PWM lệnh: GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG setup_ccp1(CCP_PWM); //khai báo dùng PWM1 PWM2 setup_ccp2(CCP_PWM); setup_timer_2(mode,period,postscale) Bộ PWM hoạt động phải hỗ trợ Timer , Timer 8-bit có chia trước Ngõ vào xung Clock (=fosc/4) có tuỳ chọn hệ số chia trước là: “1:1”, “1:4”, “1:16” lựa chọn bit điều khiểnT2CKPS1:T2CKPS2 Lệnh để khởi tạo Timer2 tạo chu kỳ xung cho PWM là: setup_timer_2(t2_div_by_16,154,1); - Mode chọn hình thức sau: T2_DISABLED, T2_DIV_BY_1 T2_DIV_BY_4, T2_DIV_BY_16 ( đề tài dùng chia 16) - Period số nguyên (0255) để xác định xung clock reset - Postscale số (116) để xác định có lần reset trước ngắt: có nghĩa lần, nghĩa lần… Chức lệnh tạo chu kỳ xung tính sau: T = (1/fosc)*4*t2_div*(period+1) setup_timer_2(t2_div_by_16,154,1); //Tpwm =(1/10MHz)*4*16*(154+1) = 0.992 ms Timer tăng 6.4us (4*16*(1/10Mhz=6,4us),Timer2 tràn 6.4us *154 = 985.6us,tràn lần (postscale=1)thì sảy ngắt GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG Value=duty = 620=4*(154+1); Tpwm=value*T2_div*(1/10MHz) set_pwm1_duty(duty); //620 giá Max duty Thời gian duty thời gian xung (mức cao) chu kỳ xung, minh hoạ hình dưới: Như vậy, ta có chu kỳ xung 0.992ms, để động quay với tốc độ cực đại thời gian duty = chu kỳ xung gần ngõ PWM mức Tìm hiểu ngôn ngữ lập trình CCS C cho VDK Pic CCS C công cụ giúp lập trình c cho vdk mạnh,CCS C tích hợp trình biên dịch bên trong,rất tiện cho việc lập trình dịch files hex cho vdk Mô tả nội dung chương trình #include 16f877a.h : Đi kèm chương trình dịch, chứa khai báo ghi PIC, dùng cho việc cấu hình cho PIC #include : Files người lập trình tạo ra, chứa khai báo ghitrong PIC giúp cho viêc lập trình dễ dang ví dụ ta co thể gán PORTB =0xAA (chi tiết files trình bày phần đây) #device *=16 ADC = 8: Khai báo dùng trỏ hay 16 bit, ADC hay 10 bit #FUSES NOWDT, HS: Khai báo cấu hình cho PIC #use delay(clock=20000000): Tần số thạch anh sử dụng #use rs232 (baud=9600,…): Khai báo cho giao tiếp nối tiếp RS232 GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG #use i2c(master, SDA=PIN_C4,…): Khai báo dùng I2C, chế độ hoạt động #include :Khai báo files thư viện sử dụng ví dụ LCD_lib_4bit.c #INT_xxx : Khai báo địa chương trình phục vụ ngắt Void tên_chương_trình (tên_biến) {}: Chương trình hay chương trình Thiết kế mạch phần mềm Proteus Proteus phần mềm mô trực quan ,giúp người học tiếp cận nhanh chóng chưa có điều kiện tiến hành linh kiện thật,là công cụ tốt để kiểm tra ý tưởng mình.Mạch mô vẽ proteus hình Viết code mô //**************************************************** // Author : Nguyen Quoc Su // Mssv:07117055 // Phone:0914.114.338 // Date : 25/11/2010 // Hardware: PIC16F877A //**************************************************** #include #include #fuses HS,NOWDT,NOPROTECT,NOLVP,PUT #byte PORTA #byte PORTB #byte PORTC = 0x05 = 0x06 = 0x07 GVHD:TRƯƠNG NGỌC SƠN SVTH:NGUYỄN QUỐC SỰ MSSV:07117055 Báo VXL2 – QUẠT TỰ ĐỘNG #byte PORTD = 0x08 #byte PORTE = 0x09 #byte TRISA = 0x85 #byte TRISB = 0x86 #byte TRISC = 0x87 #byte TRISD = 0x88 #byte TRISE = 0x89 #device 16F877*=16 ADC=8 #use delay(clock=10000000) #use fast_io(b) #use fast_io(d) //#define daochieu=~(portc&0x08) Int8 i,tram=0,chuc=0,dvi=0; int trangthai=0,chieuquay=0; int8 duty=0,adc; signed int16 adctam,ndo; const unsigned char dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0xbf}; // 0xbf : ma doan tuong ung dau tru /* #int_AD void interrupt_AD() { portc=(portc&0xf0)|0x0f; } */ void hex_bcd(signed int16 value) { value=value-55; if(value

Ngày đăng: 11/09/2016, 13:06

Xem thêm: Báo Cáo VXL 2 – VDK Pic Quạt Tự Động

TỪ KHÓA LIÊN QUAN

w