Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông
Đề tài này nêu ra một ứng dụng vi điều khiển nhằm thiết kế một bộ thí nghiệm đo
đạc thời gian và xử lí dữ liệu dùng trong khảo sát các thí nghiệm cơ học thuộc chương
trình vật lí trung học phổ thông. Không chỉ dùng để đo thời gian đến bậc sai số
6.6 10 6 s bằng cách xử lí các tín hiệu từ cổng hồng ngoại và nam châm điện; bộ thí
nghiệm tương tác với người dùng bằng ma trận bàn phím hoặc máy tính cá nhân. Từ
đó bộ thí nghiệm trở nên cơ động hơn trong đo đạc và tự động xử lí kết quả nhằm phục
vụ cho các bài thí nghiệm kiểm chứng ngay tại lớp học.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông
ontroller in order to design a set of experiments for time measurement and data processing. It is used to study mechanical experiments in the high school physics syllabus. The set of experiments is used not only to measure the time to high accuracy of 66.6 10 s through signal processing from infrared gate and electromagnet but also to interact with the users through keyboard matrix or personal computer. From that point, the set of experiments becomes more mobile in measurement and automatic result processing to serve the experimental vertication in the classroom. Keywords: microcontroller, mechanical experiment, experimental vertication. 1. Mở đầu Thí nghiệm dạy học vật lí trong trường phổ thông là một phương tiện quan trọng có tác dụng to lớn trong việc giúp học sinh chiếm lĩnh các tri thức và kĩ năng. Tuy nhiên, do điều kiện cơ sở vật chất còn thiếu thốn, việc lồng ghép các thí nghiệm vật lí là rất khó khăn. Những giờ thực hành trên lớp đúng ra phải theo phân phối chương trình nhưng thực tế lại được tổ chức thực hành qua loa hoặc chuyển sang giờ luyện tập, ôn thi [3]. Và vấn đề đang được đặt ra: Làm sao có thể tự tay tạo ra những thiết bị phục vụ cho việc dạy học được tốt hơn, hiệu quả hơn. Nói đến sự phát triển của kĩ thuật hiện đại, đa số chúng ta đều hình dung ngay là sự tăng tốc thần kì của lĩnh vực điện tử và vi tính. Mới ngày nào, kết cấu của những mạch điện cồng kềnh, thì bây giờ tất cả đều được tích hợp thành những mảng chuyên dụng mang nhiều chức năng ngày càng thông minh, độc đáo [1]. Vi điều khiển cũng nằm trong số đó, từ họ vi điều khiển truyền thống 8051 hiện nay đã phát triển thành với Kỉ yếu Hội nghị sinh viên NCKH 70 các họ vi điều khiển 8 bit [4], 16 bit [5], [6] hay thậm chí 24 bit [6] với các họ vi điều khiển xử lí tốc độ cao. Với các tính năng ngày càng được mở rộng, vi điều khiển ngày càng được ứng dụng rộng rãi từ các thiết bị cầm tay cho đến các thiết bị công nghiệp trong các dây chuyền sản xuất tự động, hệ thống đo lường, giám sát,... nơi nào chúng ta cũng đều thấy sự có mặt của vi điều khiển. Trong bài báo này, chúng tôi ứng dụng các mođun của vi điều khiển PIC 16F877A nhằm tạo ra bộ dụng cụ dùng trong đo đạc thời gian và xử dữ liệu phục vụ cho các bài thí nghiệm chứng minh ngay tại lớp học. 2. Dụng cụ đo và xử lí thời gian sử dụng PIC 16F877A Để tạo ra được dụng cụ này, đòi hỏi phải xây dựng từng bước các thành phần điện - điện tử khác nhau và kiểm tra hoạt động của chúng trên Proteus, testboard, cũng như xây dựng chương trình cho vi điều khiển PIC 16F877A. Đây là những bước quan trọng nhất và quyết định đến độ ổn định, tính khả thi của bộ thí nghiệm. Sau khi thử nghiệm trên testboard và mô phỏng trên Proteus, sơ đồ mạch trên Orcard và chương trình giao tiếp cho PIC 16F877A với máy tính sẽ được thiết kế. Mạch in được gia công, các linh kiện sẽ được hàn và kiểm tra hoạt động lần lượt từng bộ phận. Hình 1. Quá trình thực hiện 2.1. Sơ đồ khối Hình 2. Sơ đồ khối dụng cụ đo và xử lí thời gian Sơ đồ khối dụng cụ đo và xử lí thời gian được thể hiện trên hình 2. Dụng cụ bao gồm 6 khối chính, trong đó vi điều khiến PIC 16F877A là khối xử lí trung tâm, 5 khối Năm học 2012 - 2013 71 còn lại đóng vai trò là các bộ phận ngoại vi truyền tín hiệu thông qua điều khiển PIC 16F877A. 2.2. Khối xử lí trung tâm Hình 3. Lưu đồ chương trình chính Đây là khối đóng vai trò quyết định cho máy đo và xử lí thời gian. Khối xử lí trung tâm hay PIC 16F877A có nhiệm vụ nhận thông tin từ các thiết bị ngoại vi và điều khiển chúng. Kỉ yếu Hội nghị sinh viên NCKH 72 Hoạt động PIC 16F877A chịu sự điều khiển của người lập trình qua chương trình được viết sẵn và nạp cho PIC 16F877A (Code_for_pic_16f877a.ccs). Lưu đồ thuật toán PIC 16F877A được thể hiện trên hình 3. Trong chương trình chính code_for_pic_16f877a.ccs, PIC 16F877A khởi tạo chế độ I/O cho các chân, thiết lập hiển thị LCD và giao tiếp RS232 qua cổng COM cho vi điều khiển. Sau đó, PIC 16F877A sẽ hiển thị các bài thí nghiệm trong chương trình vật lí trung học phổ thông. Tùy vào mục đích sử dụng, người dùng sẽ lựa chọn bài thí nghiệm và ứng với mỗi bài thí nghiệm sẽ có những chương trình con tương ứng (con_lac_đơn, roi_tu_do, he_so_ma_sat, cd_thang_deu). 2.3. Bộ định thời Xung đếm được tạo ra nhờ thạch anh điện tử có tần số 20MHz. Thạch anh tần số 20MHz sẽ tạo cho vi điều khiển chu kì lệnh có tần số 5MHz (1 chu kì lệnh bằng 4 lần chu kì dao động). Sử dụng TIMER 1 ở chế độ định thời 16 bit, xung đếm 5MHz được đưa đến bộ Prescaler (chia 8) cho ra xung có tần số 0.625MHz. Hai thanh ghi TMR1H: TMR1L sẽ ghi nhận giá trị xung 0.625MHz ngay sau cạnh xuống đầu tiên và giá trị TMR1H:TMR1L tiếp tục tăng sau mỗi cạnh lên của xung ngõ vào. Thanh ghi TMR1H:TMR1L có độ dài 16 bit cho phép đếm tối đa đến giá trị 65535. Nếu vượt quá giá trị này, TMR1H:TMR1L sẽ được trả về 0. Bằng cách ghi nhận thời điểm xảy ra tràn số đếm thông qua ngắt tràn Timer1 và lưu tổng số lần tràn qua biến m ta thể xác định được thời gian t: 6 1( 65536 1 : 1 ) 0.625 10 t m TMR H TMR L s Hình 4. Bộ định thời cho PIC 16F877A Như vậy, sử dụng thạch anh điện tử, chức năng TIMER 1 và ngắt báo tràn TIMER1 ta đã tạo ra được bộ định thời cho PIC 16F877A. 2.4. Giao tiếp máy tính Giao tiếp vi điều khiển với máy tính đóng vai trò quan trọng trong việc thực hiện tương tác giữa người dùng và PIC 16F877A. Công việc này thực hiện nhờ sự hỗ trợ IC Max – 232 thông qua chuẩn RS232. Năm học 2012 - 2013 73 Hình 5. Giao tiếp RS232 qua IC Mac – 232 Hình 6 là giao diện giao tiếp giữa vi điều khiển và máy tính được viết trên nền Visual basic. Ngoài chức năng nhập các thông tin bên ngoài (1), (2) thay thế cho ma trận bàn phím, kết quả thu được sau sau khi tính toán và đo đạc (3) có thể được lưu dưới dạng file word (4). Giao tiếp giữa vi điều khiển và máy tính qua chuẩn RS232 không đòi hỏi sự phức tạp quá công việc. Ngược lại, chính nhờ sự hỗ trợ của giao tiếp mà người dùng có thể giải quyết được nhiều việc hơn và là công cụ trực quan sinh động cho các bài thí nghiệm vật lí minh họa ngay tại lớp (hình 7). 3. Đánh giá sai số Hình 6. Giao diện giao tiếp với máy tính cho Pic 16F877A 4 1 3 2 Hình 7. Thí nghiệm con lắc đơn dùng giao tiếp máy tính Kỉ yếu Hội nghị sinh viên NCKH 74 Trong quá trình xử lí tín hiệu có liên quan đến bộ định thời, vi điều khiển hoạt động sẽ mắc sai số. Các sai số này bao gồm sai số do bộ nhớ dữ liệu và sai số hệ thống. 3.1. Sai số do bộ nhớ dữ liệu Trong quá trình xử lí, vi điều khiển lưu biến thời gian t dưới dạng số thực, đây là kiểu số thực có độ dài dữ liệu 32 bits. Cấu trúc kiểu số thực (hình 8) gồm có 8 bits cao lưu giá trị số mũ, 1 bit lưu dấu của dữ liệu và 23 bits thấp lưu phần định trị. Với số mũ là 20= 1, giá trị nhỏ nhất của phần định trị là . Như vậy, với giá trị thời gian đo đạc là 1s thì sai số do bộ nhớ dữ liệu là . Trong các bài thí nghiệm cơ học thuộc chương trình vật lí trung học phổ thông thời gian đo không vượt quá 100 s, sai số do bộ nhớ dữ liệu có giá trị lớn nhất là . Exponent Sign Mantissa eeee eeee s mmm mmmm mmmm mmmm mmmm mmmm 8 bits 1 bit 23 bit Hình 8. Cấu trúc dữ liệu kiểu số thực 32 bits 3.2. Sai số hệ thống 3.2.1. Sai số do code lập trình Khi có tín hiệu đưa đến vi điều khiển, PIC 16F877A sẽ kích ngắt để lấy giá trị biến m là biến xảy ra số lần tràn và biến TMR1H:TMR1L xác định giá trị đếm hiện tại của Timer1. Hai giá trị này sẽ phục vụ cho công việc xác định thời gian cần đo đạc. Như vậy sai số sẽ xuất hiện trong khoảng thời gian từ khi kích ngắt và trong thời gian PIC 16F877A lấy giá trị hai biến m và TMR1H:TMR1L. Hình 9. Sai số do code lập trình 3.2.2. Sai số do tín hiệu hồng ngoại là ngắt nam châm điện Hình 10. Đánh giá sai số lí thuyết Hình 11. Kiểm tra sai số Năm học 2012 - 2013 75 Khi có tín hiệu từ cảm biến hồng ngoại hay ngắt nam châm điện, bộ định thời sẽ bắt đầu hoạt động bằng cách tăng giá trị TMR1H: TMR1L sau mỗi lần có cạnh tác động xảy ra. Sai số ở đây mắc phải do tín hiệu đưa đến và cạnh tác động cho TMR1H: TMR1L chưa đồng bộ: tín hiệu đến không đúng thời điểm mà xung đếm ở cạnh lên (hình 10). Sai số hệ thống gây cho vi điều khiển độ trễ làm việcvà độ trễ này không thay đổi khi đo các giá trị thời gian khác nhau. Bằng cách sử dụng máy phát dao động cấp cho vi điều khiển PIC 16F877A, sai số hệ thống được xác định vào khoảng 66.6 10 s . Trong các bài thí nghiệm vật lí phổ thông, sai số yêu cầu 10-3s. Như vậy, bộ định thời trên là chấp nhận được. 3.3. Sai số máy đo thời gian hiện số MC – 964 So sánh kết quả với máy đo thời gian gian hiện số MC – 964, chúng tôi sử dụng tạo ra xung tần số 2 Hz từ máy phát dao động đưa vào máy MC – 964 ở chế độ đo chu kì (hình 12). Hình 12. Đồ thị so sánh sai số tỉ đối giữa máy đo thời gian hiện số MC – 964 và máy đo và xử lí thời gian sử dụngPIC 16F877A. Bảng 1. Kết quả đo tần số 2Hz của MC –964 Chu kì chuẩn T = 1s STT Số chu kì (n) t (s) T(s) T(s) 1 1 0,99 0,990 0,010 2 8 7,98 0,998 0,002 3 16 15,97 0,998 0,002 4 24 23,96 0,998 0,002 5 32 31,95 0,998 0,002 Chu kì đo: T = 0,9964 0,0036 s Sai số tỉ đối: = 0,36% Kỉ yếu Hội nghị sinh viên NCKH 76 Máy đo thời gian hiện số MC - 964 mắc sai số lớn (1%) với số chu kì đo nhỏ (n<8) và cho giá trị càng chính xác khi lấy số chu kì đo càng lớn. Như vậy, với các bài thí nghiệm như đo thời gian vật chắn cổng quang điện hay đo gia tốc rơi tự do, do thời gian lấy tính hiệu ngắn, chỉ trong một xung đến nên MC - 964 sẽ mắc sai số lớn, kết quả đo kém chính xác. Với dụng cụ đo và xử lí thời gian sử dụng PIC 16F877A, sai số tỉ đối khi đo tần số 2Hz là = 0,01%. So với máy đo thời gian hiện số MC - 964, máy đo và xử lí thời gian sử dụng PIC 16F877A cho kết quả với độ chính xác cao. 4. Kết quả Áp dụng thí nghiệm này để khảo sát: chu kì con lắc đơn, hệ số ma sát trượt trên mặt phẳng nghiêng giữa máng nghiêng bằng nhôm – vật thép, gia tốc rơi tự do và vận tốc tức thời, vận tốc trung bình chuyển động thẳng đều của bi thép. Đây là các thí nghiệm được tiến hành theo nội dung thí nghiệm thuộc chương trình vật lí trung học phổ thông. Bảng 2. Chu kì con lắc đơn s = 410 1 mm, nT=5 chu kì Lần t g 1 6,450 1,290 9,727 0,024 2 6,440 1,288 9,757 0,006 3 6,440 1,288 9,757 0,006 4 6,438 1,288 9,763 0,012 Gia tốc trọng trường: g = 9,751 0,010 m/s2 Bảng 3. Xác định gia tốc rơi tự do Thời gian rơi t (s) Lần đo S (mm) 1 2 3 4 5 i t 2it 2 2 i i i sg t 500 0,320 0.320 0,320 0,321 0,320 0,320 0,103 9,753 550 0,336 0,335 0,336 0,335 0,336 0,336 0,113 9,767 600 0,351 0,350 0,350 0,351 0,351 0,351 0,123 9,762 Gia tốc rơi tự do: g = 9,761 0,005 m/s2 So sánh kết quả thu được trên máy đo và xử lí thời gian sử dụng PIC 16F877A với máy đo thời gian hiện số MC – 964, ta thu được đồ thị ở hình 13. Năm học 2012 - 2013 77 Hình 13. Đồ thị so sánh gia tốc rơi tự do giữa máy đo thời gian hiện số MC – 964 và máy đo và xử lí thời gian sử dụngPIC 16F877A. TN1: Thí nghiệm đo gia tốc rơi tự do,TN2: Thí nghiệm đo chu kì con lắc đơn. Giá trị đo gia tốc rơi tự do ở Thành phố Hồ Chí Minh (vĩ độ 10o8’B) có giá trị 9,787m/s2. Như vậy máy đo thời gian hiện số MC – 964 cho kết quả kém chính xác hơn máy đo và xử lí thời gian sử dụng PIC 16F877A. Bảng 4. Xác định hệ số ma sát trượt s = 400 1 mm n t 2 2sa t t t 1 0,742 1,453 0,206 0,0004 2 0,740 1,446 0,205 0,0006 3 0,742 1,453 0,206 0,0004 4 0,740 1,446 0,205 0,0006 5 0,742 1,453 0,206 0,0004 t = 0,2056 0,0005 Kỉ yếu Hội nghị sinh viên NCKH 78 Hình 14. Đồ thị so sánh hệ số ma sát giữa máy đo thời gian hiện số MC – 964 và máy đo sử dụngPIC 16F877A. Do sự phụ thuộc của hệ số ma sát vào tính chất mặt tiếp xúc giữa vật và mặt nghiêng (bụi, độ ẩm, độ trầy xước cả vật và mặt nghiêng,...) nên độ chệnh lệch hệ số ma sát (khoảng 0,010) có thể chấp nhận được, các kết quả xem như tương đương. Bảng 5. Xác định vận tốc tức thời và vận tốc trung bình d = 20,70 0,02 mm Lần t 1 tt dv t vtt s tb dv t vtb 1 0,034 0,609 0,007 30 0,520 0,577 0,001 2 0,034 0,609 0,007 30 0,520 0,577 0,001 3 0,033 0,627 0,011 50 0,869 0,575 0,001 4 0,034 0,609 0,007 30 0,521 0,577 0,001 5 0,033 0,627 0,011 50 0,869 0,575 0,001 Vận tốc tức thời: vtt = 0,616 0,009 m/s Vận tốc trung bình: vtb = 0,576 0,001 m/s Năm học 2012 - 2013 79 Hình 15. Đồ thị so sánh vận tốc tức thời (hình 15a) và vận tốc trung bình (hình 15b) giữa máy đo thời gian hiện số MC – 964 và máy đo và xử lí thời gian sử dụng PIC 16F877A. Nhận xét: Do máy MC - 964 mắc sai số lớn khi đo thời gian ngắn (thời gian viên chắn cổng quang điện) và độ chính xác càng cao khi đo thời gian càng lớn nên giá trị vận tốc tức thời đo được ở hai máy có sự chênh lệch khá rõ ở đồ thị hình 15a. Trong khi đó, do đo vận tốc trung bình trong thời gian tương đối lớn nên kết quả hai máy thu được là như nhau (đồ thị hình 15b). 5. Kết luận Từ những kiến thức cơ bản về điện – điện tử và vi điều khiển, chúng tôi đã thiết kế được dụng cụ đo và xử lí thời gian dùng vi điểu khiển PIC 16F877A có độ chính xác cao hơn so với đồng hồ đếm thời gian hiện số MC – 964 đang đuợc sử dụng tại các phòng thí nghiệm vật lí phổ thông. Dụng cụ đo và xử lí thời gian dùng PIC 16F877A có khả năng làm việc và xử lí kết quả thu được dựa vào nguồn code nạp sẵn do đó làm tăng tính tự động cho thiết bị. Đây là dụng cụ giúp tối ưu hóa các bài thí nghiệm minh họa trên lớp. Ngoài ra, dụng cụ đo và xử lí thời gian dùng PIC 16F877A có khả năng loại nhiễu tốt nhờ vào hệ thống code bẫy lỗi, tạo độ tin cậy cao trong quá trình đo đạc và tính toán. Dụng cụ đo và xử lí thời gian dùng vi điểu khiển PIC 16F877A chỉ dừng lại trong đo đạc các bài thí nghiệm cơ học đơn giản dùng đến cổng hồng ngoại và nam châm điện. Vì vậy, đề tài có thể phát triển theo hướng mở rộng cho các thí nghiệm quang học, điện học cùng nhiều thí nghiệm khác trong chương trình vật lí trung học phổ thông. Kỉ yếu Hội nghị sinh viên NCKH 80 TÀI LIỆU THAM KHẢO 1. Đỗ Thanh Hải, Ngô Thanh Hải (2003), Nguyên lí căn bản và ứng dụng mạch điện tử, Nxb Thanh niên. 2. Trần Đặng Bảo Ân (2011), Xây dựng bộ thí nghiệm khảo sát chuyển động của vật dưới tác dụng của trọng trường, luận văn tốt nghiệp, Đại học Sư phạm TPHCM. 3. Dương Xuân Quý (2010), “Vấn đề sử dụng thiết bị thí nghiệm vật lí trong trường phổ thông thực trạng và giải pháp”, Tạp chí thiết bị giáo dục, số 61. 4. Martin P.Bates (2007), “Programming 8-Bit PIC Microcontroller in C with interactive Hardware Simulation”, Newnes, UK. 5. Lucio Di Jasio (2007), Programming 16-Bit PIC Microcontroller in C Learning to Fly the PIC24, Elsevier, USA. 6. Microchip Technology (2003), “Microchip PIC16F877A Data sheet 28/40/44-Pin enhanced flash Microcontrollers”, Microchip Technology.
File đính kèm:
- ung_dung_vi_dieu_khien_pic_16f877a_trong_thi_nghiem_vat_li_p.pdf