đồ án cân điện tử

67 223 0
đồ án cân điện tử

Đ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

CHƯƠNG I: DẪN NHẬP 1.1 Đặt vấn đề: Cân trọng lượng nhu cầu cần thiết thiếu đời sống xã hội , từ người nông dân làm hạt thóc khu chế xuất , nhà máy xi măng sản xuất hàng trăm sản phẩm ngày Xuất phát từ nhu cầu thực tế ứng dụng công nghệ vi điều khiển nhà khoa học nghiên cứu loại cân điện tử thị số cân trọng lượng từ mg hàng trăm mà loại cân bình thường thực Trên thực tế nhà máy sản xuất muốn biết khối lượng hàng hoá, sản phẩm hay nguyên vật liệu, cho lĩnh vực khác bến cảng, trạm cân xe phát tải cảnh sát giao thông sử dụng cân điện tử Trong thời đại ngày hệ thống điều khiển tự động ngày có vai trò quan trọng việc phát triển, tiến kĩ thuật công nghệ văn minh đại Xuất phát từ thực tế em phân công thực đề tài “ Cân điện tử “ 1.2 Nội dung phạm vi nghiên cứu: Nội dung đồ án đề cập đến vấn đề sau: - Loadcell cảm biến cân - LCD - Tổng quan vi điều khiển pic - Giao tiếp cân qua máy tính cổng truyền thông - Giao diện điều khiển Visual basic CHƯƠNG II: LÝ THUYẾT CƠ SỞ 2.1Giới thiệu vi điều khiển PIC16F877A 2.1.1Kiến trúc Pic PIC16F877A dòng PIC phổ biến (đủ mạnh tính năng, 40 chân, nhớ đủ cho hầu hết ứng dụng thông thường) Cấu trúc tổng quát PIC 16F877A sau: Hình 2.13: PIC16F877A - K Flash ROM - 368 Bytes RAM - 256 Bytes EEPROM - ports (A, B, C, D, E) vào với tín hiệu điều khiển độc lập - định thời bits (Timer Timer 2) - Một định thời 16 bits (Timer 1) hoạt động chế độ tiết kiệm lượng (SLEEP MODE) với nguồn xung Clock - bô CCP( Capture / Compare/ PWM) - biến đổi AD 10 bits, ngõ vào - so sánh tương tự (Compartor) - định thời giám sát (WatchDog Timer) - Một cổng song song bits với tín hiệu điều khiển - Một cổng nối tiếp - 15 nguồn ngắt - Có chế độ tiết kiệm lượng - Nạp chương trình cổng nối tiếp ICSP(In-Circuit Serial Programming) - Được chế tạo công nghệ CMOS - 35 tập lệnh có độ dài 14 bits - Tần số hoạt động tối đa 20MHz Hình 2.14:kiến trúc PIC Đâ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 256byte Số PORT I/O với 33 pin I/O Các đặc tính ngoại vi bao gồm khối chức sau: - Timer0: đếm bit với chia tần số bit - Timer1: đếm 16 bit với chia tần số, thực chức đếm dựa vào xung clock ngoại vi vi điều khiển hoạt động chế độ sleep - Timer2: đếm bit với chia tần số, postcaler Capture/so sánh/điều chế độ rông xung - Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI I2C Chuẩn giao tiếp nối tiếp USART với bit địa - Cổng giao tiếp song song PSP (Parallel Slave Port) với chân điều khiển RD, WR, CS bên Các đặc tính Analog: - kênh chuyển đổi ADC 10 bit - Hai so sánh - Bên cạnh vài đặc tính khác vi điều khiển như: Bộ nhớ flash với khả ghi xóa 100.000 lần - Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần Dữ liệu nhớ EEPROM lưu trữ 40 năm - Khả tự nạp chương trình với điều khiển phần mềm - Nạp chương trình mạch điện ICSP (In Circuit Serial Programming) thông qua chân - Watchdog Timer với dao động Chức bảo mật mã chương trình Chế độ Sleep 2.1.2 Sơ đồ khối chức chân PIC16F877A Sơ đồ khối Hình 2.15:Sơ đồ khối PIC16F877A Sơ đồ chân PIC16F877A Hình 2.16:Sơ đồ chân PIC16F877A 2.1.3 Các nhớ: a Bộ nhớ EEPROM Một nhớ liệu đặc biệt kiểu EEPROM dung lương 256 byte tích hợp PIC 16F877A xem thiết bị ngoại vi nối vào bus liệu, nhớ ghi đọc trình hoạt động điều khiển chương trình Bộ nhớ EEPROM thường dùng lưu trữ chương trình không bị thay đổi chuẩn, liệu người sử dụng không bị ngắt nguồn nuôi b Bộ nhớ liệu Bộ nhớ liệu chia thành bank, bank có dung lượng 128 byte RAM tĩnh Mỗi bank bao gồm ghi có chức đặc biệt SFR (Special Function Register) nằm vùng địa thấp, ghi mục đích chung GPR (General Purpose Register) nằm vùng địa cao Các ghi SFR thường xuyên sử dụng STATUS, INTCON, FSR bố trí tất bank giúp thuận tiện trình truy xuất Hình 2.16: Sơ đồ tổ chức nhớ liệu PIC16F877A c Stack Stack không nằm nhớ chương trình hay nhớ liệu mà vùng nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh CALL thực hay ngắt xảy làm chương trình bị rẽ nhánh, giá trị đếm chương trình PC tự động vi điều khiển cất vào stack Khi lệnh RETURN, RETLW hat RETFIE thực thi, giá trị PC tự động lấy từ stack, vi điều khiển thực tiếp chương trình theo qui trình định trước Bộ nhớ Stack vi điều khiển PIC họ 16F87xA có khả chứa địa hoạt động theo chế xoay vòng Nghĩa giá trị cất vào nhớ Stack lần thứ ghi đè lên giá trị cất vào Stack lần giá trị cất vào nhớ Stack lần thứ 10 ghi đè lên giá trị cất vào Stack lần thứ d Bộ nhớ chương trình Bộ nhớ chương trình vi điều khiển PIC16F877A nhớ flash, dung lượng nhớ 8K word (1 word = 14 bit) phân thành nhiều trang (từ page đến page 3) Như nhớ chương trình có khả chứa 8*1024 = 8192 lệnh (vì lệnh sau mã hóa có dung lượng word (14 bit) Khi vi điều khiển reset, đếm chương trình đến địa 0000h (Reset vector) Khi có ngắt xảy ra, đếm chương trình đến địa 0004h (Interrupt vector) Bộ nhớ chương trình không bao gồm nhớ stack không địa hóa đếm chương trình 2.1.4 Các cổng xuất nhập Vi điều khiển PIC16F877A có cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD PORTE a Port A: PORTA bao gồm I/O pin ( RA0 –RA5) Đây chân “hai chiều” (bidirectional pin), nghĩa xuất nhập Chức I/O điều khiển ghi TRISA (địa 85h) Muốn xác lập chức chân PORTA input, ta “set” bit điều khiển tương ứng với chân ghi TRISA ngược lại, muốn xác lập chức chân PORTA output, ta “clear” bit điều khiển tương ứng với chân ghi TRISA Chân RA4 dùng chung với lối vào xung nhịp cho timer0 dùng đếm xung từ bên ngoài.Các chân khác cổng A ghép lối vào so sánh tương tự biến đổi ADC kênh b Port B:PORTB (RPB) gồm pin I/O ( RB0 – RB7) Thanh ghi điều khiển xuất nhập tương ứng TRISB Bên cạnh số chân PORTB sử dụng trình nạp chương trình cho vi điều khiển với chế độ nạp khác PORTB liên quan đến ngắt ngoại vi Timer0 Chân RB0 lựa chọn lối vào ngắt Extint Có chân cổng B ghép lối với chức ICSP RB6, RB7, RB3 tương ứng với lối vào PGC, PGD, LVP nạp trình Lối vào RB4 RB7 làm phát sinh ngắt RBIF chân định nghĩa lối vào Trạng thái lối vào so sánh với trạng thái chốt lại lần đọc trước Khi có khác cờ ngắt RBIF lập c Port C: PORTC (RPC) gồm pin I/O (RC0 – RC7) Thanh ghi điều khiển xuất nhập tương ứng TRISC Bên cạnh PORTC chứa chân chức so sánh, Timer1, PWM chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART d Port D: PORTD (RPD) gồm chân I/O ( RD0 – RD7), ghi điều khiển xuất nhập tương ứng TRISD.PORTD cổng xuất liệu chuẩn giao tiếp PSP (Parallel Slave Port) e Port E: Port E có chân RE0 , RE1 , RE2 cấu hình chân xuất nhập Các chân PORTE có ngõ vào analog , chế độ đọc trạng thái chân port E cho ta giá trị Bên cạnh PORTE chân điều khiển chuẩn giao tiếp PSP 2.1.5 Các định thời a Timer 0: • Bộ đếm bit • Ghi/đọc • Có chia bit lập trình • Chọn xung nhịp bên bên • Sinh ngắt TOIF tràn chuyền từ FFh→ 00h Hình 2.18 : Sơ đồ khối Timer0 • Chọn sườn xung lấy xung nhịp từ bên Timer0 dùng làm đếm xung nhịp vi điều khiển vể tạo đếm thời gian Chế độ đếm thời gian chọn cách đặt bit T0CS = (bit OPTION) Trong chế độ đếm thời gian, ghi TMR0 tăng đơn vị sau chu kỳ máy Thanh ghỉ TMR0 ghi đọc chương trình để xác lập lấy giá trị thời timer0 Timer0 dùng để đếm xung từ bên cấp vào chân RA4 Chế độ đếm xung chọn cách đặt T0CS = Trong chế độ ghi Timer0 tăng đơn vị sau sườn lên sườn xuống tùy thuộc vào trạng thái bit T0SE b Timer 1: Timer1 định thời 16 bit, giá trị Timer1 lưu hai ghi (TMR1H:TMR1L) Cờ ngắt Timer1 bit TMR1IF (PIR1) Bit điều khiển Timer1 TMR1IE (PIE) Tương tự Timer0, Timer1 có hai chế độ hoạt động: chế độ định thời (timer) với xung kích xung clock oscillator (tần số timer ¼ tần số oscillator) chế độ đếm (counter) với xung kích xung phản ánh kiện cần đếm lấy từ bên thông qua chân RC0/T1OSO/T1CKI (cạnh tác động cạnh lên) Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạt động timer hay counter) điều khiển bit TMR1CS (T1CON) Sau sơ đồ khối Timer1: Hình 2.19: Sơ đồ khối Timer1 c Timer Timer2 định thời bit hỗ trợ hai chia tần số prescaler va postscaler Thanh ghi chứa giá trị đếm Timer2 TMR2 Bit cho phép ngắt Timer2 tác động TMR2ON (T2CON) Cờ ngắt Timer2 bit TMR2IF (PIR1) Xung ngõ vào (tần số ¼ tần số oscillator) đưa qua chia tần số prescaler bit (với tỉ số chia tần số 1:1, 1:4 1:16 điều khiển bit T2CKPS1:T2CKPS0 (T2CON)) Timer2 hỗ trợ ghi PR2 Giá trị đếm ghi TMR2 tăng từ 00h đến giá trị chứa ghi PR2, sau reset 00h Kh I reset ghi PR2 nhận giá trị mặc định FFh Ngõ Timer2 đưa qua chia tần số postscaler với mức chia từ 1:1 đến 1:16 Postscaler điều khiển bit T2OUTPS3:T2OUTPS0 Ngõ postscaler đóng vai trò định việc điều khiển cờ ngắt Ngoài ngõ Timer2 kết nối với khối SSP, Timer2 đóng vai trò tạo xung clock đồng cho khối giao tiếp SSP Hình 2.20: Sơ đồ khối Timer 2.1.6 ADC ADC (Analog to Digital Converter) chuyển đổi tín hiệu hai dạng tương tự số PIC16F877A có ngõ vào analog (RA4:RA0 10 Hình 2.21: khối ADC delay_ms(50); LCD_putcmd(0xC0); Printf(LCD_putchar,"CAN DT-CDDTVT09C"); delay_ms(2000); LCD_putcmd(0x80);Printf(LCD_putchar," "); LCD_putcmd(0xC0);Printf(LCD_putchar," "); LCD_putcmd(0x80);Printf(LCD_putchar," BA THANH "); LCD_putcmd(0xC0);Printf(LCD_putchar," TRUNG THINH "); delay_ms(2000); LCD_putcmd(0xC0); Printf(LCD_putchar," "); LCD_putcmd(0x80); Printf(LCD_putchar," "); adc=0; gia_tri=0; gia_tri_c=0; while(1) { delay_us(10); adc=read_ADC(); delay_us(200); gia_tri=adc/151.47; printf("%1.0f ",adc); if(start_mode==true) 53 { ptr1=strstr(buffer,nut1); if(strncmp(ptr1,nut1,3)==0) {dem=gia_tri;} else{ ptr1=strstr(buffer,nut2); if(strncmp(ptr1,nut2,2)==0) {tam=tam+1;}} erase_buffer(); start_mode=false; } if(input(PIN_C0)==0){ dem=gia_tri; } gia_tri_c=gia_tri-dem; if(input(PIN_C1)==0){ tam=tam+1; } if(tam%2==0){ gia_tri_c=gia_tri_c*1000; 54 LCD_putcmd(0x80);Printf(LCD_putchar," -KHOI LUONG -"); LCD_putcmd(0xC0);Printf(LCD_putchar," %4.0f g ",gia_tri_c); printf("%4.0f",gia_tri_c); putc(13); delay_ms(200); } else{ LCD_putcmd(0x80);Printf(LCD_putchar," -KHOI LUONG -"); LCD_putcmd(0xC0);Printf(LCD_putchar," %2.1f Kg ",gia_tri_c); printf("%4.1f",gia_tri_c); putc(13); delay_ms(200); } } } void erase_buffer(void) { int i3; for(i3=0;i3 Then BUFFER = MSComm.Input Text1.Text = BUFFER txtkhoiluong.Text = Val(Left(Text1.Text, 4)) End If End Sub Private Sub Timer1_Timer() If x = True Then lbldonvi.Caption = "G" Else lbldonvi.Caption = "KG" End If 61 End Sub Private Sub timerthoigian_Timer() lblngaythangnam.Caption = DateTime.Now End Sub 3.6 Kết thi công 3.6.1 Giao diện VisualBasic 62 3.6.2 Mô hình 63 64 CHƯƠNG IV KẾT LUẬN 4.1 Các vấn đề nghiên cứu làm - Nghiên cứu cảm biến loadcell - Nghiên cứu giao diện VB, kết nối cân với máy tính - Lập trình điều khiển vi điều khiển Pic 18F4620 ngôn ngữ CCS - Xây dựng thành công hệ thống cân đơn giản 4.2 Tự đánh giá Cảm biến cân chưa nhạy, tầm đo hạn chế.giao diện đơn giản chưa trực quan, thiếu chương trình ứng dụng cho cân điện tử 4.3 Hướng phát triển đề tài Rõ ràng cân điện tử là một đề tài có khá nhiều hướng phát triển.có thể sử dụng nhiều cảm biến có khả cân lớn ghép nối lại với để cân hàng hóa lớn, hay sử dụng cảm biển nhạy có tầm đo chi li để cân nhỏ như, thuốc, bột… phòng thí nghiệm Tuy nhiên, với cụ thể đồ án này thì có khá nhiều giới hạn Với việc sử dụng cảm biến có tầm đo 6kg khó ứng dụng nhiều thực tế.Trong tương lai có sử dụng cảm biến tốt đưa thêm chức ứng dụng cần thiết vào cho cân Tài liệu tham khảo  Tailieu.vn  Tài liệu khóa trước để lại  Alldatasheet.com  Diễn đàn: http://dientuvietnam.net  Diễn đàn: http://picvietnam.com  Tài liệu sử dụng CCS tiếng việt Trần Xuân Trường  http://microchip.com 65 66 67 [...]... bé, vừa, lớn 2.2.5 Ứng dụng của Loadcell Một ứng dụng khá phổ biến thường thấy của Loadcell là được sử dụng trong các loại cân điện tử hiện nay Từ ứng dụng trong những chiếc cân kĩ thuật đòi hỏi độ chính xác cao cho tới những 14 chiếc cân có trọng tải lớn trong công nghiệp như cân xe tải Một số ứng dụng khác: - Trong ngành công nghệ cao: Với nền khoa học kĩ thuật tiên tiến hiện nay thì loại Loadcell... cầu chỉnh định đầu ra với từng load cell riêng biệt Công việc này đòi hỏi tốn kém về thời gian, đặc biệt với những hệ thống yêu cầu độ chính xác cao hoặc trong các ứng dụng khó tạo tải kiểm tra như cân tank, cân xilô Tín hiệu ra chung của một hệ nhiều Loadcell dựa trên cơ sở đầu các tín hiệu ra trung bình của từng Loadcell Điều đó gây nên dễ xảy ra hiện tượng có Loadcell bị lỗi mà không được nhận biết... nhà máy đang hoạt động liên tục Thực tế còn rất nhiều yếu tố khác liên quan đến độ chính xác của hệ thống cân như: · Quá trình chỉnh định hệ thống · Nhiễu rung và ồn · Do tác dụng chuyển hướng lực trong các cơ cầu hình ống · Quá trình phân tích dò tìm lỗi · Thay thế các thành phần trong hệ thống cân hoặc các hệ thống liên quan · Đi dây cáp tín hiệu dài · Môi trường hoạt động quá kín Không thể tính... lọc nhiễu điện từ trường cho tín hiệu đo của các thiết bị này còn rất kém Một yếu điểm nữa là tần số lấy mẫu thấp, do đó không thể áp dụng trong các ứng dụng mà lực tác dụng biến đổi nhanh (cân động) như các hệ thống cân bằng liên tục 6.2 Loadcell số a) Khái niệm, sự ra đời Thời gian ra đời: Từ cuối những năm 1970 Về cơ bản Loadcell số là sự tích hợp giữa load cell tương tự với công nghệ điện tử hiện... cần - Mỗi Loadcell là một thiết bị hoạt động độc lập trong hệ thống, do đó có thể mở rộng cấu trúc dễ dàng - Có thể thực hiện tối ưu hóa hệ thống dễ dàng qua phân tích từng thành phần tích hợp - Cân bằng các góc cân có thể thực hiện bằng thiết bị Thay đổi, sửa lỗi một Loadcell không ảnh hưởng đến các Loadcell khác Công việc thực hiện dễ dàng và đơn giản, tiết kiệm thời gian - Với hệ thống yêu cầu độ chính... bị nén hay kéo dãn và được nuôi bằng một nguồn điện ổn định, được dán chết lên “Load” - một thanh kim loại chịu tải có tính đàn hồi 2.2.2.2 Nguyên lý hoạt động Hoạt động dựa trên nguyên lý cầu điện trở cân bằng Wheatstone Giá trị lực tác dụng tỉ lệ với sự thay đổi điện trở cảm ứng trong cầu điện trở, và do đótrả về tín hiệu điện áp tỉ lệ 2.2.3 Thông số kĩ thuật cơ bản - Độ chính xác: cho biết phần trăm

Ngày đăng: 08/06/2016, 12:00

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan