Go Down

Topic: Amplificare un segnale in tensione (Read 17048 times) previous topic - next topic

contecavour

E di questo che ne dite AD8047/AD8048 ?

N

contecavour

Ma tra questi ce ne è uno che andrebbe bene per me?
rail to rail 1250 di guadagno DIP

http://www.hobbytronics.co.uk/mcp6002
http://it.rs-online.com/web/p/products/0403036/?cm_mmc=IT-PPC-0411-_-google-_-3_EEM-MPN-_-mcp6002-i/p_Broad
http://docs-europe.electrocomponents.com/webdocs/002f/0900766b8002ffab.pdf
http://pdf1.alldatasheet.net/datasheet-pdf/view/194581/MICROCHIP/MCP607I/P.html
http://it.rs-online.com/web/p/products/6612274/?cm_mmc=IT-PPC-0411-_-google-_-3_EEM-MPN-_-tlv272ip_Broad
...


MCP6002-I/P   
MCP602-I/P
MCP607-I/P
TLV272IP
TLV2372IP
TLC2272CP
TLV2462CP
OPA2340PA
OPA2743PA
OPA2350PA
OPA2336P
OPA2251PA
OPA2241PA
OPA2704PA

Nic


flz47655

Si, puoi utilizzare un MCP6002, è rail-to-rail ed in formato DIP al posto di un LM358 ma non credere che la situazione migliori di molto.. il risultato secondo me è già molto buono ai fini pratici.

Con Arduino puoi impostare la tensione di riferimento a piacere (deve essere minore di 5v) basta utilizzare il pin Ref, quindi anche usando un LM358 alla fine non avresti problemi, se imposta la tensione di riferimento a 3.3V puoi utilizzare con semplicità anche l'LM358, ad ogni modo un MCP6002 ti evita questo passaggio.

Consigliavo l'LM358 perché in genere lo si ha già in casa o è di più facile reperibilità, ad ogni modo se utilizzi un MCP6001/2/4 (cambia il numero di op-amp all'interno dell'integrato) puoi usare il riferimento di default di 5v di Arduino.

Usare un AD8047 non ha molto senso.. sarebbe come fare il tiro con l'arco con un cannone.. è un op-amp pensato per segnali molto veloci, non costanti.

Il tuo sensore avrà una sua qualche elettronica dentro o si baserà su qualche fenomeno fisico che genera un output che parte da 0.8mV, basta sapere questo per poterlo usare, non viene detto il perché.


Quote
Parliamo per adesso del LM358. Io lo alimenterei con le tensioni di power di arduino che sono o 5V o 3V (3.3???)
Di sensore comunque ne ho solo uno, quindi posso usarlo come 2 stadi?


Arduino ha due regolatori di tensione che forniscono 3.3V e 5V. Puoi usarlo come due stadi ma visto che il segnale è praticamente DC (mettiamo 10Hz) cambierà molto poco (idealmente nulla), comunque ti consiglio di fare delle prove e scegliere la soluzione migliore.

Quote
Perchè mi consigli invertente? E mui sai spiegare nella pratica che differenza c'è?


Visto che il segnale è praticamente costante invertente o no non cambia nulla, è secondo me più semplice da costruire.
Nella pratica hai uno sfasamento di 90° per questo è detto invertente, uno sfasamento corrisponderebbe ad un piccolo ritardo, ad esempio se hai un segnale seno esce un segnale coseno.

Quote
Come filtro passa basso intendi l'attivo vero?
Non dovrei aver difficoltà a calcolarlo
C= 1/ 2 piGreco R f
Come frequenza non vedo valori...devo fare una pesata. quindi aspettare che il segnale si stabilizzi (credo)
Che ne dici?


E' indifferente, la formula è uguale alla rete R-C. Come detto al posto della frequenza usa 10 Hz. Per stabilizzare il segnale basta che non fai più di una pesata al secondo e sei a posto stando molto larghi. Potresti farne anche 10 al secondo ad ogni modo, La frequenza è inversamente proporzionale al tempo f=1/T.

Ciao

contecavour


Con Arduino puoi impostare la tensione di riferimento a piacere (deve essere minore di 5v) basta utilizzare il pin Ref, quindi anche usando un LM358 alla fine non avresti problemi, se imposta la tensione di riferimento a 3.3V puoi utilizzare con semplicità anche l'LM358, ad ogni modo un MCP6002 ti evita questo passaggio.


Ma se uso Ref devo avere un generatore di tensione esterno?
Vorrei evitarlo. Preferirei stare sui valori generati direttamente da Arduino.
Non riesco ad usare il 2.56?

Quote
Arduino ha due regolatori di tensione che forniscono 3.3V e 5V. Puoi usarlo come due stadi ma visto che il segnale è praticamente DC (mettiamo 10Hz) cambierà molto poco (idealmente nulla), comunque ti consiglio di fare delle prove e scegliere la soluzione migliore.


Cosa vuol dire posso usarlo come un due stadi?

Quote
In parallelo alla resistenza "grossa" se metti un condensatore riesci a filtrare il rumore, per calcolare il condensatore puoi semplicemente usare la formula del circuito RC passa basso http://it.wikipedia.org/wiki/Filtro_passa_basso impostando come frequenza una decina di Hertz, la resistenza sarà 75K se usi il valore che ti ho dato prima. Ti lascio questo conto, fammi sapere se hai difficoltà.


Per il calcolo uso questa regola?
C= 1/ 2 piGreco R f
C = 1 / 2 piGreco 75000 10
C = 2,1220659078919378102517835116335e-7
C=0,2122 uF
Ti sembra coerente?

Adesso sento che opAmp riesco a trovare e poi ti dico
Grazie mille











contecavour

Ok vado sul LM358 gli altri li dovrei ordinare online.
Adesso prima di andare a far la spesa vorrei ripassare tutto.

LM358 lo alimento a 5 o a 3.3?

Per leggere la tensione amplificata posso scegliere tra questi settaggi (giusto?):
DEFAULT: the default analog reference of 5 volts (on 5V Arduino boards) or 3.3 volts (on 3.3V Arduino boards)
INTERNAL1V1: a built-in 1.1V reference (Arduino Mega only)
INTERNAL2V56: a built-in 2.56V reference (Arduino Mega only)

Quindi a quanto consigli di alimentarlo e su che tensione andiamo?
Forse converrebbe settare il MEGA a 1.1 in ingresso cosi amplifichiamo meno, pensi sia migliore?

Nic









flz47655

Quote
LM358 lo alimento a 5 o a 3.3?


Alimentalo a 5 volt, questo integrato come detto prima NON è rail-to-rail quindi avrà l'uscita che potrà andare al massimo alla sua alimentazione meno 1.5-2 volt, se lo alimenti a 3.3V alle sue uscite non potrà andare a più di 1.8v circa.

Quote
Per leggere la tensione amplificata posso scegliere tra questi settaggi (giusto?):


EXTERNAL: the voltage applied to the AREF pin (0 to 5V only) is used as the reference.

No, puoi usare anche il pin REF per impostare 3.3v cosa che ti consiglio, così se passi ad un Arduino Uno non devi stravolgere troppo le cose

Ad ogni modo potresti usare anche il riferimento ad 1.1v ed amplificare giustamente di meno, il LM358 alimentalo comunque a 5 volt, hai già la tensione stabilizzata pronta da usare.

Ciao

contecavour

Non ho capito il tuo
Quote
No, puoi usare anche il pin REF per impostare 3.3v cosa che ti consiglio, così se passi ad un Arduino Uno non devi stravolgere troppo le cose

Intendi che prendo un filo e lo metto dal power 3.3 al IOREF?
Se ho capito bene, mettendo EXTERNAL si aspetta un valore massimo (max 5V) uguale a quello che porti sul pin IOREF?

Ma secondo te lavorando a 5V o 1.1V come riferimento, la precisione/risoluzione cambia?


Comunque alimenterei a 5V e setterei riferimento ad 1.1v.
Quindi 1100/4 = 275
Che resistenze mi consiglieresti?

Ciao





flz47655

Quote
Intendi che prendo un filo e lo metto dal power 3.3 al IOREF?


Esatto, da codice devi anche chiamare

Code: [Select]
analogReference(EXTERNAL)

Quote
Ma secondo te lavorando a 5V o 1.1V come riferimento, la precisione/risoluzione cambia?


Attenzione a risoluzione,accuratezza e precisione, sono tutte cose diverse secondo la metrologia. Prova a vedere wikipedia per una spiegazione.

In sostanza la bontà del risultato che ottieni è determinato dal sensore, peggiorato minimamente dall'amplificazione che realmente non è lineare al 100% e dall'ADC.

Ti faccio un esempio:
Supponiamo che il sensore abbia come valore minimo successivo ad 1mV il valore 1.1mV. Non ci sono vie di mezzo (il tuo sensore magari le ha, controllale nel datasheet, per questo esempio supponiamo sia così).
Se per esempio amplifichi di 1000 volte avrai nel primo caso 1v e nel secondo 1.1v, in mezzo non ti serve poter rilevare valori perché il sensore restituisce 1 mV o per un peso superiore 1.1mV, non ci sono vie di mezzo per pesi intermedi, anche il sensore avrà i suoi limiti.

Per non perdere informazioni l'ADC deve poter discriminare questi due valori. Non ti migliora la situazione poter leggere con una risoluzione di 0.001v perché hai già un segnale amplificato e devi solo poter distinguere tra 1v e 1.1v.

Cambiando il riferimento ad un valore inferiore a 5 volt leggerai intervalli più piccoli, esempio con 1.1v di riferimento potrai distinguere tra variazioni di 1.1/1024 = 0.001V ovvero 1mV, hai sempre però 10 bit (1024 valori distinti dall'ADC) e l'amplificazione sarà minore, però sarà anche minore la robustezza ai disturbi!

Quindi in sostanza, se l'amplificazione non introduce distorsioni alle diverse amplificazioni, è indifferente quale riferimento scegli, avrai sempre una dinamica di 10 bit. Io in genere amplifico almeno a 3 volt perché certi rumori sono di un valore fisso, quindi si migliora il risultato avendo i livelli maggiormente distanziati, che ricordo, con l'ADC di arduino, sono sempre 1024.

Visto che il tuo è un segnale DC l'amplificatore non introduce distorsioni elevate (verificalo con un oscilloscopio però!) e quindi secondo me non è quello il fattore critico.

Quote
Comunque alimenterei a 5V e setterei riferimento ad 1.1v.


Se hai un segnale di 4.8mV e vuoi massimo 1.05V (lasciamo appena di margine) devi avere un amplificazione di 218.75 volte, arrotondiamo a 218.

Puoi usare una resistenza da 1K ohm e una da 218K ohm circa (la più prossima che trovi), in questo modo puoi leggere variazioni di 1mV che sarebbero variazioni di 0.004mV sul sensore prima dell'amplificazione ovvero di 4uV che non è male, naturalmente bisogna poi mettere in conto il rumore e la non idealità dell'op-amp quindi il risultato sarà un pochino peggiore ma ai fini pratici dovrebbe andare bene

Ciao

flz47655

Per calcolare la resistenza di ingresso devi considerare l'impedenza di uscita del sensore, questo link mi sembra ben fatto: http://www.cubasetutorial.it/index.php?page=Thread&postID=10994 in sostanza sarebbe consigliato 10K ma poi avresti una resistenza da 2.18M ohm che mi sembra troppo elevata..

contecavour

Parlavo di questo (tutto il resto comuqnue è costante - risoluzione sensore-disturbi-ecc ecc)
Code: [Select]
Quindi in sostanza, se l'amplificazione non introduce distorsioni alle diverse amplificazioni, è indifferente quale riferimento scegli, avrai sempre una dinamica di 10 bit. Io in genere amplifico almeno a 3 volt perché certi rumori sono di un valore fisso, quindi si migliora il risultato avendo i livelli maggiormente distanziati, che ricordo, con l'ADC di arduino, sono sempre 1024.

Se amplificando a 1.1 sono troppo disturbato dai segnali di fondo.
Ma non sapevo che usare il REF a 3.3V era cosi semplice, scusa se torno indietro, ma forse è meglio tornare a pensare al 3.3 che è quello che consigliavi all'inizio. E' meglio a tuo avviso rispestto al 1.1?


contecavour


Per calcolare la resistenza di ingresso devi considerare l'impedenza di uscita del sensore, questo link mi sembra ben fatto: http://www.cubasetutorial.it/index.php?page=Thread&postID=10994 in sostanza sarebbe consigliato 10K ma poi avresti una resistenza da 2.18M ohm che mi sembra troppo elevata..


Argh ho letto ma mi sono perso.
Cosa intendi con resistenza di ingresso?
Oltretutto io lavoro a frequenze bassissime, è cosi importante l'impedenza?

Faccio il riepilogo di quel che credo di aver capito.
Scelgo l'invertente.
Quindi ho una resistenza tra ingresso (+) e uscita. Diciamo di 218K (se poi andremo a 3.3 V vedremo - ma esistono da 218 kOhm???non conviene stare piu bassi??? ).
A questa metterò in parallelo un condesatore che poi penseremo a dimensionare.
Forse questo circuito RC va valutato perchè C potrebbe modificare il valore del guadagno?

Tra il segnale in tensione di ingresso e l'ingresso (+) metto al resistenza piu piccola (diciamo 1K)
L'ingresso (-) a terra/massa.

Quale è per te la resitenza di ingresso?

N








flz47655

Quote
Cosa intendi con resistenza di ingresso?
Oltretutto io lavoro a frequenze bassissime, è cosi importante l'impedenza?


La resistenza di ingresso è se vedi gli schemi di wikipedia Zi, secondo me basta fare delle prove con valori di diverse resistenze, se mi mandi un sensore te lo posso fare quando ho tempo

Quote
ma esistono da 218 kOhm???non conviene stare piu bassi???


Si, esistono resistenze fino a diversi Mohm e più, non è un valore impossibile, se vuoi stare più basso basta che abbassi anche l'altra resistenza.

Quote
A questa metterò in parallelo un condesatore che poi penseremo a dimensionare.
Forse questo circuito RC va valutato perchè C potrebbe modificare il valore del guadagno?


Il condensatore serve solamente per limitare la banda, il guadagno lo imposti con le resistenze, certo che se metti una banda troppo piccola poi il segnale inizia ad attenuarsi oltre quella frequenza

Quote
Quale è per te la resitenza di ingresso?

Zi (o Ri) dipende dagli schemi che trovi

Ciao

contecavour

Io vedo questo schema.
http://it.wikipedia.org/wiki/File:Op-amp_invertente.PNG
Quindi direi che qui si chiama Z.
Giusto?

Quote
se mi mandi un sensore te lo posso fare quando ho tempo

Io ho questo:
Quote
http://www.phidgets.com/documentation/Phidgets/3132_0_Datasheet.pdf


Poi cosa faccioa llora 1.1 o 3.3 dato che sono fattibili entrambi.

N

flz47655

Quote
Quindi direi che qui si chiama Z.

Esatto

Quote
Poi cosa faccioa llora 1.1 o 3.3 dato che sono fattibili entrambi.

La cosa migliore sarebbe fare delle prove con entrambe le tensioni sul campo, io starei sui 3.3 volt per iniziare

Ciao

contecavour

Infatti anche io pensavo così dopo i tuoi consigli, è che pensavo di necessitare di un generatore di tensione esterno per REF.

Quindi ritorno al tuo consiglio del guadagno a 750.

Zi=100 e z1=75K

Per il calcolo uso questa regola?
C= 1/ 2 piGreco R f
C = 1 / 2 piGreco 75000 10
C = 2,1220659078919378102517835116335e-7
C=0,2122 uF
Ti sembra coerente?

Il sensore ha dichiarato
Input Impedance 1090±10 Ohm
Output Impedance 1000±10 Ohm
Insulation Resistance (Under 50VDC) ?5000 MOhm

Quindi cosa dici?
Lasciamo quella da 100 ohm?

N








N



Go Up