Go Down

Topic: Arduino uno + LCD Display+ sensore di pressione (Read 2046 times) previous topic - next topic

Redwin

Vorrei collegare arduino uno con un LCD display per visualizzare i valori di pressione esercitata da un liquido spinto attraverso un tubicino.
Per la precisione vorrei collegare una siringa con un palloncino gonfiabile, tramite un tubicino  del tipo di quelli che si usano per le flebo, e gonfiare il palloncino, spingendovi dentro l'acqua.
Il mio scopo è quello di misurare la pressione che l'acqua esercita all'interno del palloncino gonfiabile tramite un sensore costituito da un trasduttore piezoelettrico.
Sul sito al seguente  link
http://arduino.cc/en/Tutorial/LiquidCrystalDisplay
Ho trovato lo schema ed il codice per collegare arduino1 con il LiquidCrystalDisplay
Mio problema è collegare il sensore ad arduino e, successivamente, creare un programma per leggere i valori di pressione.
Per quanto riguarda il programma ho pensato di modificare il programma per misurare la pressione barometrica trovato sul seguente sito:
https://www.sparkfun.com/tutorial/Barometric/BMP085_Example_Code.pde
https://www.sparkfun.com/products/11282

Per quel che concerne il sensore ne ho trovato uno  sul seguente sito:
http://eshop.evserviceitalia.eu/store/product_info.php?cPath=142_154_156&products_id=1136

Qualcuno potrebbe aiutarmi?

Grazie
Falcon



ricdata

Quote
Per quel che concerne il sensore ne ho trovato uno  sul seguente sito:
http://eshop.evserviceitalia.eu/store/product_info.php?cPath=142_154_156&products_id=1136


sei sicuro che sia un sensore quello? non c'è un nome, una descrizione, una sigla, e dalla foto non vedo cavi o connettori.
sembra tanto un tubo per le flebo  ;)
La vera saggezza sta in colui che sa di non sapere. Perché io so di sapere più di te, che pensi di sapere. (Socrate)

Redwin

Grazie per avermi risposto.
Non solo sono sicuro che si tratti di un sensore , ma aggiungo che si tratta di un trasduttore capace di registrare la pressione esercitatata da un fluido organico durante la dialisi.
Mi spediranno presto il sensore, così potrò esser più preciso nella descrizione e inserirò anche una foto migliore.
Il mio problema è che il sensore ha uno spinotto a 5 fili e che anche se mi forniranno gli schemi elettrici non so proprio come farò a collegarlo ad arduino.
Soprattutto vorrei modificare un programma per misurare la pressione atmosferica per adattar lo al mio scopo.

Spero che potrai aiutarmi meglio quando avrò il sensore con gli schemi elttrici.

Etemenanki

Ricdata, il sensore e' nel riquadrino di plastica trasparente/violetta, quello sopra le boccoline colorate, e che ha un cavetto grigio collegato.

Non si riesce a capire dall'immagine, ma potrebbe essere un sensore barometrico montato in una camera stagna con un diaframma che lo isola dal liquido, e che comprime l'aria piu il liquido ha pressione (sto tirando ad indovinare, ma mi sembra uno dei pochi modi di poterlo usare in quelle applicazioni)
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

hiperformance71

Ciao,  un sensore a 5 fili? strano, di solito ne bastano 3,  (GND, +5V e Segnale), avendone 5 posso immaginare solo che possa essere un sensore differenziale, quindo a 4 fili + un quinto magari per la temperatura ambiente?  del campo medicale ne so poco o niente, ma di auto che ne usano di sensori barometrici e MAP (Manifold Absolute Pressure - Pressione Assoluta Collettore) ne so un bel pò visto che è il mio campo. 

Quindi, una volta avrai in mano il datasheet, dovrai collegare i fili ad arduino secondo il significato di ogn'uno, quindi, vi saranno:

+5V - andrà collegato a uno dei piedini +5v di arduino, ma meglio mettici qualche resistenza per limitare la corrente, in caso di corto a massa del sensore o del filo non ti brucerà la scheda arduino (non indispensabile ma prudente)
GND - Massa, lo devi collegare ad uno dei pin di massa di arduino.
Segnale Barometrico ?  - lo dovrai collegare ad uno dei pin Analogici di arduino, A0...A13
Segnale Pressione? - lo dovrai collegare ad un secondo pin analogico
Senale ? - idem, lo dovrai mettere su un terzo pin analogico.  ma senza sapere cosa sia sto solo ipotizzando...

Annotati su che pin hai messo ogni segnale, ti servirà nello sviluppo dello schetch.

Facciamo un'esempio:

Segnale Barometrico - pin A0
Segnale Pressione      - pin A1
Segnale x                       - pin A2

Da quello che so su sensori di pressione, essi possono essere sia Assoluti che Relativi, quelli Assoluti danno un riferimento che include anche la pressione barometrica, quindi la lettura sarà diversa se la facciamo al livello del mare o a 4000m di quota dove la barometrica è più bassa rispetto al livello del mare.
i sensori Relativi debbono per forza (almeno quelli che ho visto io) avere un riferimento della barometrica, quindi in realtà, sono due sensori in uno, ne ho visti alcuni che tirano fuori un unico dato (la press. relativa) perchè contengono già tutto il necessario al lori interno e costano di più, poi vi sono quelli che hanno ogni segnale separato e sarà la MCU di Arduino (o altro MCU) a calcolare la Relativa semplicemente restando la barometrica (o di riferimento se non dovesse essere la barometrica) a quella misurata Assoluta.   

Sperando che siano entrambi lineari, così potrai utilizzare questo comando:

//****************************************************************************************************
void Calcolo_Press_Assoluta(){

Press_Assoluta_Attuale = map( Press_Assoluta_ADC ,Press_Assoluta_ADC_min ,Press_Assoluta_ADC_max , Pressione_Assoluta_Kpa_min , Press_Assoluta_kpa_max );

}

dove:

Press_Assoluta_Attuale = Pressione assoluta calcolata.

Press_Assoluta_ADC= analogRead(A1);   //valore letto sul pin assegnato al sensore, in questo caso A1

Press_Assoluta_ADC_min = Valore minino ADC in corrispondenza del minimo voltaggio del sensore, se esso inizia a 0V il valore adc sarà 0, altrimenti, dovrai convertire i mV del datasheet in valore ADC approssimato, ovvero:  0 ADC = 0mV , 255 ADC = 5000mV quindi:  5000/255=19,6mV per ADC   Altrimenti devi simulare le condizioni di pressione e verificare prima che valore ADC ottieni (metodo poco pratico secondo me per quest' applicazione).

Press_Assoluta_ADC_max = idem che sopra ma con il valore massimo.

Press_Assoluta_Kpa_min = valore della pressione misurabile minima del sensore, in questo esempio ho usato il Kpa (kilopascal), ma forse per la tua applicazione sarà meglio usare i pa (pascal?) 

Press_Assoluta_Kpa_max = idem che sopra, ma con il valore massimo misurabile...


Con questo comando su descritto, otterrai un valore di "Pressione_Assoluta_Calcolata" in kpa che sarà il risultato dell'interpolazione lineare che questo comando fa.  Se il sensore non fosse lineare, la cosa si complica, perchè si dovra usare una lookup table o un'array di equivalenza.

Ovviamente, dovrai ripetere il comando su esposto anche per il sensore barometrico cambiando i nomi delle variabili ecc...

Quando avrai i due valori calcolati di presione:  "Pressione_Assoluta_Calcolata"  e "Press_Barometrica_Calcolata" non dovrai fare altro che restare la barometrica dalla Assoluta ed ottenere così quella Relativa (o come tu voglia chiamarla)

per il terzo sensore (ammettendo lo sia) si dovà decidere solo dopo che si conoscerà la sua funzione...

Spero che la mia spiegazione sia stata chiare, se hai dubbi o domande, non esitare a chiedere...

In bocca al lupo!

Ciao!


"The only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle" - Steve Jobs

BaBBuino

Devi usare un sensore come questo, differenziale o assoluto:


Etemenanki

Se ha 5 fili, potrebbe avere un'uscita digitale anziche' analogica ... inoltre, il quinto filo potrebbe essere semplicemente la schermatura del cavetto (ho gia visto applicazioni simili per sensori di laboratorio, dove lo schermo del cavo invece di collegarlo direttamente a massa lo fanno uscire con un filo extra) ...
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.

hiperformance71

infatti, anch'io li ho visti come quello in foto ma anche di diversi altri, basta ricercarli su RS o Distelec per restare in Italia o meglio ancora cercarli su Digikey, Mouser o Farnell.   ve ne sono di tutti i tipi ed applicazioni sia analogici che digitali.   Ho visto alcuni che hanno anche un sensore di temperatura interno per poi consentire anche la correzzione in base alla temperatura del fluido (spesso gassoso)  ed altri che la compensazione viene fatta internamente e quindi il valore in uscita è già compensato.  Di quelli come in foto, ne ho visti a partire da 5 Euro!  credo che in quanto a costi, sarebbe preferibile rispetto a quello "medicale" specifico, chiaramente non sappiamo per cosa ti serve e quindi che criticità avrà, ma credo si potrebbe fare una ricerca in base alle caratteristiche di progetto e quindi prendere il sensore più conveniente sia tecnicamente che di costi.
"The only way to do great work is to love what you do. If you haven't found it yet, keep looking. Don't settle" - Steve Jobs

Redwin

Grazie mille per la pazienza e l'aiuto che mi state dando. :)

Non appena avrò il sensore pubblicherò tutto foto e schemi elettrici.
Aspetto tale sensore da una settimana , ma ancora non me lo hanno spedito.
Grazie ancora
Falcon

Redwin

Buon anno a tutti,

Ho trovato un trasduttore che lavora a 5V, non lavora con GND.

Ha 4 pin così suddivisi:

1 )+5V

2 )-5V

3) signal +

4 ) signal -

Mi fornirebbero anche uno spinotto collegato ad un  cavo che ha la "calza" che puo' essere collegata al GND di arduino .
La calza ho scoperto che è un rivestimento di sicurezza dei fili che rende inutile il GND.

Da quello che ho capito potrei connettere l' ingresso a 5V  ad arduino , il GND di arduino alla "calza" ( anche se credo si inutile),mentre collegherei  i pin del trasduttore signal - , signal+ e -5v ai pin analogici A1,a2 ed A3.

Però avrei bisogno che qualcuno mi dicesse se ciò che ho ipotizzato sia corretto.
S.O.S
POTETE AIUTARMI?


Redwin

Salve a tutti ,
Grazie ai consigli del forum sono finalmente riuscito a leggere i segnali elettrici emessi dal sensore piezoresistivo di cui ho parlato in precedenza .
Ho collegato arduino uno con una LCD Keypad shield ed ho  trasformato così arduino in voltometro grazie ad un programmino trovato sul  forum al seguente link
http://forum.arduino.cc/index.php?topic=36405.0
Ho effettuato le misurazioni a partire da zero mBar (ovviamente corrispondono a 0 mV ) fino a 2,5 Bar.
Adesso ho una serie di valori espressi in mV , peró vorrei che fossero trasformati in mBar o Pa.
Qualcuno mi potrebbe suggerire come fare?
Grazie in anticipo a tutti

pippo72


Redwin

Caro Pippo,
Grazie per il suggerimento,ma potresti dirmi come si fa praticamente?
saluti
Red

pippo72

Ti ringrazio del caro. :)
Leggendo l'ingresso analogico
Code: [Select]
analogRead(pin)
di arduino avrai un valore che va da 0 (0 volt) a 1023 (5 volts) .
Ora tu sai (nel senso che lo devi misurare) a quanti bar corrisponde il valore letto.
esempio:
-0 bar valore letto 0
-2 bar (2000 mBar) valore letto 1023
con  map lo "rimappi" così:
Code: [Select]
a = analogRead(pin); // legge valore ingresso
pressione = map(a,0,1023,0,2000); //riporta la pressione in millibar

Naturalmente il tutto ha senso se il sensore ha una risposta lineare.

ciao
pippo72

Redwin

Grazie Sei stato chiaro e semplice.
Saluti
red

Go Up