Come posso ottenere una lettura di tensione a range completo da un sensore di pressione?


10

Sto facendo un'applicazione utilizzando il resistore sensibile alla forza fai-da-te (FSR) tratto da questo istruttore . La resistenza di questo sensore varia tipicamente da 20kOhm a riposo a 9kOhm quando viene premuto.

Come potrei convertire questi valori di resistenza in un segnale in cui 0v corrisponde alla condizione di riposo e 5v corrisponde alla condizione "premuto" in modo da poterlo leggere con un Arduino?

Risposte:


14

Si desidera un intervallo di segnale da 0 V a 5 V. Non tutti :-)? Andiamo per un approccio diverso e vediamo dove ci porta.

Punto di partenza: soluzione più economica e più semplice.

Sarebbe un resistore in serie per creare un partitore di tensione. Questo è il minimo assoluto. Ho notato che le persone non pensano molto a quel resistore, scelgono semplicemente un valore circolare come 10k . Ma ho scoperto che esiste un valore ottimale per questo. Ω

inserisci qui la descrizione dell'immagine

La curva mostra la differenza di tensione tra la lettura minima e massima (9k e 20k rispettivamente) in funzione del resistore serie (in k ). Vedi, ha davvero un massimo. È facile da trovare se lo ricordi Ω ΩΩΩΩ

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

La differenza - ha un estremo per VMAXVMIN

ddRX(RMAXRMAX+RXRMINRMIN+RX)=0

Risolve per dà RX

RX=RMINRMAX

Una bellezza!

Quindi nel nostro caso il resistore in serie sarà 13.42k , puoi verificarlo sul grafico. Posizionando le resistenze tra 0 V e + 5 V questo ci darà un intervallo di uscita di [2 V, 3 V]. Questa è la portata massima che puoi ottenere con 1 resistenza (*). Ω

È abbastanza? Arduino ha un ADC a 10 bit, quindi questa gamma ti offrirà una gamma di 200 livelli discreti. Ciò dovrebbe fornire una precisione sufficiente per un sensore fai-da-te. Quindi non sono necessari altri componenti come gli opamp.


(*) La risposta accettata fornisce un intervallo di 1,9 V, ma ha le equazioni sbagliate . È impossibile ottenere un intervallo superiore a 1 V con 1 resistenza e solo un'alimentazione di + 5 V.


2
+1. Questo dovrebbe ottenere più voti. Tutti hanno bisogno di un divisore di resistore per un resistore variabile di tanto in tanto, e allora perché non usare la gamma ottimale invece di quel riduttore della serie 10k?
Federico Russo,

5

È necessaria una tensione negativa per poter creare un divisore di tensione della resistenza che va a 0 V. Presumo che tu abbia + 5V e -5V disponibili.
Posiziona il tuo resistore variabile tra + 5V e GND. Ora devi trovare il valore per un resistore pull-down tra GND e -5V. Ora è facile; vuoi 0 V quando il resistore variabile è 20k , quindi anche il pull-down deve essere 20k perché il tutto è simmetrico. Quindi dobbiamo scoprire quale sarà la tensione di uscita del divisore quando è 9k . Notiamo che la corrente attraverso è la stessa corrente della corrente attraverso il resistore pull-down, quindi RXΩΩ
RXΩRX

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

Lavorando questo fuori ci dà . Ora tutto ciò che resta da fare è ridimensionare da 0V..1,9V a 0V..5V. Per questo usiamo un opamp RRIO (Rail-to-Rail I / O) come amplificatore senza inversione VO=1.9V

inserisci qui la descrizione dell'immagine

Se si seleziona e si otterrà un intervallo di tensione di uscita di 0V..5V per di 20k ..9k .R 2 = 47 k Ω R X Ω ΩR1=18kΩR2=47kΩRXΩΩ


1

Penso che il modo più semplice sarebbe un divisore di tensione che ti dà 5 V a 9k e diminuisce all'aumentare della resistenza. Puoi giocare con varie combinazioni di resistori in questo calcolatore del partitore di tensione . Sarà comunque una progressione lineare.


2
Non puoi creare un divisore che ti dia 5V se tutto ciò che hai è 5V.
Federico Russo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.