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
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Hỏi về biến áp xungbởi nhathung1101Ngày xưa cô giáo bảo: Để chống nhiễu cao tần thì bọc lớp đồng mỏng quanh biến áp.
Ngày nay có lẽ do keo lởm, nên người ta buộc dây cho nó khỏi long ra....

















-
Channel: Điện tử dành cho người mới bắt đầu
09-11-2026, 20:51 -
-
-
bởi lamvu0677chào mọi người, trong con biến áp xung người ta hay quấn thêm mấy vòng dây thiếc quanh lõi từ thì e không hiểu nó có ý nghĩa hay tác dụng là gì , bác nào chuyên môn thông cho e phát.như ảnh dưới1 Photo
-
Channel: Điện tử dành cho người mới bắt đầu
-

Comment