Bir basınç sensöründen tam kapsamlı bir voltaj okumasını nasıl alabilirim?


10

Bu talimattan alınan DIY Kuvvet Duyarlı Direnç (FSR) kullanarak bir uygulama yapıyorum . Bu sensörün direnci, dururken 20kOhm ile basıldığında 9kOhm arasında değişir.

Bu direnç değerlerini 0v'nin dinlenme durumuna ve 5v'nin "basılı" koşuluna karşılık geldiği bir sinyale nasıl çevirebilirim ki bir Arduino ile okuyabilirim?

Yanıtlar:


14

0V ile 5V arasında bir sinyal aralığı istersiniz. Hepimiz değil mi :-)? Farklı bir yaklaşıma gidelim ve bunun bizi nereye götürdüğüne bakalım.

Başlangıç ​​noktası: en ucuz ve en basit çözüm.

Bu, bir voltaj bölücü oluşturmak için bir seri direnç olacaktır. Bu mutlak minimumdur. İnsanların bu direnci çok düşünmediğini fark ettim, sadece 10k gibi güzel bir yuvarlak değer seçin . Ama bunun için optimal bir değer olduğunu buldum. Ω

resim açıklamasını buraya girin

Eğri, seri direncin (k ) bir fonksiyonu olarak minimum ve maksimum okuma (9k ve 20k resp.) Arasındaki voltaj farkını gösterir . Bakın, gerçekten bir maksimuma sahip. Bunu hatırlarsan bulmak kolay Ω ΩΩΩΩ

(f(x)g(x))=f(x)g(x)f(x)g(x)g2(x)

Fark - için bir Extremum sahip V M I NVMAXVMIN

ddRX(RMAXRMAX+RXRMINRMIN+RX)=0

İçin Çözme verir RX

RX=RMINRMAX

Güzellik!

Yani bizim durumumuzda seri direnç 13.42k , bunu grafikte kontrol edebilirsiniz. Dirençleri 0V ve + 5V arasına yerleştirmek bize [2V, 3V] çıkış aralığı sağlayacaktır. 1 direnç (*) ile alabileceğiniz maksimum aralık budur. Ω

Yeterli mi? Arduino'nun 10 bitlik bir ADC'si vardır, bu nedenle bu aralık size 200 ayrı seviye sunar. Bu bir DIY sensörü için yeterli bir doğruluk sağlamalıdır. Bu yüzden opamps gibi başka hiçbir bileşene ihtiyaç duyulmaz.


(*) Kabul edilen cevap 1.9V'luk bir aralık verir, ancak yanlış denklemleri var . 1 direnç ve sadece + 5V besleme ile 1V'den daha yüksek bir aralık elde etmek imkansızdır.


2
+1. Bu daha fazla oy almalıdır. Herkesin arada sırada değişken bir direnç için bir direnç bölücüye ihtiyacı vardır ve o zaman neden bu aptal 10k serisi direnç yerine optimum aralığı kullanmıyorsunuz?
Federico Russo

5

Direnç voltaj bölücüsünü 0V'a çıkarabilmek için negatif bir voltaja ihtiyacınız var. + 5V ve -5V kullanılabilir olduğunu varsayacağım.
Değişken direncinizi + 5V ve GND arasına yerleştirin. Şimdi GND ve -5V arasında bir aşağı çekme direnci değeri bulmanız gerekir. Şimdi bu kolay; Değişken direnç 20k olduğunda 0V çıkışı istersiniz , bu yüzden her şey simetrik olduğu için aşağı çekme de 20k olmalıdır . Sonra 9k olduğunda bölücünün çıkış voltajının ne olacağını . üzerinden , aşağı çekme direncinden geçen akım ile aynı olduğunu not ediyoruz , bu yüzden Ω Ω R X Ω R XRXΩΩ
RXΩRX

5VVO9kΩ=VO(5V)20kΩ

Bunun üzerinde çalışmak bize verir . Şimdi yapılması gereken tek şey 0V..9V ila 0V.5V arasında ölçeklendirmektir. Bunun için, ters çevirici olmayan bir amplifikatör olarak bir RRIO ( Raydan -Raya I / O) opamp kullanıyoruz VO=1.9V

resim açıklamasını buraya girin

Seçerseniz ve için 0V..5V bir çıkış voltajı aralığı alırsınız 20k ..9k .R 2 = 47 k Ω R X Ω ΩR1=18kΩR2=47kΩRXΩΩ


1

En basit yolun 9k'de 5V veren ve direnç arttıkça azalan bir voltaj bölücü olacağını düşünüyorum. Bu voltaj bölücü hesap makinesinde çeşitli direnç kombinasyonları ile oynayabilirsiniz . Ancak bu doğrusal bir ilerleme olacaktır.


2
Sahip olduğunuz her şey 5V ise size 5V veren bir bölücü yapamazsınız.
Federico Russo
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.