Tải bản đầy đủ (.pdf) (12 trang)

ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A TRONG THÍ NGHIỆM VẬT LÍ PHỔ THÔNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.15 MB, 12 trang )

Năm học 2012 - 2013

ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A
TRONG THÍ NGHIỆM VẬT LÍ PHỔ THÔNG
Nguyễn Huỳnh Duy Khang
(Sinh viên năm 4, Khoa Vật lí)
GVHD: HVCH Trần Đặng Bảo Ân,
TS Nguyễn Lâm Duy
TÓM TẮT
Đề 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.
Từ khóa: vi điều khiển, thí nghiệm cơ học, thí nghiệm kiểm chứng.
ABSTRACT
This project indicates an application of the microcontroller 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 6.6  10 6 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
69


Kỉ yếu Hội nghị sinh viên NCKH

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
70


Năm học 2012 - 2013

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.

71


Kỉ yếu Hội nghị sinh viên NCKH

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:
t  ( m  65536  TMR1H : TMR1L) 

1
s
0.625  106

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.

72


Năm học 2012 - 2013

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).

1

3

2
4

Hình 6. Giao diện giao tiếp

Hình 7. Thí nghiệm con lắc đơn

với máy tính cho Pic 16F877A

dùng giao tiếp máy tính

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ố

73


Kỉ yếu Hội nghị sinh viên NCKH

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
74

Hình 11. Kiểm tra sai số


Năm học 2012 - 2013


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 6.6  10 6 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ì
t (s)
T(s) T(s)
(n)
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%
75


Kỉ yếu Hội nghị sinh viên NCKH

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
1
2
3
4

t
6,450
1,290
9,727
6,440
1,288
9,757
6,440
1,288
9,757
6,438
1,288
9,763
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
Lần đo Thời gian rơi t (s)
ti
S (mm)
1
2
3
4

5
500
550
600

0,320 0.320 0,320 0,321 0,320
0,336 0,335 0,336 0,335 0,336
0,351 0,350 0,350 0,351 0,351

0,320
0,336
0,351

g
0,024
0,006
0,006
0,012

2 si
ti2

ti2

gi 

0,103
0,113
0,123


9,753
9,767
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.

76


Năm học 2012 - 2013

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

1
2
3
4
5


0,742
0,740
0,742
0,740
0,742

a

2s
t2

t

1,453
0,206
1,446
0,205
1,453
0,206
1,446
0,205
1,453
0,206
t = 0,2056 0,0005

t
0,0004
0,0006
0,0004

0,0006
0,0004

77


Kỉ yếu Hội nghị sinh viên NCKH

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
1
2
3
4
5

78

t

vtt 

d
t1


0,034
0,609
0,034
0,609
0,033
0,627
0,034
0,609
0,033
0,627
Vận tốc tức thời:
vtt = 0,616 0,009 m/s

vtt

s

0,007
0,007
0,011
0,007
0,011

30
30
50
30
50


vtb 

d
t

0,520
0,577
0,520
0,577
0,869
0,575
0,521
0,577
0,869
0,575
Vận tốc trung bình:
vtb = 0,576 0,001 m/s

vtb
0,001
0,001
0,001
0,001
0,001


Năm học 2012 - 2013

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.

79


Kỉ yếu Hội nghị sinh viên NCKH

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.

80




×