# Lettura valori sensore di  pressione

**URL:** <https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934>\
**Category:** Generale\
**Created:** [August 8, 2014, 9:37pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934 "2014-08-08T21:37:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 8, 2014, 9:37pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/1 "2014-08-08T21:37:49Z")

</div>

Ciao ragazzi....inizio a imbattermi in un nuovo progetto...questa volta con un sensore di pressione!!!!!!!!!! Non mi tornano i conti tra volt e bar...ho fatto diverse conversioni etc...varie ricerche....ad oggi ho scoperto una funzione fighissima "map" che stabilisci dei parametri...e ti converte in automatico l'ingresso analogico.....Ora il problema è un altro...stabilire come misurare questa pressione.....  
Faccio presente che utilizzerò un sensore che misura 0 - 600 bar...con un output 0,5v a 4,5v. Ora, per calcolare la corrispondenza ho diviso i 4,5v su 600bar....al risultare bisogna sommare i 0,5v visto e considerato che la base 0bar è 0,5v.....Ora come faccio a dire ad arduino...che ogni 0,05075v corrisponde 1 bar? Sarà una cavolata il calcolo...ma mi sn bloccato!!!! Ho provato a fare delle proporzioni....ma senza ottenere dei risultati....confido in un vostro aiuto!!!!!!!! grazie

---

<div class="post-metadata">

**Author:** ![brunello22](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/brunello22/32/214773_2.png) [@brunello22](https://forum.arduino.cc/u/brunello22)\
**Post date:** [August 8, 2014, 10:10pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/2 "2014-08-08T22:10:26Z")

</div>

5 / 1023= 0.04887585  
4.5 / 0.004887585 = 920 Limite massimo  
0.5 / 0.004887585 = 102 Limite minimo  
map (valore, 102, 920, 0, 600)

il tutto soggetto agli errori classic  
tensione di riferimento di non 5V esatti, non linearita' del sensore etc etc etc

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 8, 2014, 10:22pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/3 "2014-08-08T22:22:32Z")

</div>

ok, grazie.....ma io uso un alimentatore stabilizzato...potrei comunque avere problemi?....ho provato, ma non è preciso...ho collegato un alimentatore...e nonostante io regolo la tensione a 4,5v misura 623bar!!xkè?

---

<div class="post-metadata">

**Author:** ![menniti](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/menniti/32/214288_2.png) [@menniti](https://forum.arduino.cc/u/menniti)\
**Post date:** [August 8, 2014, 10:25pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/4 "2014-08-08T22:25:10Z")

</div>

A mio parere il ragionamento lo devi estendere sui 10 bit dell'ADC, ossia da 0 a 1023. Con una proporzione ti calcoli l'estremo superiore "virtuale" della scala, cioè:  
4,5V : 600bar = 5V : X --\> = 666 quindi hai 0,5V = 66 bar; da ciò ricavi l'estremo inferiore -66bar  
quindi possiamo immaginare che il sensore operi nel range di pressione da -66bar a 666bar in corrispondenza dei 1024 passi (da 0 a 1023); ogni passo corrisponde in volt a: 5V:1024 = 0,0048 e in bar a 0,714; quest'ultimo è il valore che ti interessa.  
P.es. immagina che l'analogRead ti restituisca una lettura di 357 non dovrai fare altro che moltiplicarlo per 0,714 ed otterrai l'equivalente in bar cioè 357_0,714=254,898.  
A me pare un ragionamento esatto, fai un po' di prove e fammi sapere. Ovviamente non dovresti mai avere letture inferiori a 66_0,714=47 circa e maggiori di 600\*0,714=428 circa perché saresti off range.

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 8, 2014, 10:32pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/5 "2014-08-08T22:32:50Z")

</div>

io con questa formuletta ho tradotto il segnale in volt...e sembra attendibile float)valore / 1024) \* 5)-(0.17) 0,17 lo sottraggo xchè a 0 volt mi misura 0,17v chiamiamolo fattore di correzione  
Con questo codice non riesco a rilevare una pressione precisa.....ogni volt mi corrispondono 150 bar!!!!!

```cpp
#define IN_ANALOG 0
int valore;
int pressione;

void setup(){
  Serial.begin(57600);
  
  }

void loop(){

  valore = analogRead(0);
  float temp; // 1 bar 0,07 volt 66,67 millivolt
  float min;
  float max;
  min = 0,5;
  max = 4,5;
  temp= ((((float)valore / 1024) * 5)-(0.17));
  
  if (temp < 0){
    temp = 0.00;
    Serial.println("COLLEGARE IL SENSORE");
    }
  pressione = map(temp,min,max,0,600);
      
  Serial.println(pressione);
  
}

```

---

<div class="post-metadata">

**Author:** ![menniti](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/menniti/32/214288_2.png) [@menniti](https://forum.arduino.cc/u/menniti)\
**Post date:** [August 8, 2014, 10:48pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/6 "2014-08-08T22:48:11Z")

</div>

scusa ma del tuo ultimo intervento non ho capito niente, né a che formula ti riferisci e nemmeno questa cosa che a 0V ti misura 0,17V

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 8, 2014, 10:54pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/7 "2014-08-08T22:54:27Z")

</div>

si....posizionando a 0 volt il mio alimentatore.....il valore temp assume 0,17v......x cui....io li sottraggo e porto tutto a 0...Ho provato a muovere il trimmer"fine" che ho sull'alimentatore e addirittura se ho il trimmer a 4,5 sull'arduino visualizzo 4,51, 4,52, 4,53....etc....è molto preciso...

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 8, 2014, 11:11pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/8 "2014-08-08T23:11:18Z")

</div>

> [@](#):
>
> A mio parere il ragionamento lo devi estendere sui 10 bit dell'ADC, ossia da 0 a 1023. Con una proporzione ti calcoli l'estremo superiore "virtuale" della scala, cioè:  
> 4,5V : 600bar = 5V : X --\> = 666 quindi hai 0,5V = 66 bar; da ciò ricavi l'estremo inferiore -66bar  
> quindi possiamo immaginare che il sensore operi nel range di pressione da -66bar a 666bar in corrispondenza dei 1024 passi (da 0 a 1023); ogni passo corrisponde in volt a: 5V:1024 = 0,0048 e in bar a 0,714; quest'ultimo è il valore che ti interessa.  
> P.es. immagina che l'analogRead ti restituisca una lettura di 357 non dovrai fare altro che moltiplicarlo per 0,714 ed otterrai l'equivalente in bar cioè 357_0,714=254,898.  
> A me pare un ragionamento esatto, fai un po' di prove e fammi sapere. Ovviamente non dovresti mai avere letture inferiori a 66_0,714=47 circa e maggiori di 600\*0,714=428 circa perché saresti off range.

ho provato...a 847 corrispondono 600 bar....non è preciso

---

<div class="post-metadata">

**Author:** ![menniti](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/menniti/32/214288_2.png) [@menniti](https://forum.arduino.cc/u/menniti)\
**Post date:** [August 8, 2014, 11:20pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/9 "2014-08-08T23:20:09Z")

</div>

Il mio calcolo si basa su una alimentazione di Arduino che sia perfettamente a 5V altrimenti ovvio che i conti non tornano; se ho ben capito tu stai usando un alimentatore per simulare il sensore di pressione, il test ci può anche stare ma la tensione di alimentazione di Arduino l'hai misurata? è quella che fa testo!

---

<div class="post-metadata">

**Author:** ![brunello22](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/brunello22/32/214773_2.png) [@brunello22](https://forum.arduino.cc/u/brunello22)\
**Post date:** [August 8, 2014, 11:22pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/10 "2014-08-08T23:22:32Z")

</div>

> ho provato, ma non è preciso...ho collegato un alimentatore...e nonostante io regolo la tensione a 4,5v misura 623bar!!xkè?

perche' probabilmente alimenti Arduino da USB e invece di 5V avrai una tensione minore

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 8, 2014, 11:27pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/11 "2014-08-08T23:27:25Z")

</div>

è tutto alimentato dallo stesso alimentatore....con il trimmer vario solo l'ingresso su a0...cmq ho fatto una taratura....leggendo il valore su analog 0 e la tensione calcolata con la "formuletta" che mi son fatto...e poi con map ho messo che a 0,5v corrisponde il valore x e a 4,5 corrisponde il valore y...rapportando tutto a 0bar e a 600 bar.....ora servirebbe un manometro per essere sicuri che la taratura sia corretta....Anche se questa soluzione è un pò...."casareccia"....mi sarebbe piaciuto di trarre un valore basandomi sulle proporzioni reali....e non impostando tutto manualmente...

---

<div class="post-metadata">

**Author:** ![leo72](https://avatars.discourse-cdn.com/v4/letter/l/71c47a/32.png) [@leo72](https://forum.arduino.cc/u/leo72)\
**Post date:** [August 9, 2014, 6:00am UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/12 "2014-08-09T06:00:53Z")

</div>

> Brunello:  
> 5 / 1023= 0.04887585

> [@](#):
>
> A mio parere il ragionamento lo devi estendere sui 10 bit dell'ADC, ossia da 0 a 1023.

Esatto.

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 9, 2014, 1:21pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/13 "2014-08-09T13:21:12Z")

</div>

> Brunello:  
> 5 / 1023= 0.04887585  
> 4.5 / 0.004887585 = 920 Limite massimo  
> 0.5 / 0.004887585 = 102 Limite minimo  
> map (valore, 102, 920, 0, 600)
> 
> il tutto soggetto agli errori classic  
> tensione di riferimento di non 5V esatti, non linearita' del sensore etc etc etc

nonostante utilizzi un alimentazione stabilizzata...non mi ritrovo con i valori...a o volt mi trovo -74bar a 4,5volt mi ritrovo 622 bar......  
non capisco se faccio il map pressione = map(temp,min, max,0,600)....mi restituisce un valore che incrementa di 150bar....xkè? min=0,5 max=4,5

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 9, 2014, 7:16pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/14 "2014-08-09T19:16:57Z")

</div>

nussun'idea?

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 10, 2014, 6:56pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/15 "2014-08-10T18:56:18Z")

</div>

Tutti in ferie?! 8)

---

<div class="post-metadata">

**Author:** ![menniti](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/menniti/32/214288_2.png) [@menniti](https://forum.arduino.cc/u/menniti)\
**Post date:** [August 10, 2014, 8:11pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/16 "2014-08-10T20:11:30Z")

</div>

Scusa Pakino, l'UP non è molto gradito sul forum, se nessuno interviene non è perché sei ignorato, ma perché evidentemente la discussione ha dato tutto il possibile che si poteva dare. Visto che non stai usando il sensore ma una sorgente in volt, che peraltro affermi essere stabilissima, non è possibile che tu ottenga valori sballati e diversi tra loro; quindi non c'è modo di andare avanti almeno finché non hai tu novità da fornire. 🙂

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 10, 2014, 8:17pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/17 "2014-08-10T20:17:17Z")

</div>

si hai ragione....se avessi il sensore, avrei un riscontro reale.....ma considerando bene la teoria...io ho riscontrato che rapportando i volt letti con il risultato...non è congruo....xkè la misurazione della pressione incrementa di 150bar x volta....leggo bene la minima pressione...quindi a 0,5v 0bar e a 4,5volt 600bar....ma non leggo l'incremento graduale.....vale a dire 1bar,2bar,3,bar,10bar etc...

---

<div class="post-metadata">

**Author:** ![menniti](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/menniti/32/214288_2.png) [@menniti](https://forum.arduino.cc/u/menniti)\
**Post date:** [August 10, 2014, 8:29pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/18 "2014-08-10T20:29:46Z")

</div>

Allora vuol dire che non hai tenuto conto dei calcoli che ti ho fatto ed hai commesso errori nello sketch, il convertitore AD è perfettamente lineare, se a 0,5V leggi 0 e a 4,5V leggi 600, applicando p.es. 2,5V devi per forza leggere 300, altrimenti stai facendo casino nella conversione.

---

<div class="post-metadata">

**Author:** ![pakino](https://avatars.discourse-cdn.com/v4/letter/p/ac91a4/32.png) [@pakino](https://forum.arduino.cc/u/pakino)\
**Post date:** [August 10, 2014, 8:39pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/19 "2014-08-10T20:39:34Z")

</div>

Si,leggo 300...ma non capisco xkè fin tanto non raggiungo i 450  
Non vedo i restanti valori incrementare fino a 450...  
La conversione avviene direttamente map(temp,min,max,0,600) considerando che min é 0,5 e max 600

---

<div class="post-metadata">

**Author:** ![menniti](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/menniti/32/214288_2.png) [@menniti](https://forum.arduino.cc/u/menniti)\
**Post date:** [August 10, 2014, 8:51pm UTC](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934/20 "2014-08-10T20:51:23Z")

</div>

lascia un momento da parte il map e prova semplicemente a moltiplicare il valore letto per quello che ti ho calcolato io e vedi cosa succede.

[Next page](https://forum.arduino.cc/t/lettura-valori-sensore-di-pressione/250934.md?page=2)
