Chcesz zakres sygnału od 0 V do 5 V. Czyż nie wszyscy :-)? Przejdźmy do innego podejścia i zobaczmy, dokąd nas to zaprowadzi.
Punkt wyjścia: najtańsze i najprostsze rozwiązanie.
Byłby to szeregowy rezystor do utworzenia dzielnika napięcia. To absolutne minimum. Zauważyłem, że ludzie nie zastanawiają się nad tym rezystorem, wystarczy wybrać ładną okrągłą wartość, na przykład 10k . Ale odkryłem, że jest to optymalna wartość. Ω
Krzywa pokazuje różnicę napięcia między odczytem minimalnym i maksymalnym (odpowiednio 9k i 20k Ω ) w funkcji rezystora szeregowego (w k Ω ). Widzisz, to rzeczywiście ma maksimum. Łatwo to znaleźć, jeśli o tym pamiętasz ΩΩΩ
(f(x)g(x))′=f′(x)⋅g(x)−f(x)⋅g′(x)g2(x)
VMAXVMIN
ddRX(RMAXRMAX+RX−RMINRMIN+RX)=0
RX
RX=RMIN⋅RMAX−−−−−−−−−−−√
Piękność!
Ω
Wystarczy? Arduino ma 10-bitowy ADC, więc ten zakres daje zakres 200 dyskretnych poziomów. To powinno dać wystarczającą dokładność dla czujnika DIY. Dlatego nie są potrzebne żadne inne elementy, takie jak opamps.
(*) Przyjęta odpowiedź daje zakres 1,9 V, ale ma nieprawidłowe równania . Niemożliwe jest uzyskanie wyższego zakresu niż 1 V z 1 rezystorem i tylko zasilaniem + 5 V.