Newsgroup: it.hobby.elettronica.digitale
Titolo: PIC 16F876 e ADC

 Ciao grazie
De nada
P.S. un consiglio : nno ti conviene continuare i thread se cambi
domanda 
rischi di perdere visisbilita'!

Grazie mmm
In che modo potrei condizionare in maniera opportuna il mio segnale
visto che esso ha leseguenti caratteristiche?:
(rispondo alle tue domande):
1)La velocità di campionamento non è un problema, in quanto il
segnale varia lentamente.
2)Il segnale proviene da uno shunt
Un 'altra strada possibile, annunciato da me nel post precedente, non
sarebbe quella dell'utilizzo ad esempio di un convertitore ADS7816
(munito di ingresso diff. che varia da -200mv a +200mv e quindi
rientrante nel range da me necessario dei +/- 60mv )?.
Cmq ammetto che l'utilizzo del conv. ADC del pic risulterebbe più
logica da utilizzare, anche se non saprei come configurare esattamete
il circuito con amplificatore operazionale( suppongo LM358) e relativi
componenti....
Ciao e grazie

Allora un pò di precisazioni da parte mia dovute:
Hai capi della resistenza da dove prelevo tensione ho +/- 24Vdc
proveniente da una batteria (visti in maniera diff. con +/-60mv)
quindi è una tensione continua.
Ho la possibilità tramite un  amico di ordinare i componenti da RS
Componets.
ciao

mmm ha scritto:

Ciao,
quindi se ho ben capito posso utilizzare l'operazionale lm358
alimentato a +24V (pin 4 messo a  0V e pin8 a +24V).
Ovviamente utilizzerei la configurazione differenziale per tale A.O.
ovvero con con 1 R collegata al - dell'operazionale, 1 R collegata al +
di valore uguale e poi 1 R collegata tra il - dell'AO e l'uscita
dell'AO, ed infine una R collegata tra il + dell' AO la massa. Sapendo
che l'uscita dall'AO in  opportuna conf. diff. vale:
V0=R2/R1(V+ - V-)
mi calcolo il valore delle R:
Sapendo che il mio PIC accetta in ingresso tensioni tra 0 e 5V
dimensiono le mie R in modo da avere 5 volt con V2-V1=60mv e zero volt
con V2-V1=-60mv
posso ottenere R2=47Kohm e R1=1.2Kohm
Se fino a qua è corretto, come potrei fare in modo da avere 0volt in
ingresso al PIC quando ho -60mv dallo shunt?
Ciao e grazie di nuovo

Ho provato la conf. descritta nel post precedente, ma non funziona (ah
tra la massa e l'operazionale nello schema descritto in precedenza
avevo messo una batteria da 27V in modo da effettuare una sim.
abbastanza reale.) Quindi tutti i riferimenti erano presi a +24V.
In sostanza separerei la soluzione del problema in 2 parti:
1) Un opportuno condizionamento del segnale in modo da portare il mio
segnale da +/- 60mv ad un valore accettabile del PIC (che a quanto ho
capito accetta segnali analogici da 0 a +5V)
Quindi per esempio se al PIC gli arriva un segnale maggiore di 2.5V
(per me sarebbero i +60mv lui mi abilita opportune uscite es. portb).
Se gli arriva un segnale minore di 2.5mv lui mi abilita altre uscite su
portb.
Avevo pensato ad una configurazione diff. dell'operazionale ma non ha
dato i risultati voluti (forse sbalio qualcosa?)
2) Per avere questo tipo di funzionamento come dovrei settare le Vref
del PIC? 


 
vedi sopra


Minardi291 wrote:
<snip>
segui l'altro post
separa scalatura e amplificazione.

Quindi se ho capito bene alimentando LM358 con una singola
alimentazione da 0V a +27V mi è preclusa la possibilità di utilizzare
tensioni di ingresso negative (-60mv) oltre che adoperarlo come
inseguitore. Quindi dovrei alimentarlo a +/-15Vdc.
Inoltre, quando dici:
no! hai a disposizione 2 OPA uno lo configuri come differenziale a
guadagno unitario e l'altro gli fai fare il guadagno che vuoi
meglio tenere separati differenziale e guadagno .
Se voglio realizzare quello che dici te, ho bisogno di 3 operazionali,
2 funzionano da guadagno unitario (1 per ogni segnale di ingresso) e 1
funziona da differenziale.
Giusto?

Ciao mmm,
volevo aggiornarti sulla situazione:
Sono riuscito ad amplificare i +60mv a 2.5V, per i -60mv avevo pensato
di agire cosi:
I miei +/-60mv provengono da una resiatenza di shunt che "legge" la
carica e scarica di una batteria a 24V.
Ovviamente il segno dei +/-60mv dipende dal verso di percorrenza della
corrente nella resistenza.
Per prelevare questi +/- 60mv mi serve un A.O. (lm358) in conf.
differenziale.
Quando V1>V2 non ho problemi, in quanto leggo i +60mv e poi amplificati
fino a 2.5V
Qunado la corrente cambia "verso" ovvero che V1<v2 ecco che mi arrivano
i -60mv.
Per risolvere questo prob. avevo pensato di montare un altro lm358 a
segni invertiti rispetto al primo A.O in modo da avere in questo caso
ancora i +60mv (poi amplificati a +2.5V)
Potrebbe andare?
2) In sostanza quindi in ingresso al pic "per ogni verso di corrente"
avrei una tensione di 2.5V e -2.5V
Quando la corrente cambia verso, in ingresso al pic ho una tensione di
-2.5V e 2.5V
Ovviamente ciasuna tensione andrebbe su 2 piedini in ingresso distinti
del pic.
La tensione di -2.5V oppure di -5V può creare problemi al PIC?
Spero di esssere stato suff. chiaro 
Grazie e ciao

 
stai facendo una gran 'confusione' e temo che almeno in parte sia stato 
io l'artefice di cio'
cerco di chiarire un po' la faccenda:
tutti i ragionamenti ti conviene farli col datasheet dell' LM358 della 
National davanti e' da li che recupero lo schema che mi sembra migliore.
tensioni di alimentazione tra i pin 4 e 8
al 4 ci va la massa ( o 0 volt ) all' 8 ci va la V+,  nel nostro caso la 
+24 della batteria va bene o se hai a disposizione un'altra tensione di 
alimentazione superiore va altrettanto bene ( se carichi la batteria da 
qualche parte hai una tensione maggiore )
tensioni d'uscita ( solo un piccolo inciso ) sono comprese tra la 
tensione al pin 4 e la tensione al pin 8 meno qualcosa, sopratutto per 
valori verso la tensione positiva , IN NESSUN MODO E' POSSIBILE AVERE IN 
USITA TENSIONI AL DI FUORI DI QUESTO RANGE DI VALORI cioe' tensioni piu' 
negative rispetto all valore sul pin 4.
tensioni in ingresso ( nel datashhet e' riportato come 'Input Common 
Mode Voltage Range ) pososno arrivare al valore di tensione sul pin 4 e 
devono essere inferiori ( di qualcosa ) della tensione al pin 8 , questi 
sono i valori di tensione EFFETTIVAMENTE presenti sui pin d'ingresso 
Input+ e Input-, la presenza di eventuali componenti di retroazione ( 
resistenze ) tra l'effettivo ingresso del circuito e questi pin fa si 
che in ingresso al circuito completo possano esserci valori in eccesso 
rispetto a quanto detto senza problemi.
passiamo al circuito:
amplificatore operazionale in configurazione differenziale ( o 
amplificatore per strumentazione del pover'uomo )
e' quello a 4 resistenze e come hai notato funziona solo per differenze 
ditensione positive ( altrimenti dovrebbe avere una alimentazione 
negativa ) pero' dovrebbe essere possibile aggiungere un offsetin modo 
che ad ingresso nullo abbia una uscita non nulla ( in questa maniera 
l'uscita sarebbe non nulla 
p.es
. 100 mV per ingresso nullo , 160 mV per 
ingresso +60 mV e 40 ( = 100-60 ) mV per ingresso -60 mV
nota bene ho considerato un amplificatore con le 4 resistenze tutte 
uguali ( di nome e difatto ! )
un successivo stadio di amplificazione poi porterebbe la tensione 
d'uscita a valori compatibili coll'ADC.
per inerire l'offset si potrebbe seguire lo schema sul Datasheet 
National a pag. 11 'DC summing amplifier usando V1 e V3 come ingressi 
principali, V4 non collegato , V2 come ingresso per l'offset.
l'alternativa potrebbe anche essere la seguente
usare solo V1 e V3 come normale amplificatore differenziale e applicare 
l'offset al posto della massa presente sulla resistenza R tra ingresso 
positivo dell'AO e la massa.

Grazie mille mmm
ora mi manderai a quel "paese" se non l'hai gia fatto....    :-)
Sei stato molto preciso, ma non mi è chiaro come potrei dargli
dall'esterno la tensione di offset (100mv).
Inoltre non mi è chiaro come dovrei collegare il circuito "DC summing
amplifier" con il circuito differenziale vero e proprio, ovvero quello
di pag. 18
Il resto è tutto chiaro e grazie mille di nuovo
CIAO!

 
no il circuito di pag. 18 non va usato masta solo quello di pagina 11
tra l'altro il circuito di di pag. 18 ha un ingresso ( In+ fuori dalle 
specifiche di common mode ... se si alimenta il '358 dai 24 volt )
i due circuiti sono sostanzialmente la stessa cosa
immagina  nel circuito di pag. 11 di lasciare solo V1 e V3 con le 
relative resistenze.
attento che sul datasheet c'e' un errore devi leggere
Vo = V1 + V2 - V3 - V4 e non come e' scritto li con tutti i +  ( mi 
stanno venendo dei dubbi ma fai prima a controllare sperimentalmente )
la tensione di offset la puoi aggingere attaccandoti o a V2 ( va 
generata con un partitore ed un trimmer )
o potresti , sempre con partitore e trimmer attaccarti al posto della 
massa sempre nella figura 11.
mi raccomando tutte le prove falle con resistenze uguali di nome e di 
fatto ( selezionate col multimetro )


Ciao mmm,
ho seguito scrupolosamente i tuoi sugg. ed ho realizzato la conf. di
pag 11 del datasheet con una tensione di offset di 80mv.
Dalla prove fatte sembra funzionare a dovere, ovvero la tensione pre
vin=0 rimane a 80mv e di conseguenza variandi di +/- 60mv la tensione
di uscita varia da 140mv a 20mv.
Quindi in sostanza alimentando la mia resistenza di shunt da -60mv a
+60mv le cose sembrano funzionare a dovere.
I problemi sorgono, quando alimento la resistenza di shunt ad una
tensione +27V generata da 3 batterie da 9V l'una (in effetti questo
shunt mi serve per misurare la scarica e la carica proprio di una
batteria).
In sostanza collego il + della batteria a 27V ad una estremità della
resistenza di shunt, e il meno della batteria a comune con tutti gli
altri meno (alim. AO, il meno per generare la tensione di offset,
ecc...).
Ecco in questa situazione non va + nulla, ovvero l'uscita del
differenziale mi segna sempre 5V scarsi....
Cosa potrebbe essere? Ho bisogno di separare le due alimentazioni?
(separazione galvanica?)

Invio pure lo schema dei collegamenti (molto approx) fatto con fidocad
ciao
[FIDOCAD]
TY 95 0 5 3 0 0 0 * shunt
MC 95 10 0 0 080
LI 85 10 85 45
LI 85 45 85 55
LI 85 55 90 55
LI 110 10 110 45
MC 140 45 0 0 580
LI 110 45 140 45
LI 90 55 140 55
RV 115 75 135 85
TY 95 90 3 2 0 0 0 * partitore da 5v a 80 mv per offset
LI 125 75 125 45
LI 155 45 155 30
LI 105 10 120 10
LI 95 10 75 10
MC 195 10 0 0 450
LI 120 10 195 10
LI 155 30 155 10
LI 155 55 155 70
LI 155 70 195 70
LI 195 70 195 30
TY 200 15 3 2 0 0 0 * +27v
TY 145 35 3 2 0 0 0 * Diff.
TY 120 80 3 2 0 0 0 * OFFSET
MC 195 90 0 0 450
TY 200 95 3 2 0 0 0 * +5V
LI 195 90 195 80
LI 195 80 135 80
LI 195 70 230 70
LI 230 70 230 130
LI 230 130 195 130
LI 195 130 195 110
LI 125 85 125 130
LI 125 130 195 130
TY 160 55 3 2 0 0 0 * 0v 
TY 160 45 3 2 0 0 0 * 27v


<snip>
no, lo schema serve fatto per bene, potrebbe essere una resistenza fuori 
posto.

Ciao,
come ti dicevo nel post precedente, quando una estremità dello schunt
non è collegata ad + della batteria da 27V, sembra funzionare tutto,
quando la collego come nello schema che ti ho mandato, non funziona +
nulla
Ciao
[FIDOCAD]
MC 95 70 0 0 080
LI 85 70 85 105
LI 85 105 85 115
LI 85 115 90 115
LI 110 70 110 105
MC 140 105 0 0 580
LI 110 105 140 105
LI 90 115 140 115
LI 155 105 155 90
LI 105 70 120 70
LI 95 70 75 70
MC 195 70 0 0 450
LI 120 70 195 70
LI 155 90 155 70
TY 200 75 3 2 0 0 0 * +27v
TY 145 95 3 2 0 0 0 * Diff.
TY 160 115 3 2 0 0 0 * 0v
TY 160 105 3 2 0 0 0 * 27v
MC 140 85 1 0 080
LI 140 95 140 105
MC 140 85 2 0 045
TY 125 85 5 3 0 0 0 * 100K
TY 55 165 3 2 0 0 0 * partitore da 5v a 80 mv per offset
TY 65 155 3 2 0 0 0 * OFFSET
MC 140 165 1 0 080
TY 125 170 5 3 0 0 0 * 4.7K
MC 145 155 0 0 080
TY 145 145 5 3 0 0 0 * 100 Ohm
MC 140 195 3 0 450
LI 140 160 140 195
MC 170 155 3 0 045
LI 155 155 170 155
LI 140 150 140 165
LI 145 155 140 155
LI 160 195 170 195
LI 170 195 170 155
TY 150 210 3 2 90 0 0 * +5V
LI 140 150 140 105
SA 140 105
MC 115 105 0 0 080
TY 115 95 5 3 0 0 0 * 100K
MC 115 115 0 0 080
TY 115 120 5 3 0 0 0 * 100K
LI 155 120 195 120
LI 155 115 155 120
MC 195 120 0 0 045
LI 195 120 195 90
MC 150 130 0 0 080
LI 135 115 135 130
LI 135 130 150 130
LI 160 130 170 130
TY 150 135 5 3 0 0 0 * 100K
LI 170 130 170 110
LI 165 110 180 110
SA 170 110
TY 180 105 5 3 0 0 0 * VO
MC 110 35 1 0 470
TY 80 60 5 3 0 0 0 * shunt 60mv 30A
LI 110 35 110 70
LI 90 35 85 35
LI 85 35 85 70
TY 110 25 5 3 0 0 0 * Gen. di segnale

 
ad occhio nel tuo schema manca la resistenza da 100 K sul ramo dell'offset
prova col seguente ( la tensione di offset e' generata direttamente dall 
alimentazione del AO ma va bene anche come hai fatto tu prelevandola 
dalla 5 V )
[FIDOCAD ]
MC 190 40 0 0 080
LI 200 40 210 40
LI 210 40 210 60
LI 210 60 200 60
LI 210 60 225 60
SA 210 60
MC 130 25 1 0 100
MC 130 45 0 0 040
MC 130 10 1 0 080
MC 120 20 1 0 200
LI 130 35 130 45
LI 135 30 140 30
LI 130 40 120 40
LI 120 40 120 35
LI 130 20 130 25
LI 130 10 130 5
LI 130 5 120 5
LI 120 5 120 20
MC 130 -10 1 0 080
LI 130 0 130 5
SA 130 5
SA 130 40
MC 90 -20 0 0 080
MC 210 -10 0 0 460
MC 210 20 0 0 040
LI 210 10 210 20
LI 210 -20 100 -20
LI 210 -5 210 -20
LI 130 -10 130 -20
LI 105 -20 105 55
LI 90 -20 75 -20
LI 75 -20 70 -20
LI 85 -20 85 65
TY 90 -30 5 3 0 0 0 * Shunt
TY 195 30 5 3 0 0 0 * R1
TY 150 70 5 3 0 0 0 * R1
SA 70 -20
SA 85 -20
SA 105 -20
SA 130 -20
MC 190 80 0 0 040
LI 190 80 190 65
LI 190 65 185 65
LI 185 55 190 55
LI 190 55 190 -20
SA 190 -20
TY 20 -25 5 3 0 0 0 * All'Utilizzatore
TY 20 -20 5 3 0 0 0 * Caricabatteria
LI 225 60 230 60
MC 175 65 2 1 580
LI 140 30 140 80
MC 245 85 1 0 080
MC 245 100 0 0 040
LI 230 60 250 60
MC 250 60 0 0 580
LI 250 70 245 70
LI 245 70 245 85
LI 265 80 275 80
LI 275 80 275 65
LI 245 95 245 100
MC 255 80 0 0 080
LI 255 80 245 80
LI 275 65 285 65
SA 285 65
SA 245 80
TY 285 60 5 3 0 0 0 * All'ADC
TY 255 90 5 3 0 0 0 * Regolano il Fondo Scala
TY 135 25 5 3 0 0 0 * Regola l'Offset
TY 135 -5 5 3 0 0 0 * Rd
TY 135 15 5 3 0 0 0 * R2
TY 225 0 5 3 0 0 0 * Batteria da monitorare ( 24 V ? )
TY 85 -25 5 3 0 0 0 * V1
TY 105 -25 5 3 0 0 0 * V2
TY 150 85 5 3 0 0 0 * R1
TY 150 45 5 3 0 0 0 * R1
MC 210 75 1 0 080
MC 210 100 0 0 040
LI 210 85 210 100
LI 210 75 210 60
TY 215 80 5 3 0 0 0 * 1 k
SA 275 65
SA 115 55
SA 115 65
TY 115 50 5 3 0 0 0 * In-
TY 115 65 5 3 0 0 0 * In+
MC 150 55 0 0 080
MC 150 65 0 0 080
MC 150 80 0 0 080
LI 170 55 170 40
LI 170 40 190 40
SA 170 55
LI 160 55 175 55
LI 170 80 170 65
MC 170 85 1 0 080
TY 175 90 5 3 0 0 0 * R1
MC 170 100 0 0 040
LI 170 95 170 100
LI 170 80 170 85
SA 170 80
SA 170 65
LI 160 65 180 65
LI 160 80 170 80
LI 105 55 150 55
LI 85 65 150 65
LI 140 80 150 80
SA 145 80
TY 135 80 5 3 0 0 0 * In O
TY 145 35 5 3 0 0 0 * V3
seguono un po' di note aggiuntive
un po' di note esplicative
Rd, R2, il trimmer ed il diodo servono a generare l'offset
Rd va scelto per far passare nel diodo 5-10 mA (24-.7)/5e-3
in modo da avere una tensione praticamente costante al variare della 
tensione di alimemtazione
( leggi della tensione della batteria )
R2 serve insieme al trimmer per abbassare ulteriormente questa tensione, 
V3 , a circa 60mV
e deve essere circa 10 volte il valore del trimmer ( per esempio trimmer 
da 1 K e R2 da 10 K )
le resistenze R1 ( 5 in tutto ) devono essere precise altrimenti non si 
riesce ad ottenere l'indipendenza della lettura dalle tensioni V1 e V2 , 
tieni conto che lo scopo dell'amplificatore differenziale e' avere in 
uscita una tensione proporzionale ad V2-V1 a prescindere dai loro valori 
assoluti.
invertendo i collegamenti tra V1 , V2  ed In+ , In- si inverte la 
'polarita' d'uscita
non conviene che siano un valore troppo basso, seguendo lo schema della 
national si possono mettere anche da 100K, ripeto e' fondamentale che 
siano tutte UGUALI non solo di valore nominale conviene quindi 
selezionarle col multimetro.
per come e' stato collegato l'uscita e' maggiore della tensione di 
offset per V1>V2 ( cioe' in carica ) ed e' minore della tensione di 
offset per V1<V2 ( cioe' in scarica )
il secondo operazionale introduce un ulteriore guadagno per riportare i 
0-120 mV ad una tensione compatibile con l'ADC , puoi usare un guadagno 
10 o 20 ( ed anche di piu' )
per poter effettivamente fare delle prove devi collegare un carico o un 
generatore a dove e' segnato 'All'Utilizzatore Caricabatteria' in modo 
da avere una differenza di potenziale non nulla ai capi dell shunt
la resistenza da 1 K sull'uscita del primo AO gli serve da carico

Grzie mille mmmm
provo il tutto e poi ti faccio sapere
grazie ancora
Ciao

Ciao mmmm
FINALMENTE CI SIAMO!!!!!
il tutto funziona a dovere,
ti ringrazio nuovamente, il tuo aiuto è stato veramente indispensabile
grazie ancora
CIAO!!!!