Vai al contenuto
PLC Forum


Altimetro


iw4aok

Messaggi consigliati

Dovrei utilizzare un trasduttore di pressione, mod.: XFPM-115KP della Tohoku Fujkura, per realizzare un’altimetro.

Questo trasduttore fornisce in uscita a ZERO metri una tensione di 4,0830 V. e una variazione per ogni metro di soli 0,000459 V. (0,459 mV) e la formula che dovrei usare per il calcolo dell’altezza è la seguente altezza = (4,0830 - h) : 0,000459 dove h è il valore di tensione misurato ad una certa altezza da terra (per es.: 4,0371 V a 100 m.).

Per la programmazione dei PIC uso PicBasicPro e vi chiedo:

utilizzando PicBasicPro, è possibile fare questo tipo di calcolo collegando direttamente il trasduttore ad un ingresso analogico del PIC ?

Ho fatto tante prove ma non ho ottenuto quello che speravo, tra le tante ho provato con un operazionale in modo differenziale che realizza la prima parte della formula ma diventa tutto molto critico dal momento che si deve lavorare con pochi microvolt…….insomma mi servirebbe un po’ d’aiuto.

Spero che l’argomento possa essere di interesse comune e ringraziando anticipatamente saluto

Silvano G.

ps: se possibile rispondere anche a

silvano.g_at_tin.it

Link al commento
Condividi su altri siti


In teoria puoi collegare direttamente l'uscita del tuo sensore al'ingresso analogico del pic, che accetta tensioni comprese tra 0 e 5 V. Il problema è la risoluzione di cui hai bisogno. L'adc del pic è a 10 bit, quindi con Vref+ = 5 V e Vref- = 0 V hai una risoluzione di 5/2^10= 0.0049 V, corrispondenti, per il tuo sensore, a circa 10 m. Suppongo che ciò non ti basti.

In tal caso bisogna limitare l'intervallo di campionamento dell'adc, in modo da aumentare la risoluzione.

L'operazionale in differenziale è un'idea, ma è molto critico e va progettato bene per funzionare correttamente. Usa trimmer multigiri, con resistenze di spalla calcolate per limitarne l'escursione. Inoltre per funzionare bene con tensioni così basse l'operazionale deve essere scelto idoneo per funzionare in modalità singola alimentazione (se lo alimenti a 5 V). Altrimenti usi un'alimentazione duale (ad esempio +5 -5 V, proteggendo l'ingresso del pic da inversioni di polarità).

Il differenziale stesso, se a guadagno unitario, non ti risolve il problema della risoluzione. Andrebbe realizzato ampplificato, con guadagno almeno di 10. Il che complica la taratura. Lo sconsiglio.

Un sistema più semplice consiste nel limitare il range di campionamento dell'adc, utilizzando due riferimenti esterni Vref+ e Vref-. Scegliendo accuratamente i valori di queste due tensioni (ottenibili con due trimmer multigiri, con le solite resistenze di spalla) si può aumentare la risoluzione e semplificare di molto i calcoli.

Bisogna porre attenzione alla scelta della risoluzione: più si rende l'adc sensibile a piccole variazioni, più si riduce il fondo scala possibile. Da un dato non si scappa: si hanno a disposizione 1024 livelli (2^10).

Se si sceglie di avere una risoluzione di 1 m e un fondo scala di 1024 m si sceglieranno le seguenti tensioni:

Vref+ = 4,0830 V, corrispondenti a 0m e al codice 1024

Vref- = 3.6130 V, corrispondenti a 1024m e al codice 0.

In tal caso l'operazione svolta dal pic si riduce ad un semplice complemento del risultato.

In realtà il codice 1024 in uscita dall'adc non esiste. Il codice massimo sarà di 1023, corrispondenti a 1 m di altitudine.

Se si vuole ampliare il range, se deve aumentare anche il minimo intervallo misurabile. Ad esempio si potrebbe stabilire un range da 0 a 2048 m, con una precisione di 2 m.

Altrimenti è necessario usare un adc esterno, con risoluzione maggiore.

Ciao!

Link al commento
Condividi su altri siti

Ciao,BIT,

lo sai che quasi quasi ci ho capito anche io nella tua risposta ??

Mi associo a Mario...

Per Silvano,anche io,a parte i PIC,sto' facendo qualche cosa con un sensore Motorola XP100,ma ho grossi problemi,in pratica vola come un aliante,un po' va' giu' un po' su'......

Se ti interessa,ti daro' notizie su eventuali successi,se non mi senti,e' perche' ha prevalso il contrario..

'73 Ciao

IK1CFJ

Link al commento
Condividi su altri siti

Bit ha praticamente detto tutto,

Ma ho letto in un AN della microchip che per alcuni valori delle Vref si hanno perdite di precisione del convertitore AD e ho gia' sperimentato in pratica ... e' vero.

Un circuito che si puo' usare come punto di partenza e' lo stesso che si usa per le termocoppie , dove le differenze di tensone sono quasi dello stesso ordine .

Per farti una idea puoi leggere questi documenti della stessa microchip

http://www.microchip.com/download/appnote/.../adc/00684a.pdf

Qui ci sono dei circuiti di amplificazione per bassissime tensioni e sono anche molto stabili , naturalmente dovrai eliminare la compensazione della giunzione fredda che non ti serve .

Io ho provato questi circuiti e funzionano egregiamente.

Link al commento
Condividi su altri siti

Grazie ragazzi per la risposta che aspettavo con ansia......

Caro Bit ho realizzato il circuito con un operazionale e tensione duale ed ho proprio fatto come dici nella tua risposta, utilizzando resistenze scelte e trimmer multigiri di basso valore, ho calcolato il tutto per un guadagno di 10 e insomma..........qualche cosa avevo già ottenuto, ma come dici tu non troppo soddisfacente........

Purtroppo non ho capito bene come dimezzare la sensibilità del campionamento, magari se avrai voglia e tempo per spiegarmi meglio....diciamo da scimmia........potrei fare una prova anche con 2 metri di risoluzione, anche se mi piacerebbe raggiungere il metro come gli altimetri che normalmente si usano in campo aeromodellistico.

Vorrei infatti realizzare questo progetto per trasmettere a terra a mo di telemetria tutta una serie di dati che mi sono utili per il volo in pendio con aliante radiocomandato.

La parte di trasmissione dei dati di temperatura e batteria è già fatta e funzionante mi manca l'altezza e il variometro ed è uno scoglio duro perchè è da un paio d'anni che ci giro attorno ma non riesco.....

Una parte difficile per la mancanza di cultura dell'argomento, sono i calcoli che si fanno con Pic Basic Pro, come per es.: adval=(adval*/500)>>2, che so cosa fa ma non riesco a scomporre il principio che porta a queste formule per poterle modificare se possibile a mio uso e consumo.

Spero di trovare chi possa chiarirmi questa parte matematica.

Scusate ma è solo un anno, da quando sono andato in pensione, che mi dedico ai microchip....portate pazienza

Vi ringrazio tutti e se avete qualche idea ......sempre bene accetta

ciao Silvano iw4aok

Link al commento
Condividi su altri siti

Grazie Bit e luca per aver preso in considerazione il mio problema.

Dopo la risposta di ieri sono andato a leggere il manuale del 12f675 e come mi pareva di ricordare non ha il riferimento negativo......peccato, ma il 16f876 si e quindi anche per fare prove può andare bene.

Ho spulciato su argomenti presi da internet tempo fa e ho trovato uno schema che utilizza un ADC a 12 bit e un sensore 4100 motorola collegati da un operazionale che amplifica credo 10 volte ma non sono sicuro perche l'immagine non è chiara........

Ma Bit mi ha dato una buona spinta con con i suoi consigli e vedro.....certo che se potessi averlo vicino per alcune ore e farmi spiegare un po di cose sarebbe piu semplice......HI hI HI, naturalmente si fa per dire....

L'altezza di 1000 metri puo andar bene, dal momento che un modello di 4 metri ad un'altezza di 300 metri diventa lungo come il dito mignolo........dovro pensare all'altezza negativa per quando sono in pendio e il modello scende verso valle e se non si trova la termica sono dolori........

Adesso vi metterete a ridere ma con POSTARE cosa intendete....mandare per posta o cosa.......che figura sto facendo.........

Grazie ancora ragazzi e se nel frattempo riuscirò ad avanzare nel progetto vi farò sapere

ciao Silvano iw4aok

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...