Để cụ thể hóa những yêu cầu chức năng trên, nhóm em cũng đưa ra những yêu cầu phi chức năng như sau:
– Sản phẩm phải hoạt động được trong giới hạn từ 0oC đến 50oC vì đó là nhiệt độ phổ biến đối với các môi trường sống của con người.
– Nhiệt độ đo được phải sai lệch không quá 1oC, vì khi nhiệt độ xuống thấp thì chỉ thay đổi 1oC cũng sẽ gây ảnh hưởng không tốt tới sức khỏe của con người.
– Khi nhiệt độ xuống thấp hơn 15oC thì có tín hiệu cảnh báo. Tmin để 15 độ vì nhiệt độ thực tế nước ta 15 độ là mức nhiệt khá thấp nên cần cảnh báo để có các biện pháp như bật lò sưởi, điều hòa,… nên để mặc định là 15oC.
– Đặt mức nhiệt độ cao là 30oC mà người dùng có thể cài đặt sao cho cao hơn một mức nhiệt xác định thì có còi và đèn led cảnh báo.
– Thiết bị phải nhạy với nhiệt độ, thời gian đáp ứng không quá 1s.
2. ATmega8:
– Vi xử lý ATmega8 có tốc độ xử lý tối đa lên tới 16MHz, đây là một tốc độ phù hợp với yêu cầu kỹ thuật của sản phẩm là thời gian đáp ứng không quá 1s.
– Vi xử lý ATmega8 có bộ nhớ đủ lớn: dung lượng bộ nhớ chương trình: 8 KB, bộ nhớ EEPROM: 512 Byte và dung lượng bộ nhớ RAM là 1 KB.
– Vi xử lý ATmega8 có khả năng chuyển đổi tương tự – số (ADC) với độ phân giải 10bit, như vậy từ mức 0V đến mức điện áp tham chiếu sẽ có 1024 mức giá trị điện áp số, với khoảng chia nhỏ như vậy sẽ hạn chế được sai số khi làm tròn. Cấu tạo của bộ ADC của ATmega8 là các khuếch đại thuật toán có trở kháng vào rất lớn nên coi như không có dòng vào, nên khi đưa điện áp Vout của cảm biến vào bộ ADC thì kết cấu dòng điện trong mạch không thay đổi.
– Mức điện áp cung cấp và điện áp tham chiếu của ATmega8 vào khoảng từ 3 đến 5V, đây cũng là mức điện áp nằm trong khoảng khuyến nghị đối với cảm biến LM35 nên hai thiết bị này có thể dùng chung nguồn.
3. LM35:
Thông số kỹ thuật:
Đơn vị nhiệt độ:°C
Nhiệt độ thay đổi tuyến tính: 10mV/°C
Độ chính xác ±0.5°C tại 25°C
Giới hạn đo từ -55°C đến 150°C
Nguồn hoạt động từ 3-5.5V
LM35 có hiệu năng cao, công suất tiêu thụ 60uA
Kiểu đóng gói chân TO-92
4. Các bước đo:
Lặp đi lặp lại các bước sau:
Bước 1: – Đo điện áp Vout bằng bộ ADC.
– Chọn điện áp tham chiếu là 5V.
– Gọi giá trị đo được là adc_value.
Bước 2: Tính nhiệt độ theo công thức T = 500*adc_value/1023 (oC).
Chứng minh:
Vì có 10 bit độ phân giải nên từ 0V đến 5V có 2^10 = 1024 mức (hay 1023 khoảng). Suy ra:
Từ công thức (1) và công thức (2) ta chứng minh được:
T = 500*adc_value/1023 (oC) (3)
Bước 3: Làm tròn kết quả đo và hiển thị lên LCD.
Làm tròn kết quả đo là điều cần thiết vì khi hiển thị kết quả đo lên LCD thì vi xử lý mặc định làm tròn kết quả xuống, như vậy sẽ gây ra sai số lớn.
Giả sử ta đo được adc_value = 47, thay vào công thức (3) ta có T = 22.97 và nếu không chủ động làm tròn thì kết quả sẽ bị hiển thị là 22oC, đó là một điều không hợp lý vì lẽ ra phải làm tròn lên 23oC.
Bước 4: Đọc mức cài đặt nhiệt độ cao Tmax từ người sử dụng.
Bước 5: So sánh với mức Tmin = 15oC, nếu thấp hơn thì cảnh báo và chuyển bước 1, nếu không thì chuyển sang bước 6.
Bước 6: So sánh với mức Tmax (do người dùng cài đặt), nếu cao hơn thì cảnh báo và chuyển sang bước 1, nếu không thì chuyển sang bước 7.
Nam Trả lời
05/03/2023Ad cho e xin mạch in vs code vs ạ , em cảm ơn