Nội dung tài liệu này bao gồm: Mạch hiển thị led 7 đoạn, mạch nghịch lưu, mạch cảnh báo băng loa, THUẬT TOÁN ĐO NHIỆT ĐỘ BẰNG LM35 VÀ ADC0809 ( bao gồm thuật toán và code trong keyC), Đọc độ ẩm từ cảm biến HS1101 (gồm thuật toán và code trong keyC).
Trang 11.Mạch hiển thị LED 7 đoạn:
Nhiệm vụ của khối: Hiển thị thời gian
Sơ đồ mạch:
Nguyên lý hoạt động:
Dữ liệu được đưa từ vi điều khiển vào ic 7447 có dạng nhị phân 4 bit, ic 7447 sẽ giải mã những số nhị phân này thành 7 tín hiệu đầu ra hiển thị các số tương ứng trên LED 7 đoạn loại Anot chung
Dự liệu từ 7447 được đưa đồng thời vào tất cả cả LED vì vậy muốn mối LED hiển thị giá trị mà ta mong muốn ta phải sử dụng phương pháp quét LED
Các LED được kích sáng thông qua các Transitor pnp với khoảng thời gian dẫn rất nhỏ và liên tục nhau, với mỗi thời gian sáng của LED tương ứng với dữ liệu mà ta muốn hiển thị ở LED đó được đưa vào Sơ đồ thời gian để quét LED
Trang 2Vì mắt ta có hiện tượng lưu ảnh nên khi LED chớp tắt lớn hơn 24 lần trên 1s thì ta thấy LED sáng liên tục
Đo và kiểm tra
IC7447:
Đo kiểm tra điều kiện làm việc:
Cấp nguồn cho IC
Đặt que đen vào chân 8, que đỏ vào VCCnguồn, đo được 5.04v => đạt yêu cầu Đặt que đỏ vào chân 16, que đen vào chân GND của nguồn, đo được 5.04V => đạt yêu cầu
Đo điện áp của mức logic:
Logic1 : 3.59v(đạt yêu cầu)
Logic0: 0.25v (đạt yêu câu)
Nhận xét: IC7447 đã có đủ điều kiện hoạt động
Trang 3Đo kiểm tra nguyên lý làm việc: Giả lập tín hiệu: Cấp nguồn cho IC, nối các chân
7,1,2,6 (tương ứng với 4 bit input A,B,C,D) vào GND, đo điện áp từ chân 9 đến chân 15, chân 14 có mức logic 1, các chân còn lại có mức logic 0=> thanh giữa của LED tắt, các thanh còn lại sáng
Nhận xét: IC7447 hoạt động theo đúng nguyên lý hoạt động trong lý thuyết.
Transitor A1013:
Đo kiểm tra điều kiện làm việc:
Đo điện áp Veb= 0.725v, Vcb= 0.713v, Vec= 0.12v
Nhận xét: Transitor hoạt động tốt
Đo kiểm tra nguyên lý làm việc:
Cấp nguồn cho mạch LED 7 đoạn, chân E nối với nguồn 5v,chân C nối với LED 7 đoạn
Giả lập tín hiệu:
Nối mass ở đầu nối với 7447 của trở 220Ω, chân B nối vào GND, ta thấy 1 thanh LED 7 đoạn sáng
Kết luận: Transitor hoạt động tốt ở chế độ bão hòa
2.Mạch nghịch lưu:
Nhiệm vụ của mạch:
Chuyển điện áp 12v một chiều từ acquy thành điện áp xoay chiều 220v
Sơ đồ mạch:
Trang 4Nguyên lý hoạt động: Nguồn 12v được cung cấp từ acquy Khi được cấp nguồn IC
4047 tạo ra xung vuông, xung vuông ra trên 2 chân 10,11 ngược pha nhau Ta có thể điều chỉnh tần số của xung vuông qua biến trở
Tín hiệu xung được cấp trực tiếp cho chân 1 của optoPC817 khoảng 1.1v Khi có xung opto dẫn xung kích dẫn cho MOSFET IRF540 làm cho biến áp điểm giữa xuất hiện dòng điện ở cả 2 nữa chu kỳ
Đo và kiểm tra:
IC4047:
Đo kiểm tra điều kiện làm việc:
Cấp nguồn cho IC
Đặt que đen vào GND, que đỏ lần lượt đặt vào chân 4,5,6 điện áp đo được là V= 12.39v
Đặt que đen vào GND,que đỏ lần lượt vào chân 8 và chân 12 điện áp đo được là V=0.00v
Kiểm tra nguồn cung cấp ở 2 chân 14 và 7
Nhận xét: IC4047 đã đủ điều kiện để hoạt động
Đo kiểm tra nguyên lý làm việc:
Dùng máy hiện sóng đo dạng sóng đầu ở 2 chân 10 và 11
Dạng sóng có dạng xung vuông,điều chỉnh biến trở để tần sô là 50hz
Nhận xét: IC4047 đã hoạt động đúng như nguyên lý trong lý thuyết
OPTO PC817:
Đo kiểm tra điều kiện làm việc:
Đưa que đen vào lần lượt chân 2 và chân 3, que đỏ đặt vào nguồn Vcc V=12.30v Đưa que đỏ vào chân 4, que đen vào GND của nguồn V= 12.30v
Nhận xét: opto đã được cung cấp đầy đủ điều kiện hoạt động
Đo kiểm tra nguyên lý làm việc:
Trang 5Dùng máy hiện sóng đo trên chân 1 của opto.
3.Mạch cảnh báo bằng loa:
Nhiệm vụ của mạch: Phát tín hiệu cảnh báo khi các thông số môi trường không
được ổn định
Sơ đồ mạch:
Nguyên lý hoạt động:
Transitor npn hoạt động ở chế độ bão hòa Khi có vi điều khiển thay đổi mức logic
từ 0 sang 1, transitor chuyển đổi trạng trái sang dẫn bão hòa, loa được cấp áp 5v và phát tiếng kêu
Kiểm tra loa: Cấp nguồn 5v cho loa, loa kêu=> loa hoạt động tốt.
Transitor D468:
Đo kiểm tra điều kiện làm việc:Đưa đồng hồ về than đo diode, đặt que đỏ vào
chân B, que đen lần lượt vào chân E và C,đồng hồ hiển thị giá trị khoảng 500-600 Nhận xét: Transitor D468 hoạt động tốt
Đo kiểm tra nguyên lý làm việc:
Trang 6Giả lập tín hiệu vào chân B của D468, khi ở mức logic 1 chân B, transitor dẫn và loa kêu
Nhận xét: D468 hoạt động đúng theo nguyên lý
4.Mạch ổn áp 5v dùng 7805:
Nhiệm vụ của mạch: Cấp nguồn 5v cho toàn bộ khối LED
Sơ đồ mạch:
Đo và kiểm tra:
Cấp nguồn 12v cho 7805, đo điện áp ra trên chân 2 và 3, Vout= 5.04v
Nhận xét: 7805 đã hoạt động tốt ở điều kiện không tải
Đọc nhiệt độ từ cảm biến LM35
LƯU ĐỒ THUẬT TOÁN ĐO NHIỆT ĐỘ BẰNG LM35 VÀ ADC0809:
ADC
Cung cấp địa chỉ
Bắt đầu chuyển đổi Chốt địa chỉ
Chuyển đổi xong
xong
Lưu dữ liệu
End
Trang 7Chương trình đọc nhiệt độ:
#include <REGX51.H>
#include <math.h>
#include <intrins.H>
#include<stdio.h>
#define ADC P0
sbit START= P1^0;
sbit EOC = P1^1;
void main()
{
unsigned int nhietdo;
while(1)
{
//OE=0;
P3_2=1;
P3_3=1;
START=0;
START=1;
START=0;
while(EOC==0);
nhietdo=P0;
}}
Kiểm tra code
Trang 8Nạp code cho vi điều khiển,cắm vào mạch điện Đo điện áp Port0 của vi điều khiển, ta đo được giá trị là:
(0011 0010)b => (50)d
Chuyển qua giá trị điện áp:
V= 50*5/225= 0.967v
Đo điện áp trên chân 1 của LM358 V= 0.972v
Nhận xét: Vậy code đo nhiệt độ hoạt động tốt, sai số giá trị điện áp khá nhỏ
Đọc độ ẩm từ cảm biến HS1101
Lưu đồ thuật toán đọc độ ẩm:
Độ ẩm
Timer1, MODE1,GATE1
Xóa TL1,TH1
Chờ bắt đầu 1 xung
Timer1 bắt đầu đếm
Đợi hết xung
Ngừng timer1
Chuyển tần số => độ ẩm
Lưu giá trị
End
Trang 9#include <REGX51.H>
#include<stdio.h>
#include<math.h>
code int bangtanso[101]={
7410,7392,7374,7357,7340,7323,7307,7290,7274,7259, 7243,7228,7213,7198,7183,7169,7155,7140,7127,7113, 7099,7086,7072,7059,7046,7033,7020,7007,6995,6982, 6969,6957,6945,6932,6920,6908,6896,6884,6872,6860, 6848,6836,6824,6812,6800,6788,6776,6764,6752,6740, 6728,6716,6704,6692,6680,6668,6656,6643,6631,6619, 6606,6594,6581,6568,6556,6543,6530,6517,6504,6491, 6477,6464,6450,6437,6423,6409,6395,6381,6367,6352, 6338,6323,6309,6294,6279,6264,6248,6233,6217,6202, 6186,6170,6154,6137,6121,6104,6087,6070,6053,6036, 6019};
unsigned int docdoam(unsigned int tanso)
{
unsigned int i;
for(i=0;i<101;i++)
Trang 10{
if ((tanso+25)>bangtanso[i])
return i;
}
return 100;
}
#define OUT P1=0;
void main()
{
unsigned int t, tanso,doam;
TMOD &= 0xF0;
TMOD |= 0x09; // Gate = 1, M0 = 1; TH0 = 0;
TL0 = 0;
while(INT0); // Bo qua muc 1 dau tien while(!INT0); // Bo qua muc 0
TR0 = 1;
while(INT0);
Trang 11TR0 = 0;
t = TH0;
t <<= 8;
t |= TL0;
t*=2;
tanso=1000000/(t);
doam=docdoam(tanso);
P1 =doam;
}
Kiểm tra code:
Kết nối khối cảm biến độ ẩm vào chân P3.2(INT0) của vi điều khiển Nạp code cho vi điều khiển Cấp nguồn cho mạch Dùng đồng hồ đo điện áp ra trên Port1 Kết quả thu được chuỗi nhị phân
(01010101)b =>(85)d
Vậy ta thu được kết quả đo độ ẩm là 85% Kết quả kiểm tra thời tiết tại thời điểm
đó là 83%
Nhận xét: Code đọc độ ẩm đã hoạt động tốt