Làm rõ ví dụ đầu vào Arduino


8

Trước hết tôi là tổng số nub trong điện tử.

Gần đây tôi có một Arduino Nano. Bây giờ tôi đang cố gắng để hiểu tại sao không có chiết áp danh nghĩa tại http://arduino.cc/en/Tutorial/ReadAnalogVol volt và cách biến thể của danh nghĩa này sẽ ảnh hưởng đến kết quả đọc đầu vào Analog.

Ngoài ra tại sao tại http://arduino.cc/en/Tutorial/AnalogReadSerial ví dụ họ chọn chiết áp 10k, điều gì sẽ khác với chiết áp 200k.

Cảm ơn!

Câu trả lời:


12

Sẽ không có sự khác biệt trong đầu ra điện áp gạt nước từ bất kỳ chiết áp (không tải) nào, tất cả đều hoạt động theo cùng một cách.

Tuy nhiên, đầu vào tương tự cho Arduino của bạn khuyến nghị trở kháng nguồn dưới 10kOhm, để có hiệu suất tối ưu. Điều này là do thời gian cần thiết để sạc mẫu và giữ tụ điện, có thể được coi là trở kháng động . Hình ảnh dưới đây được lấy từ bảng dữ liệu AtMega328 (bộ vi điều khiển mà Arduino dựa trên):

Trở kháng đầu vào tương tự

Đừng quá lo lắng nếu bạn không hoàn toàn hiểu điều này ngay bây giờ, chỉ cần chấp nhận chúng tôi cần trở kháng nguồn dưới 10kOhms.

Bây giờ làm thế nào để chúng ta tính toán trở kháng đầu ra từ một chiết áp?

Để biết chi tiết, hãy nhìn vào trở kháng tương đương của Thevenin . Điều này cho chúng ta biết rằng điện trở đầu ra tối đa từ cần gạt của nồi là 1/4 so với điện trở được đo từ trên xuống dưới (khi gạt nước ở giữa) Vì vậy, nếu nồi của bạn là 10k, thì điện trở đầu ra tối đa là 2,5k .
Dưới đây là mô phỏng của một nồi 10k được quét từ đầu này sang đầu kia:

Nồi Sim

Trục X biểu thị góc quay từ 0 đến 100% (bỏ qua các giá trị thực tế được hiển thị) Trục Y là trở kháng đầu ra được đo tại cần gạt nước. Chúng ta có thể thấy cách nó bắt đầu và kết thúc ở 0 ohms và cực đại ở mức 2,5kOms ở giữa (50%)
Đây là mức thấp hơn một cách thoải mái so với trở kháng nguồn được đề xuất là 10k.
Vì vậy, bạn có thể sử dụng bất kỳ giá trị nồi nào trong khoảng từ 100 ohms đến 40k làm bộ chia điện áp.

EDIT - để trả lời câu hỏi về những gì sẽ xảy ra nếu chúng ta sử dụng nồi 200k:

Như đã nói trong đoạn trích dữ liệu, trở kháng nguồn càng cao, tụ điện S / H càng mất nhiều thời gian để sạc. Nếu nó không được sạc đầy trước khi đọc xong thì việc đọc sẽ hiển thị lỗi so với giá trị thực.

Chúng ta có thể tìm ra thời gian tụ điện cần sạc đến 90% giá trị cuối cùng của nó, công thức là:

2.3 * R * C

Sau 1 thời gian RC không đổi, điện áp ở mức ~ 63% giá trị cuối cùng của nó. Sau 2,3 ​​thời gian, nó ở mức ~ 90% như trên. Điều này được tính bằng 1 - (1 / e ^ (RC / t)) trong đó e là logarit tự nhiên ~ 2.718. Ví dụ với hằng số thời gian 2,3 sẽ là 1 - (1 / e ^ 2.3) = 0.8997.

Vì vậy, nếu chúng ta cắm các giá trị được hiển thị - trở kháng nguồn 50k, trở kháng loạt 100k (giả sử trường hợp xấu nhất) và điện dung 14pF:

2,3 * 150k * 14pF = 4,83us để sạc tới 90%.

Chúng ta cũng có thể tính giá trị -3dB:

1 / (2pi * 150k * 14pF) = 75,8kHz

Nếu chúng ta muốn giá trị cuối cùng nằm trong 99%, chúng ta phải đợi khoảng 4,6 tau (hằng số thời gian):

4.6 * 150k * 14pF = 9,66us để sạc tới 99% - điều này tương ứng với khoảng 16,5kHz

Vì vậy, chúng ta có thể thấy trở kháng nguồn càng cao thì thời gian sạc càng dài và do đó tần số được đọc chính xác bởi ADC.

Trong trường hợp nồi kiểm soát giá trị ~ DC, bạn có thể lấy mẫu ở tần số rất thấp và cho nó nhiều thời gian để sạc, vì rò rỉ là rất nhỏ. Vì vậy, tôi nghĩ rằng 200k thực sự sẽ ổn trong trường hợp này. Ví dụ, tín hiệu âm thanh hoặc bất kỳ tín hiệu trở kháng cao (AC) khác nhau, bạn sẽ phải tính đến tất cả các yếu tố trên.
Liên kết này đi vào một số chi tiết tốt về các đặc điểm ADC của ATMega328.


1
Cảm ơn bạn rất nhiều vì đã giải thích chi tiết! Bạn có thể vui lòng làm rõ làm thế nào chiết áp lớn hơn 40 kΩ sẽ ảnh hưởng đến bài đọc kỹ thuật số? Chẳng hạn, hãy nhân với 5 chiết áp sẽ là 200 kΩ?
AB

@AB - Tôi đã thêm một số chi tiết, hy vọng nó sẽ giúp. Tôi nhận ra nồi trong câu hỏi của bạn chỉ được sử dụng để thay đổi giá trị DC (không kiểm soát mức tín hiệu AC) nên giá trị cao hơn sẽ ổn. Bạn có thể thực hiện một số thử nghiệm của riêng mình về hiệu quả của việc tăng trở kháng nguồn >> 10k nếu bạn có điện áp đã biết và thay đổi điện trở nối tiếp.
Oli Glaser

6

Oli cho bạn xem thông tin trong bảng dữ liệu, mặc dù nếu bạn chưa quen với điều này thì lời giải thích của anh ấy có thể hơi quá đầu bạn.

ADC (Bộ chuyển đổi tương tự sang số) có một tụ điện nhỏ, giữ điện áp đầu vào tương tự. Tụ điện đó được sạc thông qua điện trở ở đầu vào. Một điện trở cao sẽ sạc tụ điện chậm hơn. 10 kΩ được khuyến nghị là tối đa, vì vậy sử dụng một vôn kế có giá trị đó là OK. Tối đa 40 kΩ của Oli là chính xác, nhưng điều đó sẽ trở nên rõ ràng khi bạn tìm hiểu về Thévenin.


1

Theo kinh nghiệm của tôi với Arduinos, với chiết áp trên 10k, số đọc sẽ dao động. Tôi giải quyết điều này bằng cách đặt một tụ điện .1uf giữa cần gạt nước và mặt đất. Điều này giữ cho điện áp ổn định cho các tín hiệu tương tự. Bằng cách sử dụng tụ điện, tôi đã sử dụng các nồi lên tới 1 MegaOhm và có được số đọc chắc chắn, ổn định.


Tôi thích điều này bởi vì tụ .1uF song song đảm bảo nguồn trở kháng thấp sau khi pin đầu vào được chuyển đổi. 0,1uF / 14pf = 7142 và độ phân giải của adc (10 bit) là 1 trên 1023. Với các nồi cực lớn sẽ có một chút chậm trễ giữa cài đặt và ổn định điện áp trên chân đầu vào, nhưng điều này khó có thể nhận thấy. Nồi 4Mohm là 1Mohm imp. * 0,1uF = 0,1 giây. Vì vậy, trong 0,46 giây. giá trị của bạn giải quyết đến 99% thay đổi!
Dario Dentes

Xin lỗi nếu điều này có vẻ ngu ngốc, nhưng điều gì xảy ra nếu điện áp giảm?
HilarieAK
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.