Arduino Uno analog pinlerinin giriş empedansı?


18

Ben kullanıyorum ACS712 Hall-effect esaslı akım algılama çipi bazı küçük robotik kol motorları ve Arduino Uno ile analog voltaj okuma. Oldukça iyi sonuçlar aldım, ancak çıktıya bir RC filtresi koyduktan sonra. Ancak, veri sayfasındaki uygulama notunda, bunu yapmama diyor:

"Sensör IC'sinin çıkışına bir RC filtresinin eklenmesi, DC sinyalleri için bile istenmeyen cihaz çıkışı zayıflamasına neden olabilir."

Daha sonra zayıflamayı hesaplamak için bir formül verir, ancak sinyali okuyan şeyin giriş empedansını bilmeye bağlıdır, bu yüzden buradayım.

Yanıtlar:


23

Burada birkaç faktör var.

İlk olarak, ADC'nin giriş empedansı. ATmega328P, Ardışık bir ADC kullanır . Bu nedenle, girdi temel olarak bir karşılaştırıcının girdisidir, bu nedenle ADC'nin çok yüksek giriş empedansı vardır.

resim açıklamasını buraya girin

ADC'nin 100 MΩ (MegaOhm) giriş empedansına sahip olduğu belirtilir.
Ancak, bu bana biraz şüpheli görünüyor. Herhangi bir analog giriş sızıntısı olmadığı gerçeğiyle birlikte, bunun tüm IO pin yapısı ile birlikte ADC'den ziyade sadece ADC'nin elektriksel özellikleri olduğunu tahmin ediyorum . Dijital IO ile paylaşılan ADC IO hatlarının, SAR karşılaştırıcısının analog karşılaştırıcıya benzediğini varsayarak, yalnızca analog olan IO hatlarından (50 nA,) çok daha fazla kaçak akıma (dokümanlardan 1 uA) sahip olduğunu tahmin ediyorum. girdi topolojisi).


Bununla birlikte, burada başka bir husus daha var, Atmel'in <10 KΩ kaynak empedansını belirtmesinin nedeni budur:
Giriş Kapasitansı

resim açıklamasını buraya girin

Temel olarak, çoklayıcıdan sonra ADC'ye giriş bağlantıları, çoklayıcıdan sonra bir kapasitansa sahiptir. ATmega ADC girişi için eşdeğer devreye bakarsanız:
resim açıklamasını buraya girin

Girişin nasıl göründüğünü görebilirsiniz.

Yüksek kaynak empedanslarındaki sorun, giriş çoklayıcıyı bir pinden diğerine geçirdiğinizde ortaya çıkar. Biri 0,5V ve biri 4,5V'de olmak üzere iki girişiniz varsa, birinden diğerine geçiş yaptığınızda, girişin bu 14 pF kapasitörü şarj etmesi (veya boşaltması) gerekir.

Sinyal kaynağı çok yüksek empedanssa, kapasitörü şarj etmek zorunda kalmak giriş voltajının geçici olarak düşmesine neden olabilir. Eğer kapasitör hala şarj edilirken ADC girişe dönüşürse, yanlış bir değer elde edersiniz.

Bu muhtemelen , ADC kanallarını değiştirdikten sonra ADC girişinin bir süre yerleşmesine izin verilerek halledilebilir, ancak bununla başa çıkmanın en iyi yolu, giriş kaynağının kapasitansı bir sorun olmayacak kadar hızlı şarj edebilmesini sağlamaktır.


1
Güzelce hecelendi.
gwideman

2
Bunun eski bir soru olduğunu biliyorum, ama nasıl "sadece giriş kaynağının kapasitansı bir sorun olmayacak kadar hızlı şarj edebileceğinden nasıl emin olabilirim?"
RubberDuck

2
@RubberDuck - Girişiniz yüksek veya bilinmeyen empedansa sahipse, birlik kazancı voltaj takipçisi olarak yapılandırılmış bir op-amp gibi bir şey kullanarak arabelleğe alın .
Connor Wolf

+1 "Burada kapasitans var". Şimdi anlıyorum.
Eiver

8

Veri sayfası tamamen net değil.

http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf

(24.6.1) Sayfa 244 şunu belirtir: "ADC, yaklaşık 10 kΩ veya daha düşük bir çıkış empedansına sahip analog sinyaller için optimize edilmiştir. Böyle bir kaynak kullanılırsa, örnekleme süresi önemsiz olacaktır."

Bu, veri sayfasında ADC'nin empedansından bahseden her şeye en yakın olan şey.


Kesin bir değere ihtiyacınız varsa, 100M 310 310. sayfadaki Tablo 29-15'de listelenmiştir.
Brian Gordon

Buna "Analog Giriş Direnci" diyor - Peki 14 pF'lik bir kapak bu şekilde mi şarj oluyor? Ön tarafta bir şey olsa iyi olur. Hızlı değişmeyen DC voltajlar için .01 kapaklar kullanıyorum.
SDsolar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.