Làm cách nào để lấy mẫu tín hiệu tương tự -2 V đến +2 V bằng vi điều khiển PIC?


10

Tôi đang sử dụng một micro PIC với ADC 10 bit để đọc các tín hiệu tương tự có tần số nhỏ hơn 300 hz. Tuy nhiên, tín hiệu tương tự nằm trong phạm vi -2 V và +2 V. Làm cách nào tôi có thể điều chỉnh tín hiệu để đưa nó vào phạm vi có thể sử dụng (giả sử đầu vào của ADC phải dương) Ngoài ra tôi không có cực dương và cung cấp điện âm.





@Kellenjb - các câu hỏi bạn liên kết để không giải quyết các tính toán cho trường hợp cụ thể này, trong đó điện áp đầu vào đi cả hai đường vượt ra ngoài đường ray.
stevenvh

Các câu hỏi sau đây đã được đóng lại dưới dạng trùng lặp của câu hỏi này và có câu trả lời hữu ích: Electronics.stackexchange.com/questions/15985/ trộm , Electronics.stackexchange.com/questions/15940/
trộm

Câu trả lời:


14

lưu ý quan trọng:
câu trả lời này đã được đăng để giải quyết vấn đề cho đầu vào -20V đến + 20V , vì đó là những gì được hỏi. Đây là một phương pháp thông minh nhưng không hoạt động nếu giới hạn điện áp đầu vào nằm giữa các đường ray.

Bạn sẽ phải chia tỷ lệ điện áp bằng một bộ chia điện trở để bạn có được điện áp trong khoảng -2,5V đến + 2,5V và thêm 2,5V. (Tôi đoán là nguồn cấp điện 5V cho PIC của bạn).

Tính toán sau có vẻ dài, nhưng đó chỉ là do tôi giải thích chi tiết từng bước. Trong thực tế, nó dễ dàng đến mức bạn có thể làm điều đó trong đầu ngay lập tức.

Đầu tiên này:

R1 là điện trở giữa V O U T , R2 là điện trở giữa + 5 VV O U T , và R3 là điện trở giữa V O U TG N D . VINVOUT
+5VVOUT
VOUTGND

Chúng ta có bao nhiêu ẩn số? Ba, R1, R2 và R3. Không hoàn toàn, chúng ta có thể chọn một giá trị một cách tự do và hai giá trị còn lại phụ thuộc vào giá trị đó. Hãy chọn R3 = 1k. Cách toán học để tìm các giá trị khác là tạo một tập hợp hai phương trình đồng thời từ hai cặp ( , V O U T ) và giải các giá trị điện trở chưa biết. Bất kỳ cặp ( V I N , V O U T ) nào cũng được, nhưng chúng ta sẽ thấy rằng chúng ta có thể đơn giản hóa mọi thứ rất nhiều bằng cách chọn cẩn thận các cặp đó, cụ thể là các giá trị cực trị: ( + 20 V , + 5 V ) và ( -VINVOUTVINVOUT+20V+5V , 0 V ). 20V0V

Trường hợp đầu tiên: , V O U T = + 5 V Lưu ý rằng (và đây là chìa khóa cho giải pháp!) Cả hai đầu của R2 thấy + 5 V , do đó không có sụt áp, và do đó không có dòng điện qua R2. Điều đó có nghĩa là I R 1 phải giống với I R 3 (KCL). I R 3 = + 5 V - 0 VVIN=+20VVOUT=+5V
+5VIR1IR3
. Chúng ta biết dòng điện qua R 1 và điện áp trên nó, vì vậy chúng ta có thể tính toán điện trở của nó:R1=+20V-5VIR3=+5V0V1kΩ=5mA=IR1
. Tìm thấy đầu tiên của chúng tôi chưa biết! R1=+20V5V5mA=3kΩ

Trường hợp thứ hai: , V O U T = 0 V Điều tương tự như với R2 xảy ra với R3: không giảm điện áp, do đó không có dòng điện. Một lần nữa theo KCL, bây giờ tôi R 1 = I R 2 . I R 1 = - 20 V - 0 VVIN=20VVOUT=0V
IR1IR2
. Chúng ta biết dòng điện qua R2 và điện áp trên nó, vì vậy chúng ta có thể tính toán điện trở của nó:R2=+5V-0VIR1=20V0V3kΩ=6.67mA=IR2
. Tìm thấy thứ hai của chúng tôi chưa biết! R2=+5V0V6.67mA=0.75kΩ

Vì vậy, một giải pháp là: . R1=3kΩ,R2=0.75kΩ,R3=1kΩ

R1=12kΩ,R2=3kΩ,R3=4kΩ
VINVOUT0V2.5V0.75kΩ+2.5V+5V

VOUTR3//RADC=1kΩRADC=5kΩ11kΩ=1R3+1RADC=1R3+15kΩR3=1.25kΩ



VOUTVOUT


-20V trong sẽ dẫn đến một chút dưới 0V.
Olin Lathrop

(và có thể là Olin Lathrop): Tôi đã cố gắng tìm hiểu làm thế nào bạn tìm thấy giá trị của điện trở 7k. Tôi nhận thấy rằng khi điện áp đầu vào là 2,5V sẽ không có dòng điện chạy đến nút, bất kể giá trị điện trở là gì, vì không có sự khác biệt điện áp. Nhưng 2.5V trong đó không phải là tầm trung, trong khi 2.5V out là quá. Điều đó không có nghĩa là dải phân cách nên có hai điện trở khác nhau? Nếu bạn hiểu ý tôi.
Federico Russo

Có lẽ điều đó cũng giải thích nhận xét của @Olin Lathrop.
Federico Russo

@Frederico: Vâng, nó sẽ không hoàn toàn đối xứng. Tôi thảo luận về điều này trong câu trả lời của tôi. Có thể điều chỉnh ba điện trở thành ánh xạ -20 đến +20 volt đến 0 đến 5 volt, nhưng cả Steven và tôi đều chỉ ra những trường hợp đơn giản hơn khi bạn có được một phép thử sáng.
Olin Lathrop

6

Cách dễ nhất là sử dụng "bộ chia điện trở".

Bạn đã không nói điện áp mà PIC này đang chạy ở mức nào và do đó, phạm vi đầu vào A / D là, vì vậy, hãy sử dụng 5V làm ví dụ. Phạm vi điện áp đầu vào của bạn là 40V và đầu ra 5V, vì vậy bạn cần một cái gì đó suy giảm ít nhất 8. Bạn cũng cần kết quả được đặt ở giữa 1/2 Vdd, là 2,5V, trong khi điện áp đầu vào của bạn ở giữa 0V .

Điều này có thể được thực hiện với 3 điện trở. Một đầu của cả ba điện trở được kết nối với nhau và với chân đầu vào PIC A / D. Đầu kia của R1 đi đến tín hiệu đầu vào, R2 đi đến Vdd và R3 đi xuống đất. Bộ chia điện trở được hình thành bởi R1 và sự kết hợp song song của R2 và R3. Bạn có thể điều chỉnh R2 và R3 để căn giữa phạm vi kết quả ở mức 2,5V, nhưng để đơn giản giải thích điều này, chúng tôi sẽ sống với một chút sự đồng cảm và làm giảm thêm một chút để đảm bảo cả hai đầu được giới hạn trong phạm vi Vss-Vdd.

Giả sử PIC muốn tín hiệu tương tự có trở kháng từ 10 kΩ trở xuống. Một lần nữa để đơn giản, hãy tạo R2 và R3 20 kΩ. Trở kháng cho PIC sẽ không nhiều hơn kết hợp song song của chúng, là 10 kΩ. Để có độ suy giảm là 8, R1 cần phải gấp 7 lần R2 // R3, tức là 70 kΩ. Tuy nhiên, vì kết quả sẽ không đối xứng chính xác, chúng tôi cần suy giảm thêm một chút để đảm bảo -20V sẽ không dẫn đến ít hơn 0V vào PIC. Điều đó thực sự đòi hỏi độ suy giảm là 9, do đó, R1 phải ít nhất 8 lần R2 // R3, tức là 80 kΩ. Giá trị tiêu chuẩn là 82 kΩ sẽ cho phép một số độ dốc và lề nhưng bạn vẫn nhận được hầu hết phạm vi A / D để đo tín hiệu gốc.

Thêm:

Dưới đây là một ví dụ về việc tìm giải pháp chính xác cho một vấn đề tương tự. Điều này không có đồng hóa và có trở kháng đầu ra cụ thể. Dạng giải pháp này luôn có thể được sử dụng khi phạm vi A / D hoàn toàn nằm trong phạm vi điện áp đầu vào.


+1 vì theo như số lượng bộ phận, đây là cách dễ nhất để xây dựng những gì được yêu cầu. Một số lưu ý: Có thể xử lý sự không đối xứng trong mã của uC và bằng cách thêm một tụ điện song song với điện trở đi đến GND, tín hiệu có thể được làm mịn (bộ lọc thông thấp). Các góc freq. là 1 / (2 * pi R C), trong đó R là giá trị song song của cả ba điện trở và C là giá trị của nắp được thêm vào (dù sao ADC cũng cần nắp.). Vui lòng tính toán độ chính xác của thiết lập này khi xem xét tất cả các dung sai (R, lỗi ADC trong +/- tối đa LSB, lỗi tham chiếu, ...) - nó có thể tồi tệ hơn dự kiến.
cá ngựa vằn

@zebonaut - Tôi đã làm lại phép tính và giải thích từng bước chi tiết trong câu trả lời được cập nhật của tôi (ít phức tạp hơn nhiều so với vẻ ngoài của nó!). Nó cung cấp cho bạn một ánh xạ chính xác từ (-20V .. + 20V) đến (0V .. + 5V)
stevenvh

@zebonaut: Tụ điện có thể hữu ích như một bộ lọc khử răng cưa, nhưng nó không làm gì về phép đo. Tôi đã không nghĩ rằng sự đồng điệu nhỏ là một vấn đề lớn. Nó đủ dễ để chăm sóc phần sụn như bạn đã nói.
Olin Lathrop

Nếu bạn muốn bù sự bất đối xứng trong phần mềm, bạn sẽ phải tính toán hàm truyền chính xác. Nếu bạn vẫn phải làm điều này, tại sao không sử dụng đúng giá trị điện trở ở vị trí đầu tiên (không phải giá trị từ câu trả lời đầu tiên (sai lầm) của tôi!)
stevenvh

@stevenvh: Không có gì sai khi sử dụng các giá trị điện trở "đúng". Tôi nhận ra một ánh xạ chính xác là có thể (như tôi đã đề cập trong câu trả lời của mình), nhưng quyết định không đi vào sự phức tạp của các phép tính và trả lời trường hợp đơn giản hơn về mặt khái niệm dẫn đến một chút giả định. Trong mọi trường hợp, bạn phải giảm thêm một chút để tính đến việc trượt, và có lẽ nên hiệu chỉnh trong phần sụn.
Olin Lathrop

2

Đây là mạch tiêu chuẩn cho điều đó. Bạn cần mở rộng các giá trị điện trở cho trở kháng yêu cầu của bạn.


Bạn có cần đảm bảo trở kháng nguồn của bạn tương đối thấp nếu sử dụng nó không?
Nick T

Leon, tại sao không sử dụng một tụ điện thay vì điện trở 1k?
stevenvh

Đó là một giải pháp kết hợp DC. Các điện trở loạt là cần thiết cho hoạt động đúng.
Leon Heller

3
@Leon Heller: Tôi nghĩ rằng đây sẽ là một câu trả lời tốt hơn nếu bạn giải thích làm thế nào để tìm đúng giá trị cho các điện trở.
Federico Russo

2

Nếu tín hiệu không phải là DC hoặc nếu tham chiếu DC không quan trọng, tín hiệu có thể được ghép điện dung với đầu vào của ADC.

Ngoài ra, nếu mặt đất của bạn cho PIC nổi, bạn có thể buộc mặt đất tín hiệu của bạn với 1/2 VDD của PIC.


Nếu bạn sử dụng khớp nối điện dung, bạn sẽ loại bỏ thành phần DC, nhưng phần âm của tín hiệu vẫn sẽ ở dưới mặt đất, trừ khi bạn cung cấp độ lệch trên chân đầu vào bằng một bộ chia điện trở, như trong mạch của Leon.
stevenvh

Điện áp cung cấp không được chỉ định - nó sẽ hoạt động với ADC 5V. Nếu bạn đang sử dụng một Vdd nhỏ hơn, thì bạn sẽ cần phải mở rộng quy mô đầu vào. Nó sẽ biến thành mạch của Leon với một tụ điện tại thời điểm đó.
W5VO

2

Các mạch sau đây nên thực hiện công việc:

3.3V
 +
 |
 \
 / 1k
 \
 |
 +-- ADC input
 |
 \
 /  1k
 \
 |
 +-- Signal input (-2V to +2V)

Đó là một dải phân cách tiềm năng. Ở -2V, đầu ra sẽ là 0,65V; ở + 2V, 2,65V.

Tất cả nhiễu trên đường ray 3.3V sẽ được chuyển đến đầu vào, vì vậy hãy sử dụng tham chiếu điện áp tốt để giảm sự cố này.

Điều này cũng sẽ làm việc với các nguồn cung cấp khác, nhưng bù đắp sẽ thay đổi.


Vâng, nó hoạt động, nhưng sẽ rất tuyệt nếu sử dụng toàn bộ phạm vi ADC :-)
stevenvh

@stevenh Bạn có thể làm điều đó bằng cách sử dụng các tham chiếu 0,65V và 2,65V mặc dù sau đó bạn cũng có thể sử dụng mạch của mình.
Thomas O

VREF+VREFGND

@stevenh PIC24, DSPIC và PIC32 chắc chắn có Vref-. Tôi nghĩ rằng một số 18F làm quá.
Thomas O

Vâng, OK, tôi không biết tất cả (có rất nhiều trong số họ). OP không nói phần nào anh ta đang sử dụng và anh ta dường như biến mất, vì vậy không có ích gì khi hỏi anh ta.
stevenvh

1

VADCREF
VADCVDDVADCVADCREF+

VDD2V3.3VVADC

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.