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. Ω
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+RX−RMINRMIN+RX)=0
İçin Çözme verir RX
RX=RMIN⋅RMAX−−−−−−−−−−−√
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.