MeteoDuino

MPXA6115A

Sensore di pressione mpxa6115a

Il primo approccio per la misura della pressione atmosferica è stato quello di testare il sensore mpxa6115a. Questo dovuto anche al prezzo basso. 

I risultati però non sono stati soddisfacenti in quanto probabilmente questo sensore è più adatto a pressioni più elevate di quella atmosferica, oppure va bene per misurare le pressioni differenziali accoppiandone 2.

Comunque vada la prova è stata fatta e lo sketc creato sfruttando codici in rete è il seguente:

 

 

/*
AnalogReadSerial
Reads an analog input on pin 0, prints the result to the serial monitor.
This example code is in the public domain.
*/

// the setup routine runs once when you press reset:

void setup() {
    Serial.begin(9600);  // initialize serial communication at 9600 bits per second:
}


void loop() {   // the loop routine runs over and over again forever:


   long int sensorValue = analogRead(A0); // read the input on analog pin 0:
   long int tensione, P, Pmbar;
    // print out the value you read:

   //'tensione= sensorValue*0.0049;'
   //'P=(sensorValue*0.0049/3.3+0.095)/0.009;'

   Pmbar=((analogRead(A0)*(0.0048828125)/4.8)+0.095)/0.0009;
   
   //Serial.println(tensione);
   //Serial.println(P);

   Serial.println(Pmbar);
   delay(500); // delay in between reads for stability
}

 

Il problema principale è che la lettura è analogica. La risoluzione di arduino è di 10 bit e quindi si riesce a misurare al massimo 5volt/2^10=5/1024=0,0048828125v circa uguale a 0,005v

Con questa precisione riesco a misurare un minimo di 1,64mbar che potrebbero essere anche sufficienti, però l'oscillazione della misira attorno al valore si fa sentire.

Guardando il datasheet del componente si vede che la tensione di uscita ha questo andamento

E la fisica del sensore dipende anche dalla temperatura soprattutto se si va sotto 0°C

La banda dell'errore di misura è diciamo dello stesso rdine di grandezza della minima risoluzione che si può avere dall'ingresso analogico di arduino

 

La pressione alla fine viene  calcolara con questa formula

Dove i 3,87V arrivano da

e 784 è il mumero letto all'ingresso analogico da arduino.

Facendo un po' di conti con excell ecco cosa si vede:

 
Bit (da 0 a 1023) Tensione V Pressione mbar
517 2,524414063 955,5266204
518 2,529296875 957,170665
519 2,534179688 958,8147096
520 2,5390625 960,4587542
521 2,543945313 962,1027988
522 2,548828125 963,7468434
523 2,553710938 965,390888
524 2,55859375 967,0349327
525 2,563476563 968,6789773
526 2,568359375 970,3230219
527 2,573242188 971,9670665
528 2,578125 973,6111111
529 2,583007813 975,2551557
530 2,587890625 976,8992003
531 2,592773438 978,5432449
532 2,59765625 980,1872896
533 2,602539063 981,8313342
534 2,607421875 983,4753788
535 2,612304688 985,1194234
536 2,6171875 986,763468
537 2,622070313 988,4075126
538 2,626953125 990,0515572
539 2,631835938 991,6956019
540 2,63671875 993,3396465
541 2,641601563 994,9836911
542 2,646484375 996,6277357
543 2,651367188 998,2717803
544 2,65625 999,9158249
545 2,661132813 1001,55987
546 2,666015625 1003,203914
547 2,670898438 1004,847959
548 2,67578125 1006,492003
549 2,680664063 1008,136048
550 2,685546875 1009,780093
551 2,690429688 1011,424137
552 2,6953125 1013,068182
553 2,700195313 1014,712226
554 2,705078125 1016,356271
555 2,709960938 1018,000316
556 2,71484375 1019,64436
557 2,719726563 1021,288405
558 2,724609375 1022,932449
559 2,729492188 1024,576494
560 2,734375 1026,220539
561 2,739257813 1027,864583
562 2,744140625 1029,508628
563 2,749023438 1031,152673
564 2,75390625 1032,796717
565 2,758789063 1034,440762

 

Forse lo schema più adatto di collegamento potrebbe essere stato il seguente, aumentando la risoluzione solamente su un range di pressione.

Immagine sempre trovata in rete. 

Non ho ancora provato questa configurazione. Il problema forse sarà la taratura.

Problema resta anche la precisione con cui arduino fa le moltiplicazioni e divisioni che non è delle migliori quando ci sono numeri con la virgola.


La mia configurazione è stata la seguente:

pin 2 Vs collegato ai 5V di arduino

pin 3 gnd collegato a massa

pin 4 Vout collegato all'ingresso analogico selezionato