- Componenti richiesti
- Modulo sensore di pressione BMP280:
- Schema del circuito per interfacciare BMP280 con Arduino:
- Programma Arduino per interfacciare BMP280 con Arduino:
- Funzionamento del progetto di interfacciamento del sensore di pressione Arduino BMP280
Se vuoi costruire il tuo sistema di monitoraggio della temperatura o misurare l'altitudine del tuo drone o semplicemente vuoi misurare la pressione atmosferica nella tua zona, allora uno dei moduli migliori da utilizzare nel tuo progetto è il modulo sensore di pressione BMP280. BMP280 è un sensore di monitoraggio della pressione e della temperatura assoluta che è la versione aggiornata dei sensori BMP085, BMP180, BMP183. Perché si chiama versione aggiornata? Sarà discusso nelle sezioni seguenti. Abbiamo già utilizzato la versione precedente BMP180 con Arduino in uno dei nostri tutorial precedenti.
Il modulo sensore BMP280 può essere utilizzato insieme a microcontrollori come Arduino, PIC, AVR, ecc. Per questo progetto utilizzeremo Arduino Uno con BMP280 insieme a un modulo display LCD 16x2, per visualizzare i valori di temperatura e pressione. Prima di interfacciare il BMP280 con Arduino, dobbiamo scaricare la libreria BMP280 Arduino, sviluppata da Adafruit. Fare clic su questo collegamento della libreria Adafruit BMP280 per aprire la rispettiva pagina Github e aggiungere il file di intestazione al proprio IDE Arduino.
Componenti richiesti
- Arduino
- BMP280
- Collegamento dei cavi
- Tagliere per il pane
- LCD - 16x2
Modulo sensore di pressione BMP280:
Il modulo sensore BMP280 funziona con la tensione minima (VDD) di 1,71 V, mentre i moduli sensore della versione precedente funzionano con 1,8 V (VDD). Quando si tratta di consumo di corrente, BMP280 consuma 2,7 ua, mentre BMP180 consuma 12 ua e BMP183 e BMP085 consumano 5 ua ciascuno. Il BMP280 supporta anche nuove modalità di filtro. Il modulo sensore BMP280 supporta i protocolli I2c e SPI, mentre il sensore rimanente supporta I2c o SPI. Il modulo sensore BMP280 ha una precisione di ± 0,12 hPa, che equivale a ± 1 m di differenza di altitudine. A causa di queste caratteristiche chiave, viene utilizzato principalmente in varie applicazioni. Il sensore BMP è costituito da un elemento di rilevamento della pressione, un elemento di rilevamento dell'umidità e un elemento di rilevamento della temperatura che sono ulteriormente collegati al front-end della pressione, al front-end dell'umidità e al front-end della temperatura. Questi circuiti integrati front-end sono amplificatori analogici di sensibilità utilizzati per l'amplificazione di piccoli segnali. L'uscita di questo circuito integrato front-end analogico viene inviata all'ADC come segnale di ingresso. In questo i valori analogici vengono convertiti in tensione digitale e questa tensione viene alimentata ai circuiti logici per un'ulteriore interfaccia con il mondo esterno.
Il modulo sensore BMP280 è costituito da tre modalità di alimentazione: modalità sleep, modalità forzata e modalità normale. In modalità sleep, non vengono eseguite misurazioni e il consumo energetico è minimo. In modalità forzata, viene eseguita una singola misurazione in base alla misurazione selezionata e alle opzioni di filtro. La modalità normale passa continuamente dalla misurazione al periodo di standby e il periodo di tempo dei cicli sarà definito da Tstandby. La corrente in modalità standby è leggermente superiore alla modalità sleep.
Schema del circuito per interfacciare BMP280 con Arduino:
Di seguito è mostrato lo schema del circuito per collegare Arduino con il sensore BMP280 e l'LCD. Se sei completamente nuovo su Arduino e LCD, puoi controllare questo tutorial su Arduino LCD per capire come utilizzare Arduino con display LCD.
I pin VCC e GND del sensore sono collegati ai pin 3v3 e GND di Arduino. I pin SCL e SDA del sensore sono collegati ad A5 e A4 della scheda Arduino. I collegamenti LCD sono i seguenti
Nome pin LCD |
Pin di Arduino |
VSS e RW |
GND |
RS |
D9 |
E |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Programma Arduino per interfacciare BMP280 con Arduino:
Il codice completo BMP280 Arduino può essere trovato in fondo a questa pagina che può essere caricato direttamente sulla tua scheda Arduino. La spiegazione dello stesso è data di seguito
Queste librerie sono incluse per abilitare le funzioni speciali. I file di intestazione #include possiamo leggere direttamente i valori provenienti dal sensore. Il #include
#includere
Creazione sull'oggetto BMP per Adafruit_BMP280. Viene creato un file oggetto per accedere a funzioni speciali.
Adafruit_BMP280 bmp; // I2C
Impostazione dei pin di Arduino per comunicare con l'LCD. Utilizzando questi pin i dati verranno trasferiti.
LCD LiquidCrystal (9, 8, 5, 4, 3, 2);
Inizializzazione del display LCD e comunicazione seriale.
void setup () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("BMP280 test")); lcd.print ("Benvenuto in"); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); ritardo (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Could not find a valid BMP280 sensor, check the wiring!")); mentre (1); }
Questa funzione funziona quando l'inizializzazione dell'oggetto bmp non è riuscita.
/ * Impostazioni predefinite dal foglio dati. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Operating Mode. * / Adafruit_BMP280:: SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280:: SAMPLING_X16, / * Pressure oversampling * / Adafruit_BMP280,:: * Filter_X16 * / Adafruit_BMP280:: STANDBY_MS_500); / * Tempo di standby. * /}
Questa parte del codice stampa la temperatura sul monitor seriale ed è a scopo di debug.
void loop () {Serial.print (F ("Temperature =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
Le funzioni bmp.readPressure e bmp.readTemprature vengono utilizzate per richiamare funzioni speciali e restituire i valori di temperatura e pressione.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Funzionamento del progetto di interfacciamento del sensore di pressione Arduino BMP280
Le funzioni bmp.readTemprature () e bmp.readPressure () vengono utilizzate per restituire i valori di temperatura e pressione. Queste funzioni sono un gruppo di istruzioni che svolgono un compito speciale, nel nostro caso restituire file di temperatura e pressione. Queste funzioni vengono richiamate utilizzando le funzioni bmp.readTemprature () e bmp.readPressure () . Il lcd.setCursor imposta il cursore del display LCD nella posizione desiderata sullo schermo. La stampa lcd Il comando stampa i dati dalla posizione impostata dal programmatore. Se per impostazione predefinita non è impostata alcuna posizione per l'LCD, viene utilizzato (0,0) come posizione iniziale e la stampa continua dei dati. I dati successivi prendono la posizione della colonna successiva e la procedura continua fino a quando non raggiunge la fine della riga e si sposta alla riga successiva.
Il BMP280 può essere utilizzato in giocattoli volanti, telefoni cellulari, tablet, PC, dispositivi GPS, dispositivi sanitari portatili, stazioni meteorologiche domestiche, ecc. Seguendo questa procedura e utilizzando i file di intestazione e alcune funzioni speciali, possiamo facilmente interfacciare BMP280 con l'Arduino. Il funzionamento completo può anche essere trovato nel video riportato di seguito, spero che questo tutorial su BMP280 Arduino ti sia piaciuto e abbia imparato qualcosa di utile. In caso di domande, lasciarle nella sezione commenti qui sotto o utilizzare i forum per altre domande tecniche.