E đang làm con ATmega16, dùng ADC trong, với Vin thay đổi dùng biến trở. Mọi người chỉ cho em cách đọc giá trị ADC khi thay đổi Vin. (dùng ngắt). Cảm ơn nhiều!
Chỉ cho em phần ADC.
Collapse
X
-
Tags: None
-
lâu rồi mình không đụng đến AVR nên cũng không rõ, nhưng không nhầm thì AVR có V_ref bên trong là 2,55V thì phải. nếu vậy V_in cũng phải phù hợp với V_ref nhỉ. mình thấy phần này trong tài liệu AVR có hết mà, bạn chịu khó đọc đi rồi mọi nguoi se giúp.
-
nếu cần độ chính xác tương đối thì bạn sử dụng Vref nội là 2.56V còn sai số thì tùy, bạn xem trong datasheet ở đoạn phía dưới gần cuối ấy.
còn nếu cần chính xác cao thì dùng nguồn Vref bên ngoài nối vào chân Vref.
cần chú ý là khi set để sử dụng Vref nội thì chân Vref cần được để hở hoặc mắc tụ 104 xuống mass.
và Vin phải nhỏ hơn Vref.nếu lớn hơn thì dùng cầu điện trở để chia xuống.
để đọc ADC về thì bạn có thể sử dụng timer để đọc hoặc cho vòng lặp tùy thích. phần này trong codevision có hỗ trợ khá nhiều. bạn chỉ cần đọc datasheet tí và set các thông số là chạy ok.
thân!
Comment
-
bạn nên chú ý là dải điện áp hoạt động của ADC vi điều khiển ATMEGA16 là 5v.nếu bạn dùng ADC 8 bít có nghĩa là độ phân giải của ADC sẽ là 5000(mV)/256= 20mV.và nếu như điện áp đầu vào bạn đọc từ tín hiệu điện áp ngoài lớn hơn 5v bạn cần dùng 1 cầu chia áp để có thể dùng ADC một cách chính xac.
Comment
-
chắc bạn nhầm tí chỗ này.Nguyên văn bởi thanh48ctu Xem bài viếtbạn nên chú ý là dải điện áp hoạt động của ADC vi điều khiển ATMEGA16 là 5v.nếu bạn dùng ADC 8 bít có nghĩa là độ phân giải của ADC sẽ là 5000(mV)/256= 20mV.và nếu như điện áp đầu vào bạn đọc từ tín hiệu điện áp ngoài lớn hơn 5v bạn cần dùng 1 cầu chia áp để có thể dùng ADC một cách chính xac.
để chân Vin ko bị khét thì cần giới hạn ở mức đó. còn để ADC đọc được giá trị chính xác tại chân Vin thì nó phải được giới hạn từ GND tới Vref. và khi đó độ phân giải của bộ adc sẽ là (Vref/2^sobit adc).
Comment
-
Bạn nói thế chứng tỏ là bạn chưa đọc Datasheet rồi, đối với AVR hay bất kìa VĐK nào việc đầu tiên khi nghiên cứu cũng là đọc Datasheet sau đó tham khảo code mẫu (làm việc nhanh hơn).
Tiện đây mình ngó lại Datasheet của con Mega16 thì thấy ghi tạm lại mấy thanh ghi cho bạn:
ADMUX: thanh ghi cho phép chọn Vref (ngoài hoặc Vref nội) và chọn Kênh ADC
ADCSCRA: thanh ghi điều khiển và thông báo trạng thái ADC (cái này muốn rõ xem lại sơ đồ khối trong Datasheet)
ADCH và ADCL: 2 thanh ghi thông báo giá trị ADC đọc được
Ngoài ra để làm với ngắt bạn phải set thêm bit cho phép ngắt ADC trong phần ngắt ngoại vi nữa.
Nếu làm AVR GCC thì lên mạng nhờ bác Google tìm hộ: ADC AVR là ra nhiều project ng ta đã viết sẵn.
Nếu làm bằng CodeVision thì đọc help rùi làm thử theo nó 1 tẹo là ra, chả phải nhớ thanh ghi nhiều lắm.
Comment
Bài viết mới nhất
Collapse
-
bởi domar123Giải pháp cho dàn PC cao cấp chơi game và làm việc
Khi xây dựng một bộ máy tính cao cấp, việc chọn đúng vi xử lý và card đồ họa sẽ quyết định trực tiếp đến trải nghiệm thực tế của bạn. Dòng chip AMD trang bị công nghệ...-
Channel: Đánh giá sản phẩm DTVN
18-08-2026, 08:55 -
-
bởi domar123Giải pháp toàn diện cho người dùng đa nhiệm
Nếu bạn đang cần một bộ máy vừa phục vụ công việc chuyên môn nặng vừa đáp ứng nhu cầu giải trí cao cấp, sự kết hợp giữa Ryzen 9 9950X TRAY và Radeon RX 9070 XT 16GB là lựa chọn...-
Channel: Đánh giá sản phẩm DTVN
17-08-2026, 17:12 -
-
bởi lvhnKhác nhau là đi lái thuê hoặc chạy dịch vụ được
...
-
Channel: Tâm tình dân kỹ thuật
17-08-2026, 15:50 -
-
bởi ittcHic, sao nhiều anh em khuyên là đàn ông đã học thì học luôn số sàn chứ đừng học số tự động anh....-
Channel: Tâm tình dân kỹ thuật
16-08-2026, 17:46 -
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
14-08-2026, 16:34 -


Comment