Conversione del livello di tensione analogica (spostamento di livello)


10

Ho un joystick che emette una tensione analogica tra 1,5 V e 3,5 V.

Voglio trasformare questo intervallo di tensione per controllare un controller del motore che prende una tensione analogica tra 0 V e 5 V.

Come posso spostare il livello e amplificare correttamente?


Non esiste un microcontrollore intermedio? In tal caso basta usare un ADC.
sptrks,

2
Penso che potresti voler approfondire cosa vuoi fare esattamente qui. Stai cercando di ridimensionare una tensione analogica da 1,5 V-3,5 V a 0 V-5 V? Stai cercando di convertire una tensione analogica in qualche uscita digitale?
bjthom,

Un convertitore boost potrebbe aiutarti ad andare da 3,5 V a 5 V, ma non ad andare da 1,5 V fino a 0 V. Il suo guadagno è sempre maggiore o uguale a 1.
Telaclavo,

1
@Telaclavo un boost non è utile qui, poiché è usato per alimentare, ma supponiamo che abbia una fornitura maggiore di 3,5 V.
clabacchio

1
Sappiamo che quelle sono tensioni analogiche. Qual è la tua scorta?
clabacchio

Risposte:


12

Volete un semplice guadagno di 5/2 = 2,5 centrato intorno a 2,5 V. Questo è facile supponendo che abbiate una potenza di 5 V disponibile, come dal controller del motore:

Questo deve essere un opamp di uscita rail-to-rail che può funzionare con una potenza di 5 V, come l'MCP6041 e molti altri. R1 e R2 formano un partitore di tensione per rendere 2,5 V attorno ai quali verrà amplificato il segnale di ingresso. C2 attenua il rumore proveniente dall'alimentazione a 5 V anche più della CC per ottenere un livello CC silenzioso e regolare. L'opamp è in una classica configurazione di guadagno positivo, con R4 e R3 che impostano il guadagno. L'impedenza della sorgente di 2,5 V prodotta da R1 e R2 si aggiunge effettivamente a R3 ai fini del guadagno, ma questo è un piccolo contributo di 1,2 kΩ su 100 kΩ. Il guadagno sarà leggermente inferiore a 2,5.


1
+1. Più precisamente, uscita rail-to-rail (input rail-to-rail non necessario qui)
Jason S

@Jason - Risolto.
Olin Lathrop,

Come hai scelto i valori per R1 e R2?
Abdullah Kahraman,

1
@abdullah: poiché l'alimentazione è 5 V e il punto è fare 2,5 V, un vincolo era R1 = R2. L'altra scelta era quale dovrebbe essere l'impedenza della sorgente da 2,5 V, che è R1 // R2. Più basso è meglio, ma più basso significa anche più corrente. Sentivo che 100 kOhm erano quasi alti quanto volevo andare con R3 per mantenere basso il rumore vagante. 1,2 kOhm sembravano avere un'impedenza abbastanza bassa rispetto a quella, e assorbe circa 1 mA dall'alimentazione a 5 V, che suonava ragionevole.
Olin Lathrop,

1
@jfenwick: non so cosa pensi che significhino quelle equazioni senza i termini che definisci correttamente, come "Annuncio". Inoltre, sembra che tu abbia perso il fatto che ci sia un feedback negativo in questo circuito, che imposta il guadagno. Il guadagno ad anello aperto dell'opamp è così grande da non interessare al guadagno del circuito ad anello chiuso. Non vedo 5V e GND riunirsi ovunque. Dovrai essere più specifico con meno agitando le mani.
Olin Lathrop,

6

Questo è possibile con un solo amplificatore operazionale. Quello che stai cercando di fare è cambiare il livello e amplificare . Li facevamo sempre. Sono utili nei robot in cui hai un sensore con un piccolo intervallo di uscita di tensione analogica e vuoi espandere l'oscillazione di tensione in modo da ottenere la massima risoluzione dal tuo ADC.

Di solito li realizziamo con offset e guadagno variabili, in modo da poterli regolare per ciascun sensore sul robot.

L'amplificatore operazionale cambia livello e amplifica

Avendo le tue impostazioni giuste, puoi sempre misurare le resistenze dei piatti e utilizzare invece resistori a valore fisso.

Oppure puoi calcolare direttamente i valori:

Lo spostamento del livello dell'amplificatore operazionale e amplifica

C'è un calcolatore online per aiutarti a capire i valori dei resistori.


Corretto, ma deve fornire le tensioni di alimentazione
clabacchio

@clabacchio - True. Ma penso che possiamo supporre che ci sia 5v disponibile.
Rocketmagnet,

4
Si noti che questo inverte. Ciò potrebbe costituire un problema nell'interfaccia utente se il joystick deve essere spostato di fronte alla direzione intuitiva per aumentare la velocità del motore.
Olin Lathrop,

Grazie per aver sottolineato che questo si chiama spostamento di livello.
jfenwick,

4

Contrariamente a quanto afferma Cybergibbons, è abbastanza semplice un'elettronica analogica. Ma devi specificare quale fornitura intendi utilizzare per il tuo circuito.

È necessario un circuito che porta il segnale del modo comune (1,5 V) su 0 e applica un guadagno di 5/2 = 2,5 al resto. Puoi farlo facilmente con un cambio di livello basato su Op-Amp con qualche guadagno.

Una soluzione consiste nell'utilizzare un sottrattore analogico con una tensione di riferimento posizionata a 1,5 V, una soluzione ancora più semplice è solo un amplificatore non invertente con il riferimento nel posto giusto.

Questo circuito farà il lavoro:

inserisci qui la descrizione dell'immagine

Opamp è solo il valore predefinito nel simulatore, potrebbe essere necessario un altro, a seconda della fornitura.

R1+R2R2


È semplice se stai solo disegnando uno schema: la complicazione arriva con il requisito che il segnale deve passare da 0-5 V ed è un input per un controller del motore. 0,05 V non lo taglieranno, quindi ha bisogno di un opamp di alimentazione diviso. Ciò significa che è necessario fornire una fornitura suddivisa, il che è un grande sforzo aggiuntivo.
Cybergibbons,

@Cybergibbons non tanto, a seconda di ciò che ha; e, usando amplificatori operazionali rail-to-rail, potrebbe anche fare il lavoro senza di essa.
clabacchio

Possibilmente. Mi è stato insegnato che fare affidamento sulle prestazioni rail to rail è un po 'no per il controllo per alcuni motivi. In primo luogo, rail to rail non è mai realmente rail to rail: gli opamp con le migliori prestazioni arrivano a circa 10mV circa, il che può causare problemi. In secondo luogo, non sono così lineari in quella regione. In terzo luogo, se carichi l'output, le prestazioni rail to rail peggiorano notevolmente (un controllo del motore può caricare l'output - non lo sappiamo). Naturalmente, se il controller del motore ha una banda morta, non importa.
Cybergibbons,

@Cybergibbons, a proposito del degrado delle prestazioni, potresti avere ragione (non lo so) ma Analog Devices ha amplificatori operazionali rail-to-rail che vanno a circa 2-5 mV (max) dalle rotaie. Ma questo problema non esiste se ha un'alimentazione a 12 V per esempio, quindi dipende da come vuole fornirlo. Per quanto riguarda la capacità di guida, può usare un altro amplificatore operazionale per bufferizzare il segnale, purché abbia la giusta fornitura.
clabacchio

@Cybergibbons - È più probabile che un pin di uscita PWM del processore vada a 10 mV da terra, anche con un duty cycle dello 0%?
MikeJ-UK,
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.