Mình có lắp 1 mạch đơn giản là đo nhiệt độ bằng LM35 hiển thị ra LCD. Chân Vout của LM35 mình xuất thẳng vào kênh ADC0 của atmega16. Mình lắp như sau:
Vcc: được đưa lên nguồn khá ổn định (nguồn này mình đo thì luôn thấy dao động từ 5 - 5,15V)
AVcc: đưa lên nguồn chung với Vcc nhưng có mắc song song thêm tụ 100nF. Thằng này cũng khá ổn định sai số ko quá 0.3 với Vcc.
Vref: mình bỏ trống vì sử dụng điện áp nội 2,56V
Sử dụng 8bit, như vậy mỗi oC ứng với 10mV (dải nhiệt độ từ 0 - 255oC)
Kết quả là thằng LCD nó nhảy tùm lum. Mình có 2 câu hỏi:
1. Khi có điện áp từ Vout của LM35 đưa vào ADC0 thì nó cứ nhảy loạn xạ (dù điện áp mình đo được giữa 2 chân Vout và Mass của LM35 là cỡ 0.3V thì lẽ ra nó phải hiển thị cỡ 30 độ chứ). Code mình mô phỏng trên proteus chạy tốt.
2. Kỳ lạ hơn nữa là khi mình rút chân Vout của LM35 ra thì thằng LCD nó nhảy dữ hơn nữa. Lúc này mình đo điện áp giữa chân 40 (ADC0) với mass thì thấy nó có điện áp biến đổi liên tục. Vậy điện áp này đâu ra nhỉ?
Bạn nào có kinh nghiệm vụ này ko giúp mình với? Mình muốn biết nguyên nhân mà nghĩ hoài ko ra.
Vcc: được đưa lên nguồn khá ổn định (nguồn này mình đo thì luôn thấy dao động từ 5 - 5,15V)
AVcc: đưa lên nguồn chung với Vcc nhưng có mắc song song thêm tụ 100nF. Thằng này cũng khá ổn định sai số ko quá 0.3 với Vcc.
Vref: mình bỏ trống vì sử dụng điện áp nội 2,56V
Sử dụng 8bit, như vậy mỗi oC ứng với 10mV (dải nhiệt độ từ 0 - 255oC)
Kết quả là thằng LCD nó nhảy tùm lum. Mình có 2 câu hỏi:
1. Khi có điện áp từ Vout của LM35 đưa vào ADC0 thì nó cứ nhảy loạn xạ (dù điện áp mình đo được giữa 2 chân Vout và Mass của LM35 là cỡ 0.3V thì lẽ ra nó phải hiển thị cỡ 30 độ chứ). Code mình mô phỏng trên proteus chạy tốt.
2. Kỳ lạ hơn nữa là khi mình rút chân Vout của LM35 ra thì thằng LCD nó nhảy dữ hơn nữa. Lúc này mình đo điện áp giữa chân 40 (ADC0) với mass thì thấy nó có điện áp biến đổi liên tục. Vậy điện áp này đâu ra nhỉ?
Bạn nào có kinh nghiệm vụ này ko giúp mình với? Mình muốn biết nguyên nhân mà nghĩ hoài ko ra.
Comment