TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HỒ CHÍ MINH
KHOA CƠ KHÍ
BỘ MÔN CƠ ĐIỆN TỬ
ĐỀ TÀI
ĐO NHIỆT ĐỘ MÔI TRƯỜNG SỬ
DỤNG LM35, HIỂN THỊ LED 7 ĐO
GVHD: Đoàn Thế Thảo
MỤC LỤC
I. TỔNG QUAN
II. THIẾT KẾ HỆ THỐNG
III. KẾT QUẢ
I. TỔNG QUAN
Nhiệt độ môi trường luôn ảnh hưởng trực tiếp tới sinh
hoạt và đời sống của chúng ta. Việc xác định nhiệt độ
môi trường từ lâu đã là điều không thể thiếu. Vì vậy
nhóm chúng em đã chọn đề tài: ‘‘Đo nhiệt độ môi trường
sử dụng LM35 và hiển thị trên LED 7 đoạn’’
Yêu cầu bài toán:
• Đọc về tín hiệu của cảm biến
• Hiển thị chính xác nhiệt độ môi trường xung quanh.
• Hiển thị qua LED 7 đoạn.
II. THIẾT KẾ HỆ THỐNG
1. Sơ đồ tổng quát
II. THIẾT KẾ HỆ THỐNG
1. Sơ đồ tổng quát
Nguyên lý hoạt động của sơ đồ :
• Khi nhiệt độ môi trường tác động vào bộ cảm biến, bộ cảm biến
sẽ thu nhận rồi gửi đến khối chuyển đổi ADC dưới dạng tín hiệu
tương tự.
• Bộ ADC có nhiệm vụ biến đổi tín hiệu tương tự đó thành tín
hiệu số và gửi cho khối vi điều khiển. Khối vi điều khiển xử lý
tín hiệu rồi đưa ra ngoài thông qua khối hiển thị.
II. THIẾT KẾ HỆ THỐNG
2. Linh kiện sử dụng
LM35
• Dòng LM35 là dòng mạch tích hợp cảm biến chính xác nhiệt độ,
có điện áp ra tỉ lệ thuận tuyến tính với nhiệt độ (ºC) 10mV/oC
• Khoảng nhiệt độ đo đối với LM35D: 0oC đến 100ºC
• Sai số thấp, chỉ khoảng ±0.6ºC ở nhiệt độ phòng và ±0.9ºC ở
nhiệt độ Tmax và Tmin
II. THIẾT KẾ HỆ THỐNG
2. Linh kiện sử dụng
LED 7 đoạn MPX4-CA anot chung
Điện trở: 330Ω, 1KΩ
BJT A1015
II. THIẾT KẾ HỆ THỐNG
3. Sơ đồ nguyên lí
II. THIẾT KẾ HỆ THỐNG
4. Mô phỏng trên Proteus
II. THIẾT KẾ HỆ THỐNG
5. Thiết kế mạch khối hiển thị
Mạch in khối hiển thị
II. THIẾT KẾ HỆ THỐNG
6. Các module khác
Sử dụng đế OUTPORT 16F để Sử dụng USB CP2102 để nạp
cắm vi điều khiển PIC16F877A
chương trình cho vi điều
khiển bằng Bootloader
II. THIẾT KẾ HỆ THỐNG
7. Giải thuật và tính toán
Công thức biến đổi trong ADC:
• Ở đây ta dùng adc của pic là 10bit
max= 1023, Vref=Vcc =5V
• Ứng với
II. THIẾT KẾ HỆ THỐNG
8. Chương trình
#include <16F877A.h>
#device *=16 adc=10
#FUSES NOWDT
//No Watch Dog Timer
#FUSES NOBROWNOUT
//No brownout reset
#FUSES NOLVP
#use delay(crystal=20000000)
#byte
port_B
= 0x06 //port
B
#byte
port_D
= 0x08 //port
D
#byte
tris_A
= 0x85 //tris
A
#byte
tris_B
= 0x86 //tris
B
#byte
tris_D
= 0x88 //tris
D
#bit
led_1
= port_D.7
#bit
led_2
= port_D.6
#bit
led_3
= port_D.5
#bit
led_4
= port_D.4
unsigned doc_adc,giatri;
Int8 ma7doan[13]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,
0x90,0xff,0x9c,0xc6};//{0,1,2,3,4,5,6,7,8,9,tat led,o,C}
int8 ks[4];
#int_timer0
II. THIẾT KẾ HỆ THỐNG
8. Chương trình
void quet_led(void)//sau 3ms thi thay doi led sang
{
set_timer0(0);//cai dat gia tri ban dau cho timer0
port_B=ma7doan[10]; //tat led
if(led_1==0)
{
led_1=1;
led_2=0;
port_B=ks[1];
}else
{
if(led_2==0)
{
led_2=1;
led_3=0;
port_B=ks[2];
}else
{
if(led_3==0)
{
led_3=1;
led_4=0;
II. THIẾT KẾ HỆ THỐNG
8. Chương trình
void kiso_nhietdo(int8 temp)
{
ks[0]=ma7doan[temp/10];
ks[1]=ma7doan[temp%10];
ks[2]=ma7doan[11];
ks[3]=ma7doan[12];
}
II. THIẾT KẾ HỆ THỐNG
8. Chương trình
void main()
{
//set tris
set_tris_a(0xff);
set_tris_b(0x00);
set_tris_d(0x00);
//setup timer 0
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_64);
set_timer0(0);//dat gia tri ban dau cho timer0
enable_interrupts(global);//cho phep ngat toan cuc
enable_interrupts(int_rtcc);//cho phep ngat tran timer0
//setup ADC
setup_adc(ADC_CLOCK_INTERNAL);//
setup_adc_ports(AN0);//chon kenh ADC
set_adc_channel(0);
delay_ms(50);
III. KẾT QUẢ
Lắp mạch
III. KẾT QUẢ
Nạp chương trình
• Sử dụng phần mềm Tiny Bootloader và USB CP2102 để nạp
chương trình cho vi điều khiển
• Nối các chân: RST, 5V, GND, RXD, TXD của USB CP2102
lần lượt với: MCLR,VCC,GND,RC7, RC6 của OUTPort 16F
Bấm “Write
Flash” để
nạp
Chọn file
.hex chương
trình
III. KẾT QUẢ
III. KẾT QUẢ
CÁM ƠN THẦY VÀ CÁC BẠN ĐÃ
CHÚ Ý THEO DÕI