In questo articolo introduciamo un interessante sensore di pressione digitale, il BMP180.
Questi sensori sono molto versatili, infatti possono essere usati sia per misurare la pressione atmosferica, sia per misurare l’altimetria.
All’interno del chip inoltre è anche presente un sensore di temperatura.
La dimensione molto ridotta (3.6×3.8×0.93mm) li rende installabili in molte applicazioni, come cellulari, GPS ma anche ad esempio a bordo di unità di controllo per droni.
Il BMP180 è il successore del BMP085. Questo nuovo modello migliora la precisione delle misure.
Vediamo alcune caratteristiche tecniche
BMP180
- Alimentazione: 1.8 – 3.6V
- Interfaccia I2C (Serial data clock Max 3.4Mhz)
- Range pressione misurabile: 300 – 1100hPa
- Risoluzione pressione: fino a 0.01 hPa
- Range temperatura misurabile:
- Risoluzione temperatura: 0.1°C
- Consumo: 3-32uA in base alla risoluzione desiderata
- Tempo di conversione pressione: 4.5 – 76.5ms
- Tempo di conversione temperatura: 4.5ms
- Temperatura di esercizio: da -40 a +85°C
Il BMP180 è studiato per interfacciarsi direttamente con un microcontrollore attraverso l’interfaccia I2C. (Scopri di piu riguardo l’I2C)
Proprio attraverso l’I2C è possibile dialogare con il dispositivo ed impostare ad esempio la risoluzione del campionamento desiderata.
Maggiore sarà la risoluzione e maggiore sarà il consumo e il tempo richiesto per il campionamento.
Ecco una tabella che ci aiuta a capire le diverse modalità di risoluzioni impostabili.
Modalità | Parametro | N° Campioni interni | Tempo conversione Max | Consumo medio a 1 Campione/s |
---|---|---|---|---|
Ultra low power | 0 | 1 | 4.5 | 3 |
Standard | 1 | 2 | 7.5 | 5 |
High resolution | 2 | 4 | 13.5 | 7 |
Ultra high resolution | 3 | 8 | 25.5 | 12 |
Il datasheet indica che in risoluzione standard è possibile arrivare fino a 128 Campioni al secondo.
Infatti in un secondo abbiamo 1000ms, se ogni campione impiega 7.5ms per essere calcolato abbiamo:
1000/7.5 = 133 campioni al secondo.
Però dobbiamo tenere conto del tempo di trasmissione dei dati al microcontrollore e viceversa!