Mạch đo điện trở 000 - 999 dùng PIC16F877A

Đăng bởi Đỗ Hữu Quang 30/10/2020
Mạch đo điện trở 000 - 999 dùng PIC16F877A

Mạch đo điện trở 000 - 999

Xin chào mọi người hôm nay mình xin giới thệu một mạch đo điện trở dùng chức năng ADC của dòng vi điều khiển PIC16F877A

1, Danh sách linh kiện

DIP40 = 1

PIC 16F877A = 1

Thạch anh 20Mhz = 1

- Tụ gốm 33P = 2

- Led 7 thanh 0.56 Anot 3 số = 1

- Nút nhấn  = 1

A1015 = 3

Jump cái đơn = 1

LM7805 = 2

Trở băng 10K = 1

Trở 10K = 1

Trở 1K = 3

Jack DC 5.5 = 1

Trở 100 = 1

Tụ gốm 104 = 4

Tụ 1000uF/6.3V = 2

 

 

2, Sơ đồ nguyên lý

 

 

3, Nguyên lý hoạt động

 

a, ADC 16F877A

 

+ PIC có nhiều chân phục vụ  xử lý ADC với nhiều cách thức khác nhau . Để dùng ADC , bạn phải có khai báo #DEVICE cho biết dùng ADC mấy bit ( tuỳ chip hỗ trợ , thường là 8 hay 10 bit hoặc hơn) . Bạn cần lưu ý là: 1 VDK hỗ trợ ADC 10 bit thì giá trị vào luôn là 10 bit , nhưng chia cho 4 thì còn 8 bit . Do đó 1 biến trở chiết áp cấp cho ngõ vào ADC mà bạn chọn chế độ 10 bit thì sẽ rất nhạy so với chế độ 8 bit ( vì 2 bit cuối có thay đổi cũng không ảnh hưởng giá trị 8 bit cao và do đó kết quả 8 bit ADC ít thay đổi ) , nếu chương trình có chế độ kiểm tra ADC để cập nhật tính toán , hay dùng ngắt ADC ,  thì nó sẽ chạy hoài thôi . Dùng ADC 8 bit sẽ hạn chế điều này . Do đó mà CCS cung cấp chọn lựa ADC 8 hay 10 bit tùy mục đích sử dụng .

Cấu hình bộ ADC : 
+ Thông dụng nhất khi dùng ADC là sử dụng 1 biến trở , điều chỉnh bởi 1 nút vặn , qua đó thu được 1 điện áp nhỏ hơn điện áp tham chiếu ( Vref – áp max ) , đưa vào chân biến đổi ADC , kết quả cho 1 giá trị số ADC 8 bit ( 0-255 ) hay ADC 10 bit (0-1023 ) . Thường thì áp Vref lấy bằng Vdd ( 5V ).
+ Trên các PIC có ngõ AVdd và AVss ( PIC 18 ) , thường thì bạn luôn nối AVdd tới Vdd , AVss tới Vss để đảm bảo họat động cho lập trình qua ICD 2 . 
 

 

b, Hoạt động

 

- Dựa trên sự phân áp khi mắc 2 đện trở mắc nối tiếp, khi mắc điện trở cần đo vào sẽ phâ áp với điện trở mẫu chẩn 390R được một giá trị điện áp đưa vào chân ADC của Pic, từ giá trị điện áp đó để tính ra giá trị của điện trở cần đo.

- Sai số lớn nhất 6% trong dải đo từ 000 đến 999

 

4, Chương trình mẫu trên CCS 5

 

a, Khai báo thư viện dùng, định nghĩa chân và cấu hình cho chíp

 

 

b, Các hàm hiển thị

 

 

 

 

- Hàm void null(): Dùng hiển thị 3 ấu gạch dưới khi khôg có điện trở đo được cắm vào mạch

- Hàm display(long value): Dùng để tách số Value ra thành phần hàng trăm, chục, đơn vị để hiện thị lên Led 7 thanh

 

c, Hàm chính

 

 

 

- Setup_ADC_ports ( value ) : Xác định chân tín hiệu Analog vào

- Setup_ADC ( mode  ) : ADC_CLOCK_INTERNAL  : thời gian lấy mẫu bằng xung clock IC ( mất 2-6 us ) thường là chung cho các chip .

- Set_ADC_channel ( channel ) :  Chọn chân để đọc vào giá trị analog bằng lệnh Read_ADC ( ) .

- Ở đây mình dùng số 65280 vì khai báo ban đầu là ADC =16, 2^16 = 655356. Thay đổi giá trị này tùy theo sai số điện trở.

 

Download project: Here.

 

5, Bố trí linh kiện

 

6, Mạch in: Download.

7, Video test demo:

 

 

Mọi thắc mắc liên hê: Khánh

Các tin khác

Gửi bình luận
Chất lượng hàng đầu
Chất lượng hàng đầu

Cam kết tất cả sản phẩm chính hãng 100%

Giao hàng siêu nhanh
Giao hàng siêu nhanh

Chúng tôi cam kết giao hàng trong 24h

Mua hàng tiết kiệm
Mua hàng tiết kiệm

Giảm giá & khuyến mãi với ưu đãi cực lớn

Hỗ trợ online 24/7
Hỗ trợ online 24/7

Gọi ngay 0878842345 để được tư vấn

zalo
Hotline
0878842345