Psoc chúng tôi viết trên phần mền biên dịch của PSoc Desiger và ngôn ngữ
là C. Và còn Dspic tôi viết trên môi trường Mplad và ngôn ngữ là C30
+ Đối với chương trình của Psoc thì tôi chỉ viết là đo được nhiệt độ và giá trị
nhiệt độ chỉ hiện thị lên LCD. Ngoài ra ko có chức năng nào.
+ Đối với chương trình viết trên Dspic thì tôi làm khá nhiều chức năng : Đo
nhiệt độ và cảnh báo nhiệt độ nhập từ bàn phím (Ma trận phím). Trong
chương trình thì quá trình nhập bàn phím chưa được tối ưu không được nhập
ngon lành như bán phím máy tính, Sau khi cảnh báo thì chương trình phải
reset lại.
14 trang |
Chia sẻ: thienmai908 | Lượt xem: 1241 | Lượt tải: 0
Nội dung tài liệu Mạch đếm thời gian và đo nhiệt độ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐỀ TÀI:
Nhiệm vụ thiết kế:mạch đếm thời gian và đo nhiệt độ
I/Mạch đo nhiệt độ.
Đo nhiệt độ từ 0—100 dùng cảm biến LM335
Đo nhiệt độ môi trường bây giờ trở nên khá đơn giản và dễ làm. Không cần
phải nhiệt kế thủy ngân nữa mà chúng ta hãy ứng dụng những kiến thức đã
học vào để làm 1 mạch đo nhiệt độ đơn giản. Một phần cải thiện kiến thức
lập trình và cách xử lý tín hiệu tương tự sang số mà chúng ta gọi tắt là ADC.
Một điều ở đây chỉ cần hiểu bản chất của vấn đề là được. Ở bài này chúng
tôi dùng chip vi điều khiển PSoc (11 bit) và Dspic (10bit) để xử lý tín hiệu
này.
A.Chuẩn bị linh kiện :
+ 1 con cảm biến nhiệt độ LM335 : 9K đến 12K
+ 1 con chip Psoc CY8C29466 hay là Dspic30f4011
+ 1 con LCD 16*2 để hiện thị kết quá
+ Thêm vào đó là vài linh kiện cơ bản như biến trở, tụ điện,...
Tìm hiểu cảm biến LM335
Hình dạng của LM335 ngoài thực tế :
Nó có 3 chân chính : 2 chân cấp nguồn và 1 chân out tín hiệu Analog
Khi ta cấp điện áp 5V cho LM335 thì nhiệt độ đo được từ cảm biến sẽ
chuyển thành điện áp tương ứng tại chân số 2 (Vout). Điện áp này được tỉ lệ
với giải nhiệt độ mà nó đo được. Với độ giải của nhiệt độ đầu ra là 10mV/K.
Hoạt động trong giải điện áp từ 0 cho đến 5V và giải nhiệt độ đo được từ 0
oC đến 100oC. Và cần chú ý đến những thông số chính sau :
+ Hoạt động chính xác ở dòng điện đầu vào từ 0.4mA đến 5mA. Dòng điện
đầu vào ngoài khoảng này kết quả đo sẽ sai
+ Điện áp cấp vào ổn định là 5V
+ Trở kháng đầu ra thấp 1 ôm
+ Giải nhiệt độ môi trường là từ 0 đến 100 C
Như vậy LM335 nó cho chúng ta tín hiệu tương tự (Analog) và chúng phải
xử lý tín hiệu này thành nhiệt độ.
B.Tính toán các giá trị của mạch đo
Do tín hiệu trả về từ cảm biến LM335 là tín hiệu tương tự . Như vậy để xử lý
tín hiệu này và cho ra kết quả nhiệt độ tương ứng thì ta cần dùng bộ biến đổi
tương tự sang số gọi tắt là ADC. Đầu bài là đo nhiệt độ từ 0 đến 100 C
Như ta đã biết độ phân giải nhiệt độ của LM335 là 10mV/ K nên ta có
+ Tại 0 C thì điện áp đầu ra tại LM335 là 2.73V
+ Tại 100 C thì điện áp đầu ra LM335 là 3.73V
Như vậy giải điện áp mà ADC biến đổi là từ (2.73V đến 3.73V) tức là 1V
Gọi S là giải điện áp đo của tín hiệu : S = (2.73 – 3.73V) tức là 1V
A là giải điện áp của ADC : A = 5V
Ta có trong con Dspic đã tích hợp sẵn bộ khối ADC 10 bit tốc độ cao và
trong con Psoc nó cũng tích hợp sẵn bộ ADC 11 bit nên sử dụng bộ ADC
này cho mục đích biến đổi. Ta có bước thay đổi của ADC 10 bit :
n = 5 /1024 = 4.9mV (Dspic)
n1 = 5/2047 = 2.44mV (Psoc
Sai số tương đối của mạch đo
ς= 0.0049/1 = 0.49% (Dspic)
ς1 = 0.00244/1 = 0.244% (Psoc)
C.Tính giá trị nhiệt độ đầu ra
LM335 là cảm biến nhiệt độ , với nhiệt độ đầu ra là 10mV/K
Sử dụng bộ biến đổi ADC_10bit :
+ có giá trị lớn nhất là 1024
+ với V = V = 5V
+ Bước thay đổi là : (Của Dspic và Psoc)n = 5/1024 = 4.9 (mV) (Dspic)
n1 = 5/2047 = 2.44(mV) (Psoc)
Nên tại ở 0 C hay 273K thì điện áp đầu ra LM335 có giá trị là 2.73V
Nên tại ở 100 C hay 373K thì điện áp đầu ra của LM335 có giá trị là :
373.10mV/K = 3.73V. Như vậy giải điện áp đầu vào sẽ là (2.73 đến 3.73V)
Tính toán được giá trị ADC đọc được từ Lm335.
+ V_in = 2.73V =>ADC_value = (1024/5).2.73 = 559 (Dspic)
+ V_in = 3.73V => ADC_value = (1024/5).3.73 = 764 (Dspic)
+ V_in = 2.73V => ADC_value = (2047/5)*2.73 = 1118 (Psoc)
+ V_in = 3.73 => ADC_value = (2047/5)*3.73 = 1527 (Psoc)
Mặt khác do ADC_value = 1 cho ra điện áp tương ứng là 4.9mV (dspic) và
2.44mV (Psoc). Trong khi đó LM335 cho ra điện áp là 10mV/K. Nên do đó
để ADC _value thay đổi trong 1 đơn vị thì nhiệt độ phải thay đổi là :
(4.9mV/10mV/K) = 0.5K (dspic) và (2.44mV/10mV/K) = 0.244K (Psoc)
Như vậy ta có công thức tính đầy đủ ra độ C tương ứng cho cả Psoc và
Dspic:
t = (ADC_value – 559)* (4.9mV/10mV) = (ADC_value – 559) * 0.49 (Đối
với Dspic)
t = (ADC_value - 1118) * (2.44mV/10mV) = (ADC_value - 1118) * 0.244
(Đối với Psoc)
5) Tính giá trị điện trở đệm cho LM355
Muốn áp ra ứng với 10mV/oK thì phải cấp dòng cho nó từ 400uA đến 5mA,
vậy phải có điện trở đệm.
Nếu dùng nguồn áp 5V, dải đo từ 0-100 C => áp trên LM335 sẽ từ 2.73V
đến 3.73V => áp rơi trên điện trở sẽ là từ 2.27V đến 1.27V => chọn điện trở
1.5k nối 5V - 1,5k - LM335.
Do điện trở 1.5K không có nên ta dùng biến trở để cho điện trở đệm là
1.5K.Điều chỉnh giátrijij điện trở này cho nhiệt độ đúng với giá trị nhiệt độ
mẫu.
D. Sơ đồ phần cứng của mạch đo
E) Đánh giá ưu nhược điểm của mạch đã thiết kế
Psoc chúng tôi viết trên phần mền biên dịch của PSoc Desiger và ngôn ngữ
là C. Và còn Dspic tôi viết trên môi trường Mplad và ngôn ngữ là C30
+ Đối với chương trình của Psoc thì tôi chỉ viết là đo được nhiệt độ và giá trị
nhiệt độ chỉ hiện thị lên LCD. Ngoài ra ko có chức năng nào.
+ Đối với chương trình viết trên Dspic thì tôi làm khá nhiều chức năng : Đo
nhiệt độ và cảnh báo nhiệt độ nhập từ bàn phím (Ma trận phím). Trong
chương trình thì quá trình nhập bàn phím chưa được tối ưu không được nhập
ngon lành như bán phím máy tính, Sau khi cảnh báo thì chương trình phải
reset lại.
Trong quá trình thực hiện cần chú ý. Cần hiểu quá trình biến đổi ADC như
tốc độ lấy mẫu, quá trình lọc số cho tín hiệu. Trong đây của chúng tôi không
có quá trình lọc số cho tín hiệu.Trong quá trình cần hiệu chỉnh nhiệt độ đúng
với giá trị thực của môi trường.
8) Một vài hình ảnh của mạch đo
+ Mạch đo đối với Psoc
+ Mạch đo khi làm với Dspic
II/Mạch đếm thời gian.
Mạch đếm thời gian
Xét mạch mô phỏng mạch đếm cơ bản dùng IC đếm 7490 như sau:
1. Phần tạo xung clock: Có thể dùng Tranistor hoặc IC nhưng thông
th
S
S
2
S
S
ường ta d
ơ đồ mạch
ơ đồ chân
. IC đếm:
ơ đồ chân
ơ đồ cổng
ùng mạc
tạo xun
NE555:
Dùng IC
IC 7490:
logic:
h tạo xung
g:
74LS90
sử dụng IC NE555
.
* Chú ý:
+ Chân CP0: Chân để kích xung clock.
+MR1, MR2: chân reset.
+ Các chân Q0,Q1,Q2, Q3: Các ngõ ra của IC đếm để đưa vào Input
của IC giải mã.
Đây là mạch đếm cơ bản đếm từ 0 đến 9. Ta có thể thiết kế đếm đến
1 số N bất kì bằng cách nối ngõ ra Q3( bit cao) của tầng thứ n đến
chân CP0 của tầng thứ (n+1)
3. IC giải mã: Dùng IC 74LS48:
Các đầu vào từ A0 đến A3 tương ứng với các số BCD được chọn.
LED sẽ hiển thị các số này theo bảng sau:
T
c
ừ sơ đồ cơ
ủa mạch đ
bản này
ồng hồ số
ta thiết k
:
ế mạch đồng hồ số.
Sơ đồ mô phỏng
Mạch này không đếm từ 00:00:00 đến 99:99:99 mà sẽ đếm đến
23:59:59.
Vì đây là mạch đồng hồ nên xung clock đưa vào phải có chu kì 1giây(
tần số 1Hz).
Đối với IC điều khiển việc đếm giây, ngay lúc LED hiển thị chuyển từ
trạng thái 59 giây sang 60 giây , ta dùng IC 7408 (Cổng AND đầu
tiên từ trên xuống) để Reset IC 7490 thứ nhất. Lúc này chân Reset sẽ
cùng trạng thái với đầu ra của cổng AND thứ nhất ( mức 1) , đầu ra
này còn được nối với chân xung clock CP0 của IC đếm phút. Một
xung clock được kích và IC đếm phút đếm lên 1 đơn vị.
Tương tự như thế đối với IC đếm phút . Riêng đối với IC đếm giờ,
trạng thái nó làm cho LED hiển thị 24 cũng chính là lúc nó Reset. Số
nhị phân tương ứng của 2 là Q3Q2Q1Q0=0010 và của 4 là
Q3Q2Q1Q0=0100. Vì vậy đầu ra tại Q1 của IC đếm giờ ( đếm hàng
chục) và Q2 của IC đếm giờ ( đếm hàng đơn vị) được đưa vào 7408(
cổng AND thứ 3 từ trên xuống) . Đầu ra từ cổng AND này sẽ được
đưa vào chân Reset của 2 IC đếm giờ. Vì vậy trạng thái tiếp theo sẽ
là 00:00:00.
Các file đính kèm theo tài liệu này:
- TaiLieuTongHop.Com---de TaI Mach dem thoi gian va do nhiet do.pdf