![]() |
|
![]() |
#1 |
Đệ tử 2 túi
|
khi bạn mô phỏng thấy hiển thị chưa đến 40 mà rc0 đã lên mức cao nhưng thực tế biến kqadc đã lớn hơn 40 rất nhiều. cụ thể là tăng 1 độ thì giá trị adc của bạn sẽ tăng 2.046, nếu nhiệt độ là 5 thì giá trị adc đọc được là 2.046x5=10.23 => kqadc=4.887*10.23=49.99 => từ 5 độ trở lên biến kqadc đã lớn hơn 40 nên rc0 lên mức cao là phải thôi.
bạn sửa lại như dưới đây là chạy được. kqadc=4.887*read_adc();// nếu bạn dùng biến kqadc này để so sánh sẽ không đúng giaima7doan(kqadc); hienthi(); kqadc=0.4887*read_adc();// thêm dòng này vào if(kqadc>40)
__________________
[email]toancdt09@gmail.com thay đổi nội dung bởi: toancdt, 10-08-2012 lúc 04:52 PM. Lý do: bổ sung |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 1 túi
Tham gia ngày: Jun 2011
Bài gửi: 18
: |
Trích:
kqadc=4.887*read_adc(); ma la kqadc=0.4887*read_adc(); zay ban |
|
![]() |
![]() |
![]() |
#3 | |
Đệ tử 2 túi
|
Trích:
Dùng ADC 10 bít, điện áp lấy mẫu Vdd = 5V, sensor LM35 (10 mV / 1 độ C) Xác định nhiệt độ đo được qua số đo trên chân ADC: Ta có: 5000 mV --- ứng với --- 1023 (thang đo ADC 10 bít) Vậy: 10 mV --- ứng với --- 10 x 1023/5000 = 2.046 Con số 2.046 tính được đó chính là lượng thay đổi trên chân ADC ứng với thay đổi 10mV ở đầu ra LM35 hay ứng với thay đổi 1 độ C trên LM35. Suy ra nhiệt độ đo được: Nhiệt độ = read_adc / 2.046 (1/2.046=0.4887) -----------------------------------------------------------------------------------------
__________________
[email]toancdt09@gmail.com |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|