Arduino: Harici voltajı ölçün


10

Bir madeni para hücresinden dış voltajı ölçmeye çalışırken bir "sorunum" var. Devremi basitleştirdim, ancak temelde Arduino 5v çıkışı ile çalışan bir DS1307 gerçek zamanlı saatim ve Arduino kapalıyken saati canlı tutmak için vBat'a bağlı bir madeni para hücresim var. Benim fikrim, pozitif değerini analog bir girişe bağlayarak ve voltaj seviyesini okuyarak Arduino ile pil seviyesini ölçmekti. Bu yüzden, maksimum voltaj 3v olduğundan, 3v3'ü AREF olarak kullanabilir ve analog referansı harici olarak ayarlayabilir ve daha sonra doğru sonuçları okuyabilirim. Sonuç oldukça güzel ve Arduino'dan yapılan okumalar multimetremden gelen pil voltajını okumakla aynı. Arduino'dan (bir USB bağlantısı) kaynak gücünün bağlantısını kestiğimde sorun ortaya çıkıyor. Sürprizim için Arduino kapanmıyor (bazı ledler açık kalıyor),

Bu neden oluyor? Arduino, Analog Pin'ten nasıl akım alıyor? Bu küçük devre elektronik bir sapma mı?

resim açıklamasını buraya girin

Yanıtlar:


10

Hepsi olmasa da çoğu, AVR kontrol cihazlarındaki giriş pimleri dahili olarak kenetleme diyotları ile korunur. Bu diyotlar, bir giriş voltajının besleme voltajından daha yüksek olmasını önler.

Bu iç diyotlar neden orada:

Bir giriş pimi zaman fark etmek önemlidir yapar yükselişi besleme voltajının üstünde ve bu diyotlar yoktu, çip bir SCR, mandal, kısa pil olarak hareket olabilir ve çip kendisi muhtemelen aşırı akım / ısınma tarafından zarar olacaktı .

Arduino'nuz neden bataryadan çalışıyor? Aşağıdaki devre şemasına bir göz atın. Vcc normal güç kaynağından ayrıldığında, pilden D1 aracılığıyla Vcc'ye giden bir yol vardır. Akü voltajı, kontrolörün çalışması için yeterince yüksektir.

şematik

bu devreyi simüle et - CircuitLab kullanılarak oluşturulan şematik

Nasıl çözeceksin

Çözüm basit, pil ve kontrolörün girişi arasına seri olarak yüksek değerli bir direnç ekleyin. Çoğu AVR , 1μA'da belirtilen maksimum giriş kaçak akımına (I IL ) sahiptir, bu nedenle voltaj düşüşünün bu akımla kabul edilebilir olduğundan emin olmak istersiniz, örneğin 100kΩ.

Ama dikkat et!

Girişin bu akımı düğme hücrenizden çekebileceğini ve ömrünü kısaltabileceğini anlamalısınız.


Ben 10Mohm denemek ve ADC ne okudum görmek ve şarj edilmiş bir pil için referans olarak kullanabilirsiniz. İstenmeyen drenajdan kaçınmak istiyorsanız zor bir ölçümdür.
Andy aka

Bu, giriş empedansı olarak değil, bir giriş akımı olarak belirtilmiş olsa da işe yarayabilir. Yanıt doğrusal olmayabilir, ancak mutlaka işe yaramaz. Bir çeşit kalibrasyon gerekebilir ve ölçülen voltaj 1.1V'un altına düştüğünde 1V1 bant boşluk referansı (3V3 harici referans yerine) kullanılabilir.
jippie

Güzel cevap !! 100kΩ ve 50kΩ dirençli bir bölücü çalışıp çalışmadığını düşünüyordum. Bu durumda, maksimum 3,2 volt akü voltajı olduğunu düşünüyorum. Bu, 1v1'in dahili analog referansı ile uyumlu olabilen 1.067v düşme voltajı verir. Bu işe yarayabilir mi? ya da pili çok erken boşaltacak mı?
alvarolb

2
T=mAh3Vx1000100kΩ+50kΩ=mAh × (100kΩ + 50kΩ)3Vx1000

1
Bu diyotlar, sadece AVR'de değil, çoğu mikrodenetleyicide bulunur. Diğer IC tiplerinde de duyulmuyorlar.
Adam Lawrence
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.